I recently purchased a Aquarius AQ11204 BettaView Brite Corner Tank and a cheerfully blue betta fish. The tank is a simple corner shaped tank that fits perfectly on my desk and adds a bit of life to the mountain of technology that every other inch of my office occupies. This particular tank also incorporates a multi-mode RGB LED that can cycle through different modes by pressing the button at the top. Overall, even without modifications, it’s a great tank!
But.. the lighting is a bit lacking. The light can only be toggled to stay on for a few hours after a complicated sequence of long and short button presses. The lighting modes are quite boring with only a few solid colors and an awkward attempt at PWM control of the LEDs for the fading. Now this got me thinking how I could improve this. Ive had a bag full of ESP8266 boards for a while now, almost 6 months, that I havent done anything with.
For those who do not know anything about the ESP8266; its specs are as follows:
- Cost is less than $2 shipped!
- Wi-Fi chip with full TCP/IP stack
- 80 MHz Microcontroller
- 64 KiB of instruction RAM
- 96 KiB RAM
- External 512 KiB flash.
In short, a powerful enough WiFi enabled microcontroller to control both the IO devices and host a basic HTTP server on the cheap!
So let’s get started! The goal for this project were as followed.
- Weekend project. Shouldn’t take more than two days from start to finish.
- Monitor and record water temperature every 30 seconds.
- Text message alert if the water temperature reaches a concerning level.
- Mobile friendly web interface for changing the color and effect mode. (Constant color, fading, etc)