The Hydrofarm was an extension of a previous proof-of-concept for an automated greenhouse. We were tasked to build a larger version that could be used in a biology classroom for experimentation. This placed several limitations (like being able to fit through doors) that became the reasons behind many of our design choices. The Hydrofarm is a vertical hydroponics farm, designed to be compact as well as allowing for experimentation and data collection. To this end, it has two separate sections (with separate water sources and growth media) to grow plants, which allows for the possibility of comparing two variables, such as water from different rivers, or a control and an experimental group. Each section has the water trickle down through several pipes containing growth medium and plants, and eventually recycles the water back into the storage tank. Additionally, it has a sophisticated sensor suite that can measure salinity, water turbidity, temperature, and pH. This data can either be displayed on a laptop in real-time or accessed from an SD card for later analysis. If necessary, the farm can even detect water leaks, and sound a small alarm to alert the user of the problem. For our purposes, we tested it by running an experiment on how different lighting would affect plant growth. One section of plants was grown with regular lamps in a consistent day-night cycle, while the other section of plants was grown using colored LED lights. The water conditions were measured daily to verify that the two sections matched.
- 4” diameter PVC pipes
- 16 4” diameter PVC caps
- 1” diameter PVC pipes (at least 12’ to 15’)
- 1” diameter PVC valves 2 pumps
- 4 1” PVC elbows PVC Transitions
- 1” to 2.5” Plastic Tubing
- 1 in wide plastic tubing
- Turbidity sensor
- pH sensor
- Salinity sensor
- Temperature sensor
- Assorted wires
- Arduino w/ SD card shield
- 2m of Neopixel strips
- Clear, rigid tubing
- Waterproof Enclosure
- 9 W Light Bulbs
- iCloud 360 Camera
- Curtain (Plastic)
- 5V power supply
- Power supply for the pump (voltage and current will depend on the pump)
- Plumber’s Cement
- Plastic Bins
- Thin rope
- Thin sheet metal
Step 1: Cutting the Tubes
With all the materials gathered, it’s time to begin by cutting all of the PVC pipes to the correct lengths. You can vary these for your own model of course if you want, provided they still make a closed loop. But for the sake of this I will use our measurements.
- Cut eight, 40” long, 4” OD (Outer Diameter) pipes
- Cut two, 24” long 4” OD pipes
Once you’ve cut all of the pipes to size, the first step is cutting the slots in the large PVC Pipes in which you will insert the plants. To make these slots, take the 4” Outer Diameter 40” long PVC pipe and cut approximately 1.5” wide and 35” long slots in each of them.
Now that you (presumably) successfully have slots in each of these, you need to put the transitions of each end of these large pipes. To attach the 4” OD (Outer Diameter) to 2” OD transition, you’ll want to first prime (with primer) the outside of the 4” pipe and the inside of the transition. Once the primer has dried and set, you’ll need to use a strong adhesive, such as Plumber’s Cement to attach the transitions to each end of the pipe. Make sure to put them together quickly and carefully after the application of the cement because it sets very fast and is hard to undo. You’ll also need to put one of these transitions on one end of each of the 20” long 4” OD pipes.
The next step is to insert the valve connectors into all of the transitions you just put on the 4” pipes. Do this using the same method you used to attach the transition using the primer and cement. This will be the attachment method for all other PVC pipes.
Next you’ll need to make holes in the table piece for the pipes to fit through. This is easiest done by placing the tubes on top of the table with adequate spacing in between and marking the place on the table, then cutting it with a hole saw. Only the 1” piece needs to fit through the table, so the hole should be about that big. Once the hole is made, place the pipes into these holes.
Step 2: Support Structure
In order to support the PVC pipes from the back, you will need to create a support frame. We did this by bolting spare table legs onto the table, behind the pipes, and running a strip of metal across, but you can do this with any method you want - 2x4s, metal stock, more pipe, as long as it’s secured to the table.
Step 3: Pumping Water
At the bottom of the large pipes where plants will be placed, using three T-pipes with 1” ID, one elbow 1’’ ID, and seven 1”OD connectors, route all the water that reaches the bottom into one pipe which will go down to the reservoir. Repeat the previous steps for the other side.
Now that you have that assembled, It’s time to add the reservoirs for the water. In our Hydrofarm, we used one black plastic bin on each side and had 2 reservoirs. You can either just put these bins under the routing pipe you just made from each side, or you can choose to have it covered by the pin lid, provided you cut a hole in the lid large enough for all the pipes to fit through.
Next, you’ll want to insert a pump into each reservoir. These pumps will need a rubber tube connected to their output and input areas.
Step 4: Assembling the Growth Tubes
You’ll want to take use of some short 1” OD pipe segments. Attach one to the top of each one of the connectors in the plant growing tubes.
On top of these small pipes, attach valves, which will allow you to turn off/restrict water flow to any of the tubes at any time. Attach another small 1” pipe segment above these pipe segments as well.
Next you need to take the 24” long 4” OD pipes with the transitions on only one end. Take 4” ID PVC end caps and add one to the other end of each of these tubes. These pieces will become the upper tanks, and will attach to the small tubes you just made with the valves. We supported this from beneath by extending the support frame to hold it.
Mark out placement of holes to fit the 1” tubes into each tank, then cut these holes. Be careful to make sure the tank is sealed aside from that pipe. Now attach the tank to these. It may be helpful to add a threaded PVC connector piece to the end of the 1” tubes to facilitate connection.
Run the thin ropes from the top to the bottom of the inside of each grow tube. This helps keep the water in the center of the tube. To attach them, tie the rope around a small metal wire, and run that wire around the inside of the top of the tube, where you will cement/glue it down to keep it in place.
Next the biofilm should be added to the inside of each tube. This works as a sieve, letting only water and small things through, while holding the plants and dirt in place later on.
Step 5: Keeping the Water In
Since you don’t want water spilling out onto the floor, it’s time to attach walls and a gutter to keep the water in. We used some scrap wood to “extend” the front of the table, and glued the gutters down in front of the PVC pipes.
The walls of the gutter were extended to the pipes with sheet metal, and more was placed in between the pipes and on either side of the table.
A curtain was cut to size, and shower rings were attached to the metal frame on the top, which was connected to the support structure.
Step 6: Electronics
In order to power everything, we zip-tied a power strip onto the support frame. This was plugged into a timer, so that the farm wouldn’t be running for the entire day.
The pumps were connected to power supplies, as they were the only thing we had that could provide enough current.
The lamps were plugged in, and the LED tubes were connected to the Arduino to provide code, and the power was provided by a 5V wall port
We used 4 sensors to measure salinity, pH, turbidity, and temperature. These were placed inside small PVC pipes, and sealed with silicone to provide waterproofing. The whole system was glued inside a floating chlorine tablet dispenser, and the wires were led out of the dispenser, and to a waterproof enclosure on the table.
These wires were connected to plugs, with the other end connected to an Arduino Uno
The turbidity sensor was a GE turbidity sensor. This sensor shines an LED through a stream of water onto a photoresistor. As the water gets more turbulent, less water gets through, and so the resistance changes. This was connected to a voltage divider, and the voltage was read using the Arduino analog pin 1. The pinout on this is 5V, GND, Turbidity Output, and Thermistor Output (unused for our project), read left-to-right with the marking on the bottom right-side-up
The temperature sensor was a DS18B20 waterproof temperature sensor. The 5V and GND pins were connected, and the DATA pin was broken out with a 4.7k resistor to 5V. This was connected to pin 2 and read using the Dallas sensor library
The salinity sensor was a cheap conductivity probe. This was again put into a voltage divider, and connected to analog pin 4 on the Arduino.
Finally, the pH sensor was a pH probe from DFRobot. Use their code to calibrate it (https://www.dfrobot.com/wiki/index.php/PH_meter(SKU:_SEN0161)), and connect the pins to 5V, GND, and an analog pin (We used analog pin 3). The probe itself starts at 414.12 mV at 0 pH, and goes down by 59.16 mV per 1 pH. If you use the included board, the -414.12 mV - 414.12 mV gets converted to 0 - 4V for the Arduino, so you can use the map function to convert between 0 - 4V and 0 to 14 pH
Finally, we added code to set two Neopixel strips to red and blue.
In the Arduino code, this gets printed to the Serial Monitor, and exported to a SD card, although we didn’t end up using the latter.