What TmpMonitor Does
TmpMonitor reads temperature from a TMP102 sensor every few seconds, publishes it over Wi-Fi via WebSocket to the Superior Home Automation cloud, and simultaneously broadcasts via BLE 5 GATT for nearby devices. Any browser in the world can display the live reading.
Set high and low alert thresholds and receive a notification when temperature goes out of bounds. Battery state-of-charge from the MAX17043 fuel gauge is reported alongside every reading. The DS3231 RTC keeps accurate time even when Wi-Fi is unavailable.
Built on the ESP32-C6-WROOM-1 — a RISC-V single-core module with 802.11ax Wi-Fi 6 and BLE 5.0. Firmware is written in C using ESP-IDF 5.x and FreeRTOS. Full source code is on GitHub.
Key Features
Wi-Fi 6 + BLE 5
ESP32-C6-WROOM-1 provides 802.11ax Wi-Fi and BLE 5.0. Cloud streaming and local BLE access run simultaneously.
TMP102 Sensor
I2C sensor at address 0x48 (GPIO 6/7). ±0.5°C accuracy, 0.0625°C resolution. Reports °C and °F.
LiPo Power System
MCP73833T charger via USB-C. MAX17043 fuel gauge reports state-of-charge. DS3231 RTC with CR1220 backup.
3D-Printed Enclosure
PETG production enclosure on Bambu Lab P1S. Snap-fit lid, LED light pipe, USB-C and Qwiic cutouts.
Qwiic Expansion
JST 4-pin 1mm Qwiic connector for I2C expansion. Add sensors without soldering.
Open Source
Full firmware, schematics, and enclosure scripts on GitHub. ESP-IDF + FreeRTOS + NimBLE.
Cloud Dashboard
Live temperature and battery data in any browser via WebSocket. No app install required.
Threshold Alerts
Set high and low temperature limits. Receive browser and email notifications when out of range.
Full Specifications
PCB Rev 1.0 — SHACISGAGIR15
| Microcontroller | ESP32-C6-WROOM-1 (RISC-V single-core) |
| Wi-Fi | 802.11ax (Wi-Fi 6), 2.4GHz |
| Bluetooth | BLE 5.0 — NimBLE stack |
| Temperature | TMP102, I2C 0x48, ±0.5°C accuracy, 0.0625°C resolution |
| I2C pins | SDA = GPIO 6, SCL = GPIO 7, ALERT = GPIO 4 |
| RTC | DS3231, I2C 0x68, CR1220 battery backup |
| Fuel gauge | MAX17043, I2C 0x36 — LiPo state-of-charge |
| Charger | MCP73833T via USB-C |
| USB connector | USB-C at X=1.29mm, Y=39.00mm |
| Expansion | Qwiic JST 4-pin 1mm at X=32.85mm, Y=5.05mm |
| PCB size | 40.1 × 50.0mm |
| PCB part number | SHACISGAGIR15 |
| Mounting holes | 4× M1.6 |
| Enclosure | PETG, 44.5 × 54.5mm, snap-fit lid |
| Firmware | ESP-IDF 5.x, FreeRTOS |
| Protocol | WebSocket (cloud) + BLE 5 GATT (local) |
| Power input | USB-C 5V or LiPo battery |
BLE GATT Service
TmpMonitor runs a BLE 5 GATT server. Connect with any BLE scanner app or the TmpMonitor Delphi host application.
| Characteristic | UUID |
| Service | eff816bd-7e04-4888-9f4d-184ef5bc0577 |
| Temperature | 752a16a2-d136-4770-8a1d-43d6f46c3fa2 |
| Alert | a4ffb879-e13e-4f08-a13b-1ce667634a49 |
| Wi-Fi SSID | 2d3b5d87-d3b8-4632-bc49-f5336d71d9df |
| Wi-Fi Password | 5fe22dde-c4a5-499b-ac45-2334f20b9036 |
| Wi-Fi Status | 608852ea-48f1-4927-902d-e2a8fa3d7ff7 |
PETG Snap-Fit Enclosure
The enclosure is designed in Autodesk Fusion using a Python API script (TmpMonitor_Box_v11.py). The lower tray has 10mm standoffs, a 7.5mm battery bay, and precision cutouts for USB-C and Qwiic. The snap-fit lid uses a tongue-and-groove joint with 0.2mm clearance.
- Footprint: 44.5 × 54.5mm
- 2mm walls, 2mm fillet radius
- M1.6 standoffs, 10mm tall
- Printed on Bambu Lab P1S, PETG filament
- Two-colour AMS: white lid, grey body with teal text