Skip to main content

E-Paper Temperature and Humidity Sensor


In 2019 I wanted some sensors to spread around around my new house, and I wanted a new project, so I designed this little sensor. It was a fun exercise controlling the e-paper display, and I likes the vertical USB-C connector design that allowed it to go straight onto a charger plugged into a wall outlet. Designing a sensor like this so small without inducing any self-heating is a challenge if you are looking for good accuracy. In the end, I decided to base my system on off-the-shelf 433MHz sensors, with an RTL-SDR as a base station collecting data, as decribed here


The sensor uses an ESP32 module as the controller and WiFi radio, an AMS ENS210 for temperature and humidity sensing, and a 1.44" Pervasive Displays e-ink display. It has a USB-C connector sticking out of the back, with the idea that it could be plugged into a USB-C charger on any outlet for easy mounting and no need for batteries.

Once I got it all working, I found that it had a significant self-heating problem. Even after enabling sleep mode on the ESP32, and only powering on to sample every minute, I still got 5F+ of rise. I did a second revision of the board, with the temperature sensor placed onto a cut-out island at the bottom, with an air intake next to it so that -- hopefully -- convection would constantly pull fresh air in over the sensor and I could measure the ambient temperature, not the elevated value inside the case. This helped: with the redesign I got about 2F rise above ambient. Much better but still not as good as I'd like.

Front view of assembled sensor
Back view of assembled sensor}
Back of printed circuit board
Front of printed circuit board

Plan B

I put the first one into operation. But then two things happened: first I bought some off-the-shelf 433MHz wireless sensors that are much cheaper than I could build the custom sensor for and seem to have better accuracy, and then the e-ink display suddenly stopped working. The sensor still reported fine over WiFi, but a bit of debugging seem to suggest something had gone wrong with the display. The COTS sensors have a lot to recommend them: e.g. they are cheap, they can be read easily with a RTL-SDR, no WiFi configuration necessary. So ultimately, while it was fun to bring up the e-ink display and this was a neat project, it didn't make sense to keep using it.

Since then, I've been using a small single-board computer and RTL-SDR to collect data from a number of sensors into a Prometheus database, and it has been simple and reliable. When I want to add a new sensor, I don't have to order parts or build anything.