{"id":14963232,"url":"https://github.com/vistx/iot-box","last_synced_at":"2026-01-24T17:06:09.126Z","repository":{"id":252480530,"uuid":"840504547","full_name":"Vistx/IOT-Box","owner":"Vistx","description":"This project provides comprehensive functionality for an IoT device using ESP32. It supports Wi-Fi and MQTT for communication, has an asynchronous web server with webpage for configuration, handles OTA updates, reads sensor data, and controls relays and IR devices. The use of preferences and SPIFFS ensures that configuration data is stored persiste","archived":false,"fork":false,"pushed_at":"2024-08-10T11:31:21.000Z","size":834,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T03:32:07.477Z","etag":null,"topics":["3d-design","3d-printing","app","arduino","automation","css","electronics","esp32","fusion360","hivemq","html","http-server","iot","mqtt","project","spiffs","winforms-application"],"latest_commit_sha":null,"homepage":"","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/Vistx.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":"2024-08-09T21:34:36.000Z","updated_at":"2024-08-10T11:37:48.000Z","dependencies_parsed_at":"2024-10-10T13:21:30.106Z","dependency_job_id":"b5d0e1f4-7272-4dac-a5a9-c1b37db611fa","html_url":"https://github.com/Vistx/IOT-Box","commit_stats":{"total_commits":13,"total_committers":2,"mean_commits":6.5,"dds":0.07692307692307687,"last_synced_commit":"74c1e367d9ec91d1255ecd55350e26d17a39b2b2"},"previous_names":["vistx/iot-box"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vistx%2FIOT-Box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vistx%2FIOT-Box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vistx%2FIOT-Box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vistx%2FIOT-Box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vistx","download_url":"https://codeload.github.com/Vistx/IOT-Box/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688175,"owners_count":21145762,"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","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":["3d-design","3d-printing","app","arduino","automation","css","electronics","esp32","fusion360","hivemq","html","http-server","iot","mqtt","project","spiffs","winforms-application"],"created_at":"2024-09-24T13:31:12.667Z","updated_at":"2026-01-24T17:06:09.090Z","avatar_url":"https://github.com/Vistx.png","language":"C++","readme":"\n# IOT Box with HiveMQ\n\n![IOT Box  ](https://github.com/user-attachments/assets/a70e7d9e-b849-42aa-9466-b2fe1b3cf938)\n\n\n\n## Description \nThis project provides comprehensive functionality for an IoT device using ESP32. It supports Wi-Fi and MQTT for communication, has an asynchronous web server with webpage  for configuration, handles OTA updates, reads sensor data, and controls relays and IR devices. The use of preferences and SPIFFS ensures that configuration data is stored persistently across reboots. Additionally MQTT protocol makes this device accesible on all platforms such as Windows , Linux, IOS ,Android etc.  using the publisher and subscriber model .\n\n\n![IOT Box  #description v2](https://github.com/user-attachments/assets/e7b0b889-9802-41d5-9a73-dbc6fbc75ecc)\n\n\n## Table of Contents\n- [Installation](#installation) \n- [Broker Setup](#broker-setup)\n- [Usage](#usage) \n- [Tweaking the design](#tweaking-the-design)\n- [Electronics](#electronics)\n- [Cad files and 3d printing](#cad-files-and-3d-printing)\n\n## Installation\n### Clone the repository \n- git clone https://github.com/Vistx/IOT-Box.git\n- go to project /IOT Box tasks  \n   1. First : Build Filesystem Image   \n   2. Then: Upload Filesystem Image\n  \n  ![1](https://github.com/user-attachments/assets/429ac1e1-7675-42f1-81b2-c67eea4b3313)\n\n- Upload the code to your esp32\n\n![2](https://github.com/user-attachments/assets/6afe996c-2f75-4429-bfd5-66e8d29e7e84)\n\n**Important!** The first code uploaded to the board must be done via Serial connection , after you setup the parameters in the user setup page the code can be uploaded via OTA. You can find the devices IP address in your router, after the first upload via serial change the  upload_port = ip_here in platform.ini file .\n\n\n\n![lan users ota edited](https://github.com/user-attachments/assets/001f6988-c398-411f-812a-6701829a38fa)\n\n\n## Broker Setup\nThis project uses HiveMQ as a broker , create an account [here](https://www.hivemq.com/) . The next step is to got to **Clusters**,  in the top right corner **Create New Cluster** \n\n![cluster1edited](https://github.com/user-attachments/assets/565701f5-91bf-49c7-920d-2060af4c1ac9)\n\nand **Create a Serverless Cluster**.\n\n![cluster2edited](https://github.com/user-attachments/assets/ba1d5a5b-b6cd-46c0-ba15-9fd50135dda7)\n\nAfter creating a Cluster enter **Manage Cluster**  page \n\n![cluster3edited](https://github.com/user-attachments/assets/c3bd256d-bbcb-46c9-9281-87dfeb4d17ab)\n\nthen go to **Access Management**  and create **Credentials** to connect to that cluster. \n\n![cluster4edited](https://github.com/user-attachments/assets/aebe92c6-78a5-4a4d-ab51-0c181dd55722)\n\n**Important:** Give publish subscribe permissions to the created user.\n\n## Usage\n\n**User Setup:**\nConnect to the \"Setup IOT Box\" access point \nOpen your browser and  follow the url:  http://192.168.4.1/\n\n![user setupedited](https://github.com/user-attachments/assets/0f44a2cf-59f3-4074-8688-7d5798ce3494)\n\n\nProvide Your Wifi and HiveMq Broker credentials \n\nWindows :\n\n![WINDOWSAPP1](https://github.com/user-attachments/assets/95ce6c4b-2ad7-4a09-8093-742ed96e31d4)\n\n\n\nAndroid / IOS:\n\nI use this app \n\n![unnamed](https://github.com/user-attachments/assets/6cbdfe8b-13e0-40a3-bc46-6035e632f48a)\n\nSetup IoT MQTT Panel app\n\n![app setup](https://github.com/user-attachments/assets/e094f885-a7b2-48a8-8977-085e7d61807c)\n\n![app setup1](https://github.com/user-attachments/assets/be0d8c54-cc70-4854-8053-91dab02cea9b)\n\n### Broker address(Use HiveMq credentials), username, password ,port(8883),protocol(TSL)\n\n![app setup2](https://github.com/user-attachments/assets/270ebdd8-6d8b-4ac6-a32d-6b568397c2f7)\n\n![app setup3](https://github.com/user-attachments/assets/c89d501e-42fb-46ca-82be-defc0ef61282)\n\n### Setup button for IR codes\n\n![app setup4](https://github.com/user-attachments/assets/599b934d-e250-42c4-a25e-9acc49e391f2)\n\n### Toggle Switch For relay controll 4 in toal (topics -\u003e DO_1,DO_2,DO_3,DO_4)\n\n![app setup5](https://github.com/user-attachments/assets/67699eb4-ef10-46d2-8b89-e6a1eff38679)\n\n![app setup6](https://github.com/user-attachments/assets/85ea0783-f35f-46e6-b2e4-a28cd48ce121)\n\n![app setup 7](https://github.com/user-attachments/assets/d31918a4-ccf3-4cb7-8b4d-b24c943f6a1f)\n\n### Three gauges for gas, humidity and temperature topics \n\n\n## Tweaking the design\nDrill a small hole to access the reset button on your PCB like so:\n\n![hole drill](https://github.com/user-attachments/assets/250d82ad-56fd-41d5-9e2d-ced1d3bfbabb)\n\n\nThis button resets your saved credentials and sends the device in setup mode.\n\n##  Electronics\nParts used:\n\n1x ESP-Wroom-32u\n\n1x MQ-4 sensor\n\n1x DHT 11\n\n4x Relay module\n\n1x IR transmitter and receiver module\n\n1x Antenna with mount\n\n1x Pair Male + Female 12v DC jack \n\n1x Push button\n\n2x Switches\n\n1x Prototype PCB 6x8 breadboard\n\n3x Leds (Red,Yellow,Blue)\n\n3x Resistors 48 Ohm\n\n### Prototype PCB\n\n![schematics](https://github.com/user-attachments/assets/aa3639ba-ab77-4f25-8d04-51e43380cf9d)\n\n![PCB](https://github.com/user-attachments/assets/286e40b5-c8d3-4025-89c9-f41120a14d95)\n\n![pcb2](https://github.com/user-attachments/assets/c0c77f18-9a70-4a73-86ac-677280d3f414)\n\n\n\n\n### Assembly\n![electronics6](https://github.com/user-attachments/assets/72ad0518-fbf2-432c-a7fd-52cc6da0cedf)\n\n![electronics1](https://github.com/user-attachments/assets/ca0b776a-60ca-4361-b8f7-3ecc621fc05d)\n\n![electronics3](https://github.com/user-attachments/assets/6cf6b4d3-3533-4e64-bd61-c09888fd95b0)\n\n![eelectronics2](https://github.com/user-attachments/assets/2a79634b-bcd5-4a39-ab6a-4b76cdf1ce8a)\n\n![electronics4](https://github.com/user-attachments/assets/5d710371-8eaf-44c1-9398-f68911a04567)\n\n![electronics5](https://github.com/user-attachments/assets/9755c0be-b226-432a-9bfd-195fb67ff83c)\n\n![final result](https://github.com/user-attachments/assets/14da69e6-eabf-46aa-b0d4-260fb29ebc40)\n\n\n\n# CAD files and 3D Printing\n\nYou can find Fusion 360 Files [here](https://grabcad.com/library/iot-box-1)\n\n![WhatsAppVideo2024-08-09at21 43 57-ezgif com-optimize](https://github.com/user-attachments/assets/caf98319-e943-444f-a7df-6f3dad130119)\n\n![WhatsAppVideo2024-08-09at21 44 25-ezgif com-optimize](https://github.com/user-attachments/assets/5803e229-8ab7-4975-bde8-f0c72147a524)\n\n\n\n# References\n\nhttps://randomnerdtutorials.com/\n\nhttps://www.svgrepo.com/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvistx%2Fiot-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvistx%2Fiot-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvistx%2Fiot-box/lists"}