{"id":19495765,"url":"https://github.com/zarusz/training_iot","last_synced_at":"2025-11-06T12:04:43.665Z","repository":{"id":112870962,"uuid":"66405899","full_name":"zarusz/Training_IoT","owner":"zarusz","description":null,"archived":false,"fork":false,"pushed_at":"2016-09-22T19:59:42.000Z","size":5213,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-25T21:40:58.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zarusz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-23T21:48:04.000Z","updated_at":"2019-11-19T20:58:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"4199090e-2df2-47c8-87a3-27c51c084920","html_url":"https://github.com/zarusz/Training_IoT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zarusz/Training_IoT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarusz%2FTraining_IoT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarusz%2FTraining_IoT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarusz%2FTraining_IoT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarusz%2FTraining_IoT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zarusz","download_url":"https://codeload.github.com/zarusz/Training_IoT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarusz%2FTraining_IoT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271493232,"owners_count":24769117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T21:38:48.187Z","updated_at":"2025-11-06T12:04:43.627Z","avatar_url":"https://github.com/zarusz.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Intro\n\nWorkshop materials for the IoT hand-on training. The training is based on the [ESP8266](http://espressif.com/en/products/hardware/esp8266ex/overview) chip and [Arduino](https://github.com/esp8266/Arduino) framework.\nThe training was first done at the [TWF 2016 Conference](http://twf.community).\n\nThe idea behind the workshop is to have a step-by-step tutorial on building *Internet of Things (IoT)* solutions.\nThe initial exercises are simple and evolve over time.\n\nIf any questions please email me.\n\n## Resources\n\n* [ESP8266 Community Forum](http://www.esp8266.com/)\n* [Arduino core for ESP8266 WiFi chip](https://github.com/esp8266/Arduino)\n* [Arduino Reference](https://www.arduino.cc/en/Reference/HomePage)\n* [esp8266-wiki](https://github.com/esp8266/esp8266-wiki/wiki)\n* [Arduino Tutorials](https://www.arduino.cc/en/Tutorial/BuiltInExamples)\n\n## Prerequisites\n\n#### Software\n\nEnsure you have installed:\n* [PlatformIO](http://platformio.org/) IDE (for the IoT device)\n\t* Download from: http://platformio.org/platformio-ide\n\t* Also follow the [installation guide](http://docs.platformio.org/en/stable/ide/atom.html#installation)\n\t\t* Ensure you install *clang* to have code completion.\n\t\t* Ensure you install Python.\n* [Visual Studio 2015 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) IDE (for the control app)\n\nWindows PC is required.\n\n#### Hardware Checklist\n\nThe training requires parts:\n* Chip\n\t* Module WiFi ESP-12E ESP8266 Black - 11 GPIO, ADC, PCB antenna\n\t* Adapter board ESP8266 ESP-12 / 12E / 12F / 07\n* USB-UART (flasher)\n\t* Converter USB-UART PL2303 - microUSB slot\n\t* MicroUSB cable B-A\n* Sensors\n\t* Motion detector PIR HC-SR501\n\t* Transmitter IR 5mm 940nm (TSAL6400)\n\t* Infrared Receiver 38 kHz (TSOP4838)\n\t* Humidity detector DHT22 AM2302\n\t* Module with 2 relays (photo-optic isolation)\n* Power\n\t* Stabilizer LDO 3.3V LF33CV - THT TO220\n\t* Power adapter 5V/2A DC\n* Other stuff\n\t* Breadboard\n\t* Male wires\n\t* 3x LEDs (red, yellow, green)\n\t* 4x 220\u0026#937; resistor\n\t* 1x 100\u0026#937; resistor\n* Computer (PC, MAC?)\n\n## Essentials\n\n### PlatformIO\n\nMost important commands in PlatformIO:\n* **Serial Monitor**\n\t* PlatformIO \u003e Serial Monitor\n\t* Shortcut: **Alt+Shift+M**\n* **Build**\n\t* PlatformIO \u003e Build\n\t* Shortcut: **Alt+Ctrl+B**\n* **Upload**\n\t* PlatformIO \u003e Upload\n\t* Shortcut: **Alt+Ctrl+U**\n\n\n### ESP8266\n\n#### Boot Modes\nWhenever the ESP is reset or powered on it checks the state of three GPIO pins to enter one of the boot modes:\n\nGPIO15|GPIO0|GPIO2|Mode\n------|-----|-----|----\n   LOW|  LOW| HIGH|UART Bootloader\n   LOW| HIGH| HIGH|Boot sketch\n  HIGH|    x|    x|SDIO mode (not used for Arduino)\n\n* LOW = connected to GND\n* HIGH = connected to 3.3V\n\nThe *UART Bootloader* mode is used to upload our program.\nThe *Boot sketch* mode is used to execute our program (normal mode).\n\nAt startup ESP prints out the current boot mode:\n```\nrst cause:2, boot mode:(3,6)\n```\n\nMore details are provided on the [ESP Arduino wiki](https://github.com/esp8266/Arduino/blob/master/doc/boards.md#boot-messages-and-modes).\n\n#### Layout\n\nThe ESP8266 12E looks like this:\n\n![](assets/esp_12E.png)\n\nDuring the workshop we are sing a breadboard adapter:\n\n![](assets/ESP8266_Adapter.png)\n\n## Instructions\n\n* [01_Blink](01_Blink.md)\n* [02_Blink_SOS](02_Blink_SOS.md)\n* [03_Blink_3LED](03_Blink_3LED.md)\n* [04_WiFi](04_WiFi.md)\n* [05_RemoteControl](05_RemoteControl.md)\n* [06_JSON_2Relay](06_JSON_2Relay.md)\n* [07_JSON_2Relay_Exercise](07_JSON_2Relay_Exercise.md)\n* [08_Temp_Motion](08_Temp_Motion.md)\n* [09_Temp_Motion_Exercise](09_Temp_Motion_Exercise.md)\n* [10_MQTT](10_MQTT.md)\n* [11_MQTT_Exercise](11_MQTT_Exercise.md)\n* [12_IR](12_IR.md)\n* [13_IR_Exercise](13_IR_Exercise.md)\n\n## Worth investigating\n\n* [Eclipse SmartHome](https://www.eclipse.org/smarthome/index.html) project\n* [Eclipse IoT](http://iot.eclipse.org/) technology hub\n\n## Extras\n\n[Additional information](20_Extras.md)\n\n## Notes\n\n* Schematics are prepared using [Fritzing](http://fritzing.org/home/).\n\n##### License\nTBD\n\n##### Legal Notes\n1. This material is provided as is.\n2. The author is not responsible for any damage this might cause ;-)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzarusz%2Ftraining_iot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzarusz%2Ftraining_iot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzarusz%2Ftraining_iot/lists"}