I have been thinking about how to get alerts for the extinguished pilot light only a slightly shorter amount of time than I have been aware of the problem. But what's the best approach? I know some old-timers would immediately start thinking about doing it with a couple of 555 timers and a handful of paper clips. I am not that guy.
I already have some sensors sprinkled around my house. Most of them are simple ESP8266 boards with an attached OLED display and a breakout board with an I2C interface to a BME280 temperature/pressure/humidity sensor. The attached OLED display shows those vitals when you are looking at the device, but I also relay the data to a Home Assistant server.
It seemed pretty natural to use something quite similar for the water heater problem. In that case, I didn't bother with the attached OLED display, mostly because I had some ESP8266 boards on hand that didn't happen to have one. Even if I didn't already have a few, these boards can be bought for only a few dollars; cheap enough for hobbyist use. I wired it up with a BME280 so that I could monitor the most boring, unchanging environment in my house (my basement).
I called that device the Water Bug and stuck it onto the side of my water heater while I contemplated how to do the rest of the project. Here it is:
I used one of those small 170-point breadboards, cut down the middle lengthwise, to mount the ESP8266.because most of those boards are not breadboard friendly. The nice thing about all of those small breadboards that I have seen is that the back has a paper layer that you can peel off so you can stick the breadboard to something. In this case, it's stuck to the side of my water heater. Dupont jumper wires provide the I2C connection to the BME280 (that breakout board is not visible in this picture).
My plans for this sensor include:
- (done) environmental sensors with the BME280
- (this project) water heater flame status
- (future) leak detection (inspired by this project: https://esphome.io/cookbook/leak-detector-m5stickc)