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.
-
Version 1 of the device is powered by the Arduino Nano 33 IoT + a DHT11 sensor + a 4 digit seven segment display.
-
Version 2 of the device is powered by the ESP8266(Wemos D1 Mini Pro) + a DHT11 sensor + a 0.91" OLED display.
- Temperature and humidity measurement.
- It computes the Apparent temperature (feels like).
- Display of the temperature and humidity on 4 digit seven segment display/OLED Display.
- It uses the NANI WiFi/ESP8266 WiFi module to connect to the internet and send the data to a server/hub/etc.
- Connects to Homebridge with a HTTP Webhook plugin to show the data on HomeKit.
-
Install Homebridge on a RaspberryPi (or similar) Click me for instructions
-
Install HTPP Webhooks Plugin via Homebridge UI by accesing
homebridge.local
on your browser. -
Set two new devices:
- ID:
termio-temperature
as temperature sensor - ID:
termio-humidity
as humidity sensor
- ID:
-
Build the circuit using the schematics (ClickMe) based on the board you are using. (Arduino Nano 33 or ESP8266).
-
Clone this repository and open it with the PlatformIO IDE. Be aware to open the right folder depending on your development board.
git clone https://github.com/johannstark/TermIO.git
-
Create
include/secret.h
header file to contain the WiFi credentials to be use by TermIO.char ssid[] = "xyz"; char pass[] = "xyz";
-
Make sure the host and port of homebridge is rightly set on the code (main.cpp:44 -> Line 44):
String hub_url = "http://homebridge.local:51828/";
-
Build and upload the code to your development board using PlatformIO.
-
PowerUp the device and check readings
-
Use the QR Code on the Homebridge UI to add a Hub to your Home App on iOS or MacOS
-
Enjoy!
TermIO has 2 working versions:
TermIO V1 works with the Arduino Nano 33 IoT that Features:
- Built-in WiFi and Low Energy Bluetooth.
- It is powered by a 32 bit Arm® Cortex®-M0 processor.
- Works with the Arduino Framework.
- It has a Micro USB port for power and programming.
- 3.3V logic level.
We use a DHT11 sensor for measuring temperature and humidity.
Displaying the temperature is done with a generic 4 digit seven segment display.
We made a second version of the device using a ESP8266 chip onboard of the Wemos D1 Mini Pro. This board features:
- A ESP8266 WiFi chip with a Tensilica L106 32-bit RISC processor.
- Built-in antenna
- Work with Arduino, MicroPython and NodeMCU frameworks.
- Also 3.3V logic level.
Here are the main schematics to connect the components to the development board. I suggest to power the entire circuit with a breadboard power supply that delivers both 5V and 3.3V from a 12V socket or USB cable.
- x1 DHT11 sensor
- x1 Breadboard power supply module (or any way to power 3.3V)
- x1 micro USB cable (to upload your code from the PC!)
For the Arduino Nano version, you will also need:
- x1 Seven segment display (in this case a 3461AS display)
- x6 330Ω resistors
- x2 LEDs (any color would be ok)
or if you go with the Wemos board:
- x1 0.91" OLED display
- x1 Wemos D1 Mini Pro
C++ Code built with the amazing PlatformIO IDE using the Arduino framework for both Nano 33 IoT and the ESP 8266, via VS Code.
Libraries used in the project:
- Adafruit DHT Sensor Library
- Adafruit Unified Sensor (Dependency of the DHT Sensor Library)
- SevSeg by Dean Reading (Arduino Seven segment display library)
- Adafruit's GFX and SSD1306 libraries (OLED Display library)
Similar projects:
This project is licensed under the MIT License - see the LICENSE file for details.
Built with Love ❤️ in Colombia 🇨🇴