{"id":22541432,"url":"https://github.com/codeofandrin/iot-garage-control","last_synced_at":"2026-05-03T21:31:21.083Z","repository":{"id":217367602,"uuid":"708730338","full_name":"codeofandrin/iot-garage-control","owner":"codeofandrin","description":"Website and Firmware for an ESP-WROOM-32 controller to control a potential garage over the internet","archived":false,"fork":false,"pushed_at":"2024-01-23T10:31:20.000Z","size":372,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-02T13:53:42.523Z","etag":null,"topics":["esp32","esp32-arduino","iot","react","website"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/codeofandrin.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":"2023-10-23T09:18:16.000Z","updated_at":"2024-01-15T19:46:49.000Z","dependencies_parsed_at":"2024-01-16T01:39:38.764Z","dependency_job_id":"be048886-1dc5-4ea3-985b-002a865ab9b3","html_url":"https://github.com/codeofandrin/iot-garage-control","commit_stats":null,"previous_names":["puncher1/iot-garage-control","codeofandrin/iot-garage-control"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codeofandrin/iot-garage-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeofandrin%2Fiot-garage-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeofandrin%2Fiot-garage-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeofandrin%2Fiot-garage-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeofandrin%2Fiot-garage-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeofandrin","download_url":"https://codeload.github.com/codeofandrin/iot-garage-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeofandrin%2Fiot-garage-control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32586186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["esp32","esp32-arduino","iot","react","website"],"created_at":"2024-12-07T12:41:26.092Z","updated_at":"2026-05-03T21:31:21.061Z","avatar_url":"https://github.com/codeofandrin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iot-garage-control\n\n## Introduction\nThis project was for school. The goal was to create an IoT garage control to control a potential garage over the internet. \nTo control this potential garage a website was created which displays the current data/states and allows the user to execute certain commands. \n\n\u003cbr\u003e\n\n## Website\nThe website uses following stack:\n* React\n* Typescirpt\n* Tailwind-CSS (mixed with vanilla CSS)\n* daisyUI\n* Heroicons\n* Vite\n* axios (API client)\n\n### Setup\n1. Go to the client source: `cd client/src`\n2. Install all dependencies: `npm i`\n3. Run website in dev mode with `npm run dev` or build for production with `npm run build` (output dir: `./data`)\n\n**Use the `testing` branch to get dummy data from the server.**\n\n\u003cbr\u003e\n\n## Firmware\nFirmware is made with Arduino to simplify the making of the webserver.\nThe webserver has following features:\n* Serving the website\n* API\n* SSE (Server-sent events)\n\nThe data is sent via SSE to the website. The API handles POST requests to forward commands sent by the user.\n\nAnother section is the board communication where the ESP32 controller communicates with the main controller via UART.\nThis allows receiving data of the garage and sending commands to control the garage.\n\n\n### Setup\nTo flash the firmware onto the ESP32 controller, we use PlatformIO in Visual Studio Code (you can install it from the Extensions in VSC. It should automatically install everything needed). \n\n1. Build website (see [Website Setup](#setup))\n2. Upload firmware: `PlatformIO \u003e Upload`\n3. Upload data: `PlatformIO \u003e Upload Filesystem Image`\n\n#### Note\n* The website runs locally, means you have to be in the same network as the ESP32.\n* The SSID and password of the WiFi can be set in `webserver.ccp`. \n* The local IP can be changed with the `serverIP` parameter of the `WebServer` constructor in `main.cpp` (typically only the last number is changed + gateway should be changed accordingly in `webserver.cpp`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeofandrin%2Fiot-garage-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeofandrin%2Fiot-garage-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeofandrin%2Fiot-garage-control/lists"}