This setup has been used since 2011 without change and has worked without problem.
This is a work in progress.
This is the controller as it is today, 12-25-2011. Outlets and power supply are in place as is the Arduino Uno with a sensor shield on top. There is a quad optically isolated relay block which will be replace shortly with a dual block. There is a hand made photosensor block with a small pot. There are quite a few extra wires and a stepper motor controller still hooked up from a previous project. The visible outlet is switched on and off by the relays and can control the water pump and lighting. Timing of the pump and lights is all configurable in the Arduino sketch. Events are all handled with the TimeAlarm library.
Our hydroponic system.
This is our hydroponic system. We have just started our first crop off lettuce. More pots are on the way and will fill the tray. This is an ebb and flow system. It is designed to be flooded with a nutrient solution periodically during the day. It is placed in front of our south facing patio door and we hope that will provide enough light for the plants. If not the controller was designed to turn lights on during the day as needed or to extend the daylight.
This is the first batch of lettuce starts after about a week. Some are up about 2 inches already. If all goes well we will have mature lettuce in five more weeks.
Here is the set up one year later. Supports to hold a 2 by 2 and 2 by 4 florescent lights and the light have been added. Coroplast corrugated sheets were added to reflect light back onto the lettuce crop. The coroplast has foil duct tape added to one side to make it reflective. The panel nearest the window is removed during the daylight hours to allow sunlight to hit the plants.
1. With reflector off. Muffin fan runs when the lights are on. 2. PH test strips, TDS meter and log book.
3. Another photo with reflector off.
4. Water tank with cover off and submersible tank showing.
Below is the Arduino sketch for controlling the pump and lights. It uses alarms to schedule actions so the Time and TimeAlarm libraries are required. In most cases a very simple change to the TimeAlarms.h file is required as it is set up to only allow for 6 alarms. Hopefully the comments in the sketch will explain the workings. Timers are set up to turn light on and off, to turn pumps on and off, check the light levels and display the current time. Version 5 has a real time clock module added that keeps track of the time of day. This way if the power goes out or the Arduino gets unplugged the start and end time stay correct.