Fish Tank Controller
(lighting and heater)
(lighting and heater)
This controller uses an arduino nano with a LCD display to control the lighting and heating of my 36 gallon tank.
My T8 flourescent 20 watt single bulb light always seemed barely adequate and it is now faulty.
Perfect excuse to upgrade to LEDs. Building your own is funner and cheaper!
The flourescent tubes and other parts were removed from the light hood. The power wire and switch were left alone.
6 LEDs (2 x Cool White, 2 x Natural White and 2 x Growlight) were wired in series and hot glued to a strip of aluminum.
(in case your wondering, 6 watts of LEDs doesnt even get the aluminum warm)
The LED wires were then connected to the switch and power cord. The cord was then cut on the plug end.
This cord will eventually be plugged into the controller.
This setup produces alot more light at less than 1/3 of the power!
Also have to mention... its DIMMABLE! The LEDs are driven by a Meanwell LDD-350L.
I picked this driver because it takes PWM signal from arduino to dim the output and it is 97% efficient!
The arduino nano is tiny but easy to work with. Pretty much any board from the arduino line-up will work.
The code i wrote can be customized and all settings can be edited.
The time is controlled by a DS3231 realtime clock. It has battery incase the power goes out.
The current day and current time are displayed on the LCD screen.
The current time is also displayed as a scale moving left to right with the on/off times shown as "O" on the scale.
The icon scrolls smoothly along the scale as time changes.
On/Off or Sunset and Sunrise time values are read and the LEDs are adjusted.
It takes about 15 minutes to go from 0% to 100% and visa versa. (the speed can be changed of course)
The LED brightness is displayed on the LCD screen as a scale going from left to right.
The icon scrolls smoothly along the scale as the brightness value changes.
A "cloudy day" feature can be added which could limit or even gently fluctuate the lighting randomly.
A DS18B20 digital waterproof thermometer is constantly monitoring the water temperature in the tank.
The LCD screen displays the minimum temperature, current temp and maximum temp.
The min and max values reset when the power is reset.
(i built a version of this that logs the time & temp onto a SD card so it can be loaded in EXCEL and graphed)
A relay is connected to the tank heater. Its main purpose is to kill the power when it gets too hot in the tank.
My tank heater is at the minimum setting but in the summer my tank would rise past 30C regularly.
The heater seems to turn on whenever it wants so this will turn off the power to the heater if it reaches 28C and back on when it dips to 25C.
For the most part the heater should self-regulate so this is an extra layer of protection.
The LCD also displays the heater status and how many times it has turned on.
The LCD itself is a 20x4 I2C display and it cycles through the relay and temperature info.
The LCD turns off the backlight after 40 seconds... unless movement is detected.
Mounted into the door of my tank stand beside the LCD display is a PIR motion sensor.
The PIR motion sensor "wakes" up the LCD and also cycles through the displays (instead of using a button).
I already have home-made LEDs in my 120 gallon tank but they are only attached to a simple timer which is fine but after making this...
That tank will soon have 5 dimming channels. 3 x cool white 20 watt LEDs will be on seperate dimmers so i can get the effect of a cloud moving.
The other 2 channels will be for 10 x Grow LEDs and also 10 x Blue LEDs (for moonlight effects).
I have a 3.5" full colour TFT touchscreen for this next build already ordered and on its way
If this sounds interesting to you and would like to have me make one for you let me know.
Im open to suggestions and this platform is very versatile, expandable and parts are cheap.
If you want to tackle making one yourself, maybe i can give suggestions.