Fork this with Git


Published at January 06, 2020.
Last updated at October 22, 2020.

As a first step into smart home automation, I wanted to place temperature and humidity sensors in most rooms of my flat. To achieve this, I made some simple ESP8266 boards with an I2C sensor, either SHT21 or BME280, as well as a small 3.3V regulator and a USB connector. The data is written into an InfluxDB instance on my NAS.

BME280 bedroom, front
SHT21 kitchen, front

The web interface implemented to query the sensor data is very simple. I am using the following commands to fetch it.

curl --silent -m 10 esp-livingroom | grep -E 'Location|Temperature|Humidity' | sed 's/Temperature//g' | sed 's/Humidity//g' | sed 's/Location//g' | sed '2s/$/ \xc2\xb0C/' | sed '3s/$/ %/' | sed 's/: //g' | sed '$!N;s/\n/\t/' | sed '$!N;s/\n/\t/'

The result is shown on my desktop using conky.

Screenshot of web interface
Screenshot of desktop data

Here you can see some samples of the data I have logged since starting this project. As you can see, after a while the sensor in the kitchen started giving wrong data. This is the usual behaviour these sensors show after a couple of months to years. I replaced it, but shortly afterwards removed the kitchen sensor completely. You can also see some short gaps in the data, this is caused by the ESPs losing their WiFi connection after a while. I just had to reset them and they started working again.

Humidity data from ca. 7 months
Temperature data from ca. 7 months

Here are some more photos of the PCBs I made. All of the boards, except one, work fine. The non-working one is just not connecting to WiFi, regardless of which specific ESP8266 I plug in there. I have no explanation for this, unfortunately.

BME280 livingroom, front
BME280 livingroom, front bare PCB
BME280 livingroom, back
SHT21 bathroom, case
SHT21 bathroom, front
SHT21 bathroom, back
BME280 bedroom, case
BME280 bedroom, back
BME280 storage, front
BME280 storage, back
non-working, front
non-working, back
SHT21 kitchen, case
SHT21 kitchen, back

The source code can be found on my Gitea server.


"THE BEER-WARE LICENSE" (Revision 42):
<> wrote this file.  As long as you retain this notice
you can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a beer in return.   Thomas Buck