This device measures the temperature of the hot water pipe coming out of my water heater and sends the data to Adafruit IO to be displayed on a chart.
- DS18B20 temperature sensor. I used this kit since it seemed easiest to use, but any other kit with the same sensor should work.
- D1 mini with USB cable and charger. I chose this one because it was super cheap and relatively easy to use. Any ESP8266 device that works with ESPHome should be fine, as long as the configuration file contains the right board name.
- Soldering iron & solder
- Solder the male pin headers onto the D1 mini
- Connect the sensor wires and jumper wires to the terminal block like so:
- Connect the jumper wires to the ESP board like so:
- Blue: Ground
- Green: 3V3
- Yellow: D5
- Connect the USB cable from the ESP board to your computer
- Install ESPHome.
- Clone this repository from GitHub
- Open your local directory where you checked out this repository
- Copy secrets.yaml.example to
secrets.yamland edit the resultingsecrets.yamlfile:- Fill in your WiFi network information and Adafruit IO account information.
- Replace
"REPLACE_WITH_RANDOM"with random strings of characters. You can generate random one with this command in your terminal:openssl rand -base64 32 - Replace
"REPLACE_WITH_RANDOM_32_BYTE_BASE64"with a random 32 byte base64 string. You can generate one with this command in your terminal:openssl rand -base64 32
- Run this command:
esphome run waterheater.yaml - Your ESP device should now be sensing temperature and you should now see it in your feeds on Adafruit IO!

