A temperature/humidity sensor that provides live readings over WiFi and via an oled display. The device connects to a local network over WiFi and serves the following:
- Pretty html page at root:
- Simple text only temperature value at:
- Simple text only humidity value at:
The code was developed using the PlatformIO extension in VSCode. The hardware was designed using KiCAD and fabricated using JLCPCB.
All components are on a custom PCB and inside an enclosure with a transperant lid so as to show off the special-edition HackADay 10-year anniversary Pro Trinket!
More info can be found here.
This project was developed to meet a few goals:
- Create a device for monitoring internal temperature - to be compatible with automation platforms (specifically Home Assistant).
- Local temperature read-out.
- Simple web-server for obtaining temperature over WiFi.
- Simple text-only response when calling a specific url with curl (also over WiFi).
- Make use of - and potentially showcase - a special HackADay 10-year anniversary edition Pro-Trinket dev board.
- Learn how to use an esp8266.
- Try out arduino (instead of directly programming microcontrollers).
- Try the arduino IDE and programming via the arduino bootloader.
- Try using some C++ for development instead of just C.
The final system consists of the following components:
- Pro Trinket 5V (Hackaday 10-Year Anniversary Special-Edition) - Controls the SSD1306 and the HDC1080. Sends temperature/humidity readings over serial to the ESP8266 module.
- ESP8266 (ESP-01 module) - Acts as a web-server to provide temperature/humidity over WiFi.
- HDC1080 module - Temperature/Humidity sensor that communicates over I2C.
- SSD1306 OLED module - also communicates over I2C - used as a local display for temperature/humidity readings.
- Miscellaneous components for power conversion (5V->3.3V), filtering, IO pull-ups, etc.
This repo contains:
- data - datasheets I referenced to write relevant code and create custom KiCAD footprints.
- images - photos of the final project.
- temp0_esp8266 - code written for the ESP8266/ESP-01 module.
- temp0_pro_trinket - code written for the Pro Trinket module.
- temp0_schematic - KiCAD files including the schematic and PCB layout. Library includes some custom parts (ESP-01, Pro-Trinket, HDC1080, OLED).
- temp0_workspace.code-workspace - Workspace structure for VSCode including PlatformIO configurations for working with the ESP8266/ESP-01 and the Pro-Trinket 5V.