====== Setup ======
Here you can find information about how to set up your IoT Homelab kits. Once the setup is complete, you can use MQTTbox (or any other MQTT software) to check if everything works correctly.
====IDE for programming====
In order to program the IoT modules, a PC with IDE. There are two options where Visual Studio Code text editor with PlatformIO plugin is recommended.
* [[en:iot:examples:setup:quickstart|Visual Studio Code text editor and PlatformIO plugin installation manual.]]
* [[en:iot:examples:setup:usb|Atom text editor and PlatformIO plugin installation manual.]]
====Driver for CH340====
When an IoT MCU Module is connected to the Windows computer, the Device Manager should show that USB-SERIAL CH340 is present.
{{:en:iot:examples:ch340.png|CH340}}
If not, then the instructions for installing the CH340 driver should be followed. Applies to MacOS, Windows and Linux:
* [[https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all|Sparkfun]]
* [[http://www.wch-ic.com/downloads/CH341SER_ZIP.html|CH340/CH341 USB to serial port Windows driver]]
====MQTT broker====
At Tallinn University of Technology, the address of a public broker is available to everyone. However, if you need a separate broker to set up, a guide to do it is below:
* Set up your own MQTT broker ( [[en:iot:examples:setup:broker|A Raspberry Pi is a good candidate for this job.]]).
====Using IoT MCU modules without a configuration====
The IoT modules have a default configuration for connecting to the classroom WIFI. The settings can be overwritten for home or other use cases as follows:
iot.setConfig("wname", "Your WiFi name");
iot.setConfig("wpass", "Your Wifi password");
More information [[en:iot:examples:setup:ittiot|]].
====Configuration of IoT MCU modules ====
If an IoT module configuration needs to be changed, the device should be put on setup mode. In setup mode, the IoT module starts a WiFi base station with the name IoT- , where ESP_ID is the device chip ID.
The option to switch to a setup mode can be integrated into the software, or the following example code can be used:
* [[en:iot:examples:setup:confmode|Configuration mode example]]
{{:en:iot:examples:buttonshield.png?200|}}
Then if the button shield is connected and the switch is pushed, the IoT module should enter configuration mode, and Advanced REST Client (ARC) should be used:
* [[en:iot:examples:setup:arcconf|Configure the IoT modules to connect to the local router and selected MQTT broker.]]