- Published on
IoT Edge Monitoring: ESP32, CouchDB, and Vue.js
- Authors

- Name
- Jim Fellows
- hi@jimfellows.dev
The Problem: Is the Sauna Ready Yet?
There's nothing quite like a woodfired sauna. But there's also nothing quite as annoying as trekking out to the backyard in freezing temperatures just to check if it's hot enough yet.
I decided to solve this with engineering. My goal: send temperature and humidity data from the sauna to a dashboard I can check from my couch.
The Hardware Stack
For the brains of the operation, I chose the ESP32 (specifically the ESP-WROOM-32). It's robust, cheap, and has built-in WiFi.
For the sensor, I needed something that could withstand the heat and humidity. I went with the Taidacent SHT30, a waterproof temperature and humidity sensor.
Tech Specs:
- Microcontroller: ESP32 running Micropython
- Sensor: SHT30 (I2C interface)
- Power: USB bank (for now)
Flashing the ESP32 was an adventure in itself using esptool, but once I got Micropython running, reading data from the sensor was straightforward via the I2C pins (Blue/SDA, Yellow/SCL).
The Software Stack
I wanted a modern, reactive frontend to display the data.
- Backend: I chose CouchDB for the database. Its HTTP API makes it easy to push data directly from the ESP32 without needing a complex middleware server.
- Frontend: A Vue.js Progressive Web App (PWA). I wanted something mobile-friendly that I could install on my phone.
The Networking Challenge
This is where the project hit a snag. The sauna is in the backyard, and my WiFi signal there is... optimistic at best.
Getting the ESP32 to maintain a stable connection through external walls and across the yard has been the biggest hurdle. I'm currently looking into extending my mesh network or potentially switching to a LoRaWAN setup for better range.
Current Status
The project is currently "in progress." The sensor works, the code is written, and the repo is up on GitHub.
The remaining tasks are:
- Stabilizing the network connection.
- Finishing the wiring diagram.
- Polishing the Vue UI.
Check out the code if you're interested in building your own!