ThingsDriver is a new methodology in how we can govern IoT devices. When we connect a device such as a printer to the local personal computer (PC), the PC requires installing the printer driver to get the printer configurations. ThingsDriver adopts the same concept, where IoT devices in the thingsDriver architecture are extendable from the cloud, and the cloud needs the IoT devices driver to govern them. Looking at IoT devices as extendable components from the cloud can pave the way for a collaborative IoT environment.
We developed this repository as a proof of concept to the Thingsdriver idea. The demo version runs over NodeMCU and Arduino UNO boards as an IoT node in addition to HiveMQ cloud, a public MQTT broker, as the cloud side.
- NodeMCU
- Arduino UNO
- Free broker on HiveMQ
- Some wires
- 5V-2A adapter
- USB 2.0 Cable Type A/B
- USB to Micro USB Cable wire
Use the command below to download the demo code using the command line interface, or click here to download the demo code as a zip file.
git clone https://github.com/Tamra-IoT/ThingsDriver.git
(Peripherals controller Firmware)
- Using the Arduino IDE, open the AVR code.
- Connect your Arduino board using the USB cable to your computer.
- Choose the right board and terminal from the tools menu from the menu bar. For the board, choose UNO and for the terminal, select the one that appears in your list COM3/COMx, and sometimes the list shows the connected board names.
- Upload the code to the connected board using the right arrow symbol on the up-left corner.
- Don't disconnect the board until you see "done uploading" down on the green bar.
(Gateway Firmware)
Follow the same step that you did to upload the code on the Arduino UNO board, but select the right board name, NodMCU, and the right port that will appear when you connect the NodMCU board to your computer.
Hint: If you did not use the Arduino IDE to upload codes on the NodMCU before, you have to add the NodMCU configuration on the Arduino IDE first. Follow this link here to add the NodeMCU configuration.
- Arduino UNO board communicates serially with the NodMCU board.
- Connect Arduino UNO to the power source using the 5V-2A adapter
- Using the 5V pin on the Arduino UNO, connect The NodMCU power pin and Unify the ground of the boards by connecting the ground pins as shown in the image below.
Kindly cite this paper in your research if it helps your work.
Tamra is an incubated startup in the Ebni incubator. In 2018, Tamra won seed funding in the ICT track at the InnoEgypt program. Apart from the commercial side, one of the Co-founder is doing his Ph.D. degree in Ontario tech university at IoT lab. He developed ThingsDriver as a small gear on his thesis topic, Public Sensing.
Code released under the MIT license.