Hot Tub: ESP8266 IoT Temp Monitor and NeoPixel Lighting
Finally got our free hot tub hooked up. Well, not so “free”. Hot tubs are never free unless you have all the electrical and other bits already. Anyway, I wanted to add some remote temperature monitoring as well as jazz up the lighting a bit. Given Winters can get pretty cold here in Canada, I wanted to get notified if the temp falls below a threshold as frozen pipes in a hot tub pretty much spell disaster. Blynk is my go-to app of choice. If you haven’t heard of Blynk, you are missing out on the biggest thing since slice bread for IoT!
These days my go-to controller is the NodeMCU Mini ESP8266. I hooked it up to a DS18B20 temperature probe and an Adafruit NeoPixel Jewel. Currently this system is completely isolated from the hot tub controller – I didn’t want to mess with something I didn’t understand as it’s an older tub and the controller boards are hard to come by. I also don’t mess with high voltage. This is not a big deal and simply means that you can’t turn on the hot tub lights by the switch located in the hot tub. Which is moot given I just use my phone to set the lights and they are on a timer anyway. You can also check out how this is integrated into my WIoT-2 master unit.
The sketch is pretty straight forward. It monitors the temperature and sends readings every 2 minutes to my master Blynk app where the data is plotted on a History Graph which shows the temperature over time. There are also triggers that to send a notification to my phone & watch when the temperature falls below 60F. This is particularly important during the winter when the temperature can fall well below 0C in our Canadian winters. Don’t want to be dealing with a frozen hot tub! My Blynk app is multi-tabbed and allows me to control and monitor this unit, my garage door status device, my WIoT2 device as well as other future devices.
The Blynk app has the following features:
- Plot the tub temperature over time in degrees F.
- Button to allow me to turn the NeoPixel ring on / off – triggers white.
- ZeRGB widget which allows me to set mood lighting to whatever colour I want.
- Dropdown to allow for a bunch of different “light shows”.