{"id":15140423,"url":"https://github.com/johannstark/termio","last_synced_at":"2025-06-11T18:37:39.263Z","repository":{"id":157580686,"uuid":"548738984","full_name":"johannstark/TermIO","owner":"johannstark","description":"Indoor temperature \u0026 humidity measuring device","archived":false,"fork":false,"pushed_at":"2023-08-14T04:07:32.000Z","size":4295,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T19:47:38.421Z","etag":null,"topics":["arduino","dht11","esp32","esp8266","homebridge","iot","platformio","smart-home"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johannstark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-10-10T05:28:07.000Z","updated_at":"2024-05-31T08:38:09.000Z","dependencies_parsed_at":"2024-08-11T02:48:34.401Z","dependency_job_id":null,"html_url":"https://github.com/johannstark/TermIO","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannstark%2FTermIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannstark%2FTermIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannstark%2FTermIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannstark%2FTermIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johannstark","download_url":"https://codeload.github.com/johannstark/TermIO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237861569,"owners_count":19378021,"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":["arduino","dht11","esp32","esp8266","homebridge","iot","platformio","smart-home"],"created_at":"2024-09-26T08:20:45.597Z","updated_at":"2025-02-08T19:33:47.597Z","avatar_url":"https://github.com/johannstark.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TermIO\n\n**TermIO** is a ***home-made*** indoor temperature and humidity device. It is a **DIY** project that uses a **DHT11** sensor to measure temperature and humidity and a **4 digit seven segment display/OLED Display** to show the data.\n\n* Version 1 of the device is powered by the ***Arduino Nano 33 IoT*** + a ***DHT11 sensor*** + a ***4 digit seven segment display***.\n\n* Version 2 of the device is powered by the ***ESP8266(Wemos D1 Mini Pro)*** + a ***DHT11 sensor*** + a ***0.91\" OLED display***.\n\n\u003cdiv style=\"text-align:center\"\u003e\n\nTermIO Ver. 1 vs Ver. 2\n\n\u003cimg src='docs_assets/IMG_1188.jpeg' alt=\"TermIO Version 1\" style=\"height: 400px\"/\u003e\n\u003cimg src='docs_assets/IMG_8AA9019B3988-1.jpeg' alt=\"TermIO Version 2\" style=\"height: 400px\"/\u003e\n\nHomebridge UI \u0026 Home App on macOS\n\n\u003cimg src='docs_assets/TermIo%20Homebridge.jpeg' alt=\"TermIO Homebridge UI\" style=\"height: 300px\"/\u003e\n\u003cimg src='docs_assets/HomeKitUI.png' alt=\"TermIO HomeApp\" style=\"height: 250px\"/\u003e\n\u003c/div\u003e\n\n## Features\n\n* Temperature and humidity measurement.\n* It computes the Apparent temperature (feels like).\n* Display of the temperature and humidity on 4 digit seven segment display/OLED Display.\n* It uses the NANI WiFi/ESP8266 WiFi module to connect to the internet and send the data to a server/hub/etc.\n* Connects to [Homebridge](https://homebridge.io) with a [HTTP Webhook plugin](https://www.npmjs.com/package/homebridge-http-webhooks) to show the data on HomeKit.\n\n***\n\n## Getting Started\n\n1. Install [Homebridge](https://homebridge.io) on a RaspberryPi (or similar) [Click me for instructions](https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started)\n2. Install [HTPP Webhooks Plugin](https://github.com/benzman81/homebridge-http-webhooks#readme) via Homebridge UI by accesing `homebridge.local` on your browser.\n3. Set two new devices:\n\n    * ID: `termio-temperature` as temperature sensor\n    * ID: `termio-humidity` as humidity sensor\n    \n4. Build the circuit using the [schematics (ClickMe)](#building-the-circuit) based on the board you are using. (Arduino Nano 33 or ESP8266). \n\n:warning: Only the ESP8266 Version of termio supports Homebridge for now :warning:\n\n5. Clone this repository and open it with the PlatformIO IDE. Be aware to open the right folder depending on your development board.\n    \n    ```shell\n    git clone https://github.com/johannstark/TermIO.git\n    ```\n\n6. Create `include/secret.h` header file to contain the WiFi credentials to be use by TermIO.\n    \n    ```c++\n    char ssid[] = \"xyz\";          \n    char pass[] = \"xyz\"; \n    ```\n    \n7. Make sure the host and port of homebridge is rightly set on the code (main.cpp:44 -\u003e Line 44):\n\n    ```c++\n    String hub_url = \"http://homebridge.local:51828/\";\n    ```\n    \n8. Build and upload the code to your development board using PlatformIO.\n    \n9. PowerUp the device and check readings\n\n10. Use the QR Code on the Homebridge UI to add a Hub to your Home App on iOS or MacOS\n\n11. Enjoy!\n\n***\n\n## Hardware\n\nTermIO has 2 working versions:\n\n### Arduino Nano 33 IoT\n\nTermIO V1 works with the [Arduino Nano 33 IoT](https://store-usa.arduino.cc/products/arduino-nano-33-iot) that Features:\n\n* Built-in WiFi and Low Energy Bluetooth.\n* It is powered by a 32 bit **Arm® Cortex®-M0 processor**.\n* Works with the Arduino Framework.\n* It has a **Micro USB** port for power and programming.\n* 3.3V logic level.\n\nWe use a [DHT11](https://www.adafruit.com/product/386) sensor for measuring temperature and humidity.\n\nDisplaying the temperature is done with a generic 4 digit seven segment display.\n\n### Wemos D1 Mini Pro\n\nWe made a second version of the device using a ESP8266 chip onboard of the Wemos D1 Mini Pro. This board features:\n\n* A ESP8266 WiFi chip with a Tensilica L106 32-bit RISC processor.\n* Built-in antenna\n* Work with Arduino, MicroPython and NodeMCU frameworks.\n* Also 3.3V logic level.\n\n***\n\n## Building the circuit\n\nHere are the main schematics to connect the components to the development board. I suggest to power the entire circuit with a [breadboard power supply](https://www.amazon.com/-/es/ALAMSCN-alimentación-tablero-soldadura-bater%C3%ADa/dp/B08JYPMCZY/ref=sr_1_3?keywords=breadboard+power+supply+module\u0026qid=1672180516\u0026sr=8-3) that delivers both 5V and 3.3V from a 12V socket or USB cable.\n\n**:warning: POWER THE CIRCUIT WITH 3.3V :warning:**\n\n### BOM (Bills of Materials)\n\n* x1 DHT11 sensor\n* x1 Breadboard power supply module (or any way to power 3.3V)\n* x1 micro USB cable (to upload your code from the PC!)\n\nFor the Arduino Nano version, you will also need:\n\n* x1 Seven segment display (in this case a 3461AS display)\n* x6 330Ω resistors\n* x2 LEDs (any color would be ok)\n\nor if you go with the Wemos board:\n\n* x1 0.91\" OLED display\n* x1 Wemos D1 Mini Pro\n\n### Arduino Nano schematics\n\n![ArduSchematics](nano33iot/schematics/TermIO%20Schm.png)\n\n### D1 Mini Pro schematics\n\n![ESPSchematics](esp8266/schematics/esp8266_schm.png)\n\n## Software\n\nC++ Code built with the amazing [PlatformIO IDE](https://platformio.org/) using the Arduino framework for both Nano 33 IoT and the ESP 8266, via VS Code.\n\nLibraries used in the project:\n\n* [Adafruit DHT Sensor Library](https://registry.platformio.org/libraries/adafruit/DHT%20sensor%20library)\n* [Adafruit Unified Sensor](https://registry.platformio.org/libraries/adafruit/Adafruit%20Unified%20Sensor) (Dependency of the DHT Sensor Library)\n* [SevSeg by Dean Reading](https://registry.platformio.org/libraries/Dean%20Reading/SevSeg) (Arduino Seven segment display library)\n* [Adafruit's GFX and SSD1306 libraries](https://registry.platformio.org/libraries/adafruit/Adafruit%20GFX%20Library) (OLED Display library)\n\nSimilar projects:\n\n* [ESP32 Pool Thermometer](https://www.instructables.com/ESP32-Pool-Thermometer-Works-With-HomeKit-and-Alex/)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n***\n\n***Built with Love :heart: in Colombia :colombia:***\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohannstark%2Ftermio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohannstark%2Ftermio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohannstark%2Ftermio/lists"}