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. I wanted to be able to track the temperature and use trigger notifications if the temperature falls below a set threshold. Of course 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!
Of course my go-to controller is the NodeMCU Mini ESP8266. I hooked this 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. The only real caveat is the hot tub light controller won’t do anything itself so I have swapped NeoPixels into the light cavities.
The sketch is pretty straight forward. It monitors the temperature and sends readings every 2 minutes to Blynk where the data is plotted on a History Graph which shows the temperature over time. The sketch will later have triggers in it which are used to send a notification to my phone & Pebble Time 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!
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”.