Automated Plant Growth Chamber
by jamesbardin15 in Circuits > Arduino
6336 Views, 72 Favorites, 0 Comments
Automated Plant Growth Chamber
The following project is my submission to the Growing Beyond Earth Maker Contest in the High School division.
The plant growth chamber has a fully automated watering system. I used peristaltic pumps, moisture sensors, and a microcontroller to automatically water the plants to keep the soil at optimum moisture. I designed my growth chamber so it could be easily harvested and planted, and so it made efficient use of the space in the box. The flexible design would allow astronauts to have a steady inflow of crops, being able to harvest a pouch (approx. 3 heads) of fully matured lettuce every 10-14 days. Because seeds germinate at different times and grow at different rates, I wanted to create a system where plants could be harvested and new seeds could be inserted when they were ready, so I designed my plant pouches. The chamber, consists of four plant pouches, or a total of 12 plant slits, which can be removed, harvested, a new seed slip can be inserted, and the pouch can be stuck back into the system using velcro in just minutes. The seed slips allow for seeds to be prepared, oriented and glued ahead of time, and inserted into the pouch when needed.The plant pouches' slits were designed to allow the plant to grow while preventing water and dirt from leaving the bag.The anti-static bags, in addition to protecting electronic components, are mirrored surfaces. So, with the anti-static bags, the light will reach all plants/sprouts in the system and the lettuce will not grow just directly toward the grow light.
Supplies
Container:
1. Acrylic File Storage Box
2. Metal Storage Bin
3. Desktop File Organizer
4. Velcro Strips
5. Grow Light
Plant Pouches:
1. Anti Static Bags
2. Sponge Rubber Foam Tape (5/16-Inch)
3. Germination Paper
4. Coarse Soil Mix
5. Seed Glue (flour and water)
6. Seeds (I used a Mesclun Green packet)
Watering System:
1. Peristaltic Pump
2. Silicone Tubing for Pump (2mm x 4mm)
3. Arduino M0 Pro (Any model will work) and power source
4. Micro USB to USB-A
5. Breadboard
6. Jumper Wires
7. Soldering Iron and Solder
8. Bridge Driver (I used a TA7291P)
9. Moisture Sensors
You can find cheap ones, but they will corrode quickly from current induced electrolysis and will need to be replaced as the readings will go bad. Alternative is to use capacitive moisture sensors that are less prone to corrosion or more expensive cathode-anode sensors
10. 12v Barrel Jack for Breadboards and Cable
11. Water bottle with a check valve
Assemble the Chamber
This step can be done in many ways, but I opted for a two part container because it allowed for more flexibility. I used the metal frame that has an open front and open top to house the plant pouches, grow light, and automatic watering system. Then, once the plants are loaded, I have an acrylic box that slides down on top of the metal base.
Steps:
1. First, I attached the grow light to the metal frame. I drilled two holes in each side of the light (after making sure I wouldn't damage any components), and attached it to the front side of the base. (seen in picture 1)
2. I had to cut a hole in the frame and the acrylic to fit the power chord for the light (picture 2-4)
Tip: to cut the hole in the acrylic I drilled four holes in the corner of the rectangle I wanted to cut and used a Dremel to connect them and make a clean cut
3. Because I bought a file storage bin for the acrylic top, I had to remove the two lips meant to hang the files from. To do it, I heated up the plastic and took a paint scraper and a mallet and gently tapped along the piece slowly separating it from the box.
4. With a few final adjustments to the metal frame using a mallet, the acrylic top fit snuggly on top of the frame and base.
Plant Pouches
I chose to create plant pouches instead of a hydroponic system to allow for more flexibility. The pouches can be prepared ahead of time and can be easily reused by putting a new seed and germination paper packet in the slit. The pouches can be easily removed and put back into the chamber using the velcro straps. Also, because the pouches are so easy to prepare, they can be planted in offset times to allow for a steady flow of crops. When they are all planted at once, there is time where the chamber has no sizable crops. So, instead I suggest that the pouches are planted offset by a few weeks so there is a constant flow of harvestable crop.
Pouch Sizing:
This step of the process is specific to the dimensions of each persons box. I end up using two 4x6 bags and modified two 12x16 bags to fit the back and bottom of my box. The 4x6 bags had zips to close, but the larger bags didn't and I modified them. So, I used double sided adhesive tape to close the bag from the inside and used another piece on the outside to keep it folded back (picture 5)
Assembling the Pouches:
(see picture 3 for layout I used for my pouches. I designed it so that the plants wouldn't grow into each other's space and so they didn't shade each other from the light source)
1. Cut one inch slits in the antistatic bags (picture 1)
I used an Xacto knife and a piece of cardboard to make sure I didn't cut through both sides of the bag
2. Cut an inch and a half piece of the foam tape and place directly on top of the slit (picture 2)
3. Using the Xacto knife or blade, cut a one inch slit in the foam that is aligned with the slit cut in the bag during step 1 (picture 2)
4. Repeat the same process on one bag but make a larger slit to fit the moisture sensor
5. Repeat the same process on all bags but instead but a square of foam tape and make a small x-shaped incision just large enough to fit the peristaltic tubing
Tip: For the hose holes, place them in areas where the hoses won't cross over plant's growing areas and also so they can connect back to the rear compartment easier
Seed Slips
The seed slips were designed so they could be prepared ahead of time and stacked in storage until they are to be used. I prepared a simple seed-friendly glue to adhere the seed to the germination paper and orient the seeds radicle or point down so the roots grow into the pouch and the sprout comes out from the slit.
Creating the Seed Slips
1. Cut a piece of germination paper (2.5in x 1in)
2. Mix a tablespoon of flour with just a enough water to form a thick paste
3. Using a toothpick put a dot of the seed glue on the center of the germination paper
4. Orient the seed with the radicle or point facing downward and mark/remember the which end it is facing because this is where the root with grow from
5. Fold the germination paper twice, making a trifold with the seed in the center
Automatic Watering System
The watering system will consist of moisture sensors and peristaltic pumps to automatically water the plant pouches when they go below a moisture level of 30%. I wrote the code so that the moisture level is checked in the pouches after 8 hours and if the level is below 30% then the pump will turn on for 10 seconds. For my pump and power supply 10 seconds was good enough to increase the moisture in the bags enough above 30% so the pump will activate around every 16 hours, but should be tested and adjusted for different setups.
Connections:
GND to bridge driver pin 1
12V GND to bridge driver pin 1
5V to bridge driver pin 7 (vcc)
D5 to bridge driver pin 5 (in1)
D6 to bridge driver pin 6 (in2)
Arduino D13 to R1 (if the optional external LED is used)
Bridge driver pin 2 (out1) to positive terminal of peristaltic pump
Bridge driver pin 4 (vref) and pin 8 (vs) to 12V pos.
Bridge driver pin 10 (out2) to negative terminal of peristaltic pump
Notes:
Pins 9 and 3 of bridge driver aren't used
The end of the bridge driver with the beveled corner on top is pin 1 and the squared end is pin 10
Code:
int IN1Pin = 5; // change depending on pin you are using
int IN2Pin = 6; // change depending on pin you are using #define moisture_pin A0
void setup()
{
Serial.begin(9600);
pinMode(IN1Pin, OUTPUT);
pinMode(IN2Pin, OUTPUT);
analogWrite(IN1Pin, 0);
analogWrite(IN2Pin, 0);
pinMode(moisture_pin, INPUT);
delay(1000);
}
void loop()
{
int sensorValue = map(analogRead(moisture_pin), 0, 1023, 100, 0); // maps moisture readings which are 0-1023 to a percent from 100-0
Serial.print("Current moisure level is: ");
Serial.print(sensorValue);
Serial.println("%");
if (sensorValue < 30) // if moisture is less than 30 percent executes the following
{
analogWrite(IN1Pin, 255); // 255 sets pump to max power
delay(10000); // runs pump for 10 seconds
analogWrite(IN1Pin, 0); // turns off pump
Serial.println("Checking Moisture Levels in 2hrs");
delay(28800000); // 8 hours in milliseconds
int sensorValue = map(analogRead(moisture_pin), 0, 1023, 100, 0); // checks moisture levels
Serial.println(sensorValue); // prints moisture level
}
else
{
Serial.println("Soil is damp, checking again in 1hr"); // if soil moisture is above 30% prints this statement
delay(3600000); // 1 hour in milliseconds
}
}
Tip: after the code is uploaded to the Arduino, for those of you who haven't used them before, you do not need to leave it plugged into your computer. You can get a small power supply for the arduino and it will execute your code when it is turned on. So, for this design all you need is a power supply for the arduino and a 12v power supply for the barrel jack on your breadboard.
Putting It All Together
At this stage you should have the completed box with grow lights, watering system, and plant pouches so all that is left is to put it all together.
This stage many be different for many people depending on the dimensions of the box and the compartment for the water reservoir, pump, and microcontrollers.
Because the growth chamber is meant to work without gravity, I made sure to strap down all of the components in the rear compartment using 15lb-grade Velcro strips
1. I used an Arduino and breadboard holder and the velcro straps attached to the frame and on the back of the holder and mounted it to the upper side of the file storage container that is my back compartment. (picture 2)
2. Then, I put velcro strips on the bottom of the peristaltic pump and the base of the compartment and did the same with the water reservoir.
3. Next, is the irrigation system. I used three tee joints to split the hose from the peristaltic pump into four hoses for the four plant pouches. (picture 3)
4. Finally, I placed the velcro strips to hold the plant pouches in place. Because i was attaching the strips to a mesh, I cut segments of industrial webbing and glued them to the outside of the frame against the back of the Velcro strips.
Setting Up the Plant Pouches and Running
After the rear compartment, tubing, and moisture sensors are all in place, all that is left is to attach the plant pouches, the tubing, and the moisture sensors.
Final Assembly
1. Place the plant pouches on the side they were designed for. (picture 2 shows process)
2. Insert the moisture sensor into the bag with the longer slit made earlier
3. Insert the tubes into the pouches through the smaller square foam ports
4. Plug grow lights into timer and set so the lights are on for 16 hours a day
5. Plug in 12v power supply to breadboard barrel jack
6. Plug Arduino into computer (if you want to monitor the outputs) or the power supply and let the program run!
Results
The first set of pictures (1-4) above are two weeks of growth
The second set (5-6) are from the fifth day when most of the plant pouches had visible sprouts
The last picture (7) is from the first day the system was turned on
The best part about this contraption was that when one pouch was done growing, because they were growing at different speeds, I could remove the lettuce and insert a new set of seeds in the same pouch without having to harvest the other crops before they were ready. In future tests, I plan to offset the planting of the planting of each pouch by two weeks because it takes approximately 45-55 days for most lettuce to mature. And by doing this, every two weeks I will have a plant pouch worth of fully grown lettuce ready to harvest and it will prevent the other lettuce plants from blocking the light to the other pouches because there will be fewer large heads growing.