Introduction: Self-Watering Plant
Plants liven up any space by adding a sense of airiness and life. That is - of course - when you don't forget to water them, and they shrivel up and die. I am very bad at remembering to water plants. That is why I built this self-watering plant to do it for me. Using a soil sensor, and an Arduino-controlled water pump, I have created a system that will never forget to do it. Instead of remembering to water my plants when the soil goes dry, I only have to remember to once and a while refill the water reservoir. In this way, I have decreased my obligation to these plants and put it off to a much later date. Perhaps further iterations of this device can be connected to a rain barrel so that I won't even have to worry about refilling my reservoir, and the entire system can be fully automated.
Step 1: Go Get Stuff
You will need:
(x1) 8" x 6" x 3" project enclosure
(x1) Multipurpose PC Board
(x1) 5VDC SPDT micro relay
(x1) 9V battery connector
(x1) 9V battery clip
(x1) 9V battery
(x1) SPST mini toggle switch
(x1) 10K resistor
(x1) Size M coaxial DC power plug
(x1) Red and black 22AWG wire
(x1) 12AWG wire
(x1) Non-submersible electric water pump
(x1) Water storage container with lid
(x2) 8-32 x 2.5" bolts and nuts
(x8) 4-40 x 1" bolts and nuts
(x1) 4-40 x 3/8" bolt and nut
(x4) 1/4" spacers
(x1) Wire nut
(x2) 3' - 5' plastic tubing
(x1) #8 Terminal Ring
(x1) House plant to water
(Please note that some of the links on this page contain Amazon affiliate links. This does not change the price of any of the items for sale. However, I earn a small commission if you click on any of those links and buy anything. I reinvest this money into materials and tools for future projects. If you would like an alternate suggestion for a supplier of any of the parts, please let me know.)
Step 2: Update 8/19/19: Schematic
I've added a schematic by popular demand.
Step 3: Trim the Pump
Trim away any unnecessary plastic mounting brackets from the front of the pump that may prevent it from being flush with the case (nozzles and corresponding hardware not included).
Step 4: Drill or Cut
Line up the water pump with the base of one of the 6" x 3" sides of the case.
Drill or cut a hole large enough to fit the nozzles through.
Step 5: Mark
Position the water pump, Arduino, 9V battery holder, and circuit board in the bottom of the case.
Make marks in each of their mounting holes.
The pump will probably not have a mounting hole, so just make a mark on each side such that it can easily be zip tied down.
Step 6: Drill
Drill all of the holes that you have just marked with a 1/8" drill bit.
You may need to widen the zip tie holes to 3/16".
Step 7: Drill More Holes
On the 6" x 3" side of the case that has yet to be drilled, drill two centered 1/4" holes about 1-1/2" apart.
Step 8: Fasten
Zip tie the water pump securely into the case.
Step 9: Cut the Cord
Cut the pump's power cord about 6" from the pump's body.
Step 10: Start the PCB
Solder the 5V relay to the board.
Solder a 10K resistor to one of the relay's coil pins. This will be the relay coil's ground pin. This pin should eventually get connected to ground on the Arduino board.
Step 11: Attach Wires
Attach an 18" section of 12 AWG wire to the free pin of the 10K resistor. Solder a 6" section of red 22 AWG wire to this joint.
Attach an 18" section of 12 AWG wire to an unused part of the PCB. Solder a 6" section of red 22 AWG wire to this joint.
Step 12: Split the Wires
Pass the cut power cord into the box through the 1/4" hole closest to the water pump.
Split the power cord such that each conductor is its own separate insulated strand for about 6".
Repeat this process for the cord going into the water pump.
They need to be separated because each cable is being wired to a different spot.
Step 13: Wire the Power
Connect one of the strands from the water pump to the normally-open pin on the relay.
Connect one of the strands from the power cord to the common pin on the relay.
In this way, when the relay is powered up, AC power will be connected.
Step 14: Attach
Attach the circuit board to the project box using 1/4" spacers, nuts and bolts.
Step 15: Wire Nut
Attach the two free power cables from the pump and power cord together using a wire nut.
Step 16: Prep the Cords
Kink the power cable on the inside of the box and cinch it in place with a zip tie to prevent it from being pulled back through.
Tie a knot in the two 12 AWG wires such that when they are passed through the remaining 1/4" hole there would only be tension on the knot (and not the circuit board) when you tug on them.
Step 17: Prepare the Probes
Strip the end of each 12 AWG wire and clamp a terminal ring to the end.
Pass a bolt through each and fasten them in place firmly with the corresponding nuts.
Step 18: Wire the Power
Solder the red wire from the 9V battery connector to one terminal of the SPST switch. Solder a 5" red wire to the other terminal of the SPST switch.
Unscrew the cover from the M-type plug and slide the cover onto the end of the remaining red and black wires.
Solder the black wire to the outer ground connection on the plug. Solder the red wire to the inner power connection.
Screw the cover back on.
Step 19: Install the Switch
Drill a 1/4" hole in the 8" x 6" hole opposite the water pump.
Mount the switch into the hole using the mounting hardware.
Step 20: Program
Plug in your Arduino and upload the following code:
<pre>/* Self-Watering Plant by Randy Sarafan Reads a soil moisture sensor and turns on a relay that controls a water pump. The soil moisture sensor involves a 10K resistor between pins A1 and ground, and a probe connected to pin A1 and another connected to +5V. These probes are embedded and inch apart in the plant's soil. For more information, check out: https://www.instructables.com/id/Self-Watering-Plant/ */ // Analog input pin that the soil moisture sensor is attached to const int analogInPin = A1; // value read from the soil moisture sensor int sensorValue = 0; // if the readings from the soil sensor drop below this number, then turn on the pump int dryValue = 700 void setup() { pinMode(12, OUTPUT); // initialize serial communications at 9600 bps: Serial.begin(9600); } void loop() { // read the analog in value: sensorValue = analogRead(analogInPin); //Turns on the water pump if the soil is too dry //Increasing the delay will increase the amount of water pumped if(sensorValue < dryValue){ digitalWrite(12, HIGH); delay(10000); digitalWrite(12, LOW); } // print the sensor to the serial monitor: Serial.print("sensor = " ); Serial.println(sensorValue); //slow your roll - I mean... slow down the code a little delay(100); }
Keep in mind that you may need to adjust the trigger threshold for your particular plant setup.
Step 21: Install
Fasten the Arduino to the base of the project enclosure with nuts and bolts.
Step 22: 9V Clip
Attach the 9V battery holder securely to the bottom of the project enclosure with a 4-40 x 3/8" nut and bolt.
Step 23: Plug It In
Plug in the battery, and secure the battery in the battery holder.
If the Arduino lights up when you plugged in the battery, toggle the switch on the outside of the case to turn it off.
Step 24: Wire It Up
Now is time to plug everything into the Arduino.
Plug the black wire from the circuit board to the ground socket on the Arduino.
Plug the red wire from the relay coil into digital pin 12 socket on the Arduino.
Plug the red wire connected to the 10K resistor to analog pin 1 socket.
Plug the red wire connected to the soil probe into the +5V socket.
Step 25: Case Closed
Put the lid on top of the project enclosure and use the hardware that came with it to fasten it shut.
Step 26: Drill
Drill a 3/8" hole in the top of the water container's lid.
Step 27: Tubing
Cut the tubing in half.
Plug a tube into each of the pump's connector valves.
Step 28: Probes
Insert the probes into your plant's soil about an inch apart.
Step 29: Place Tube
Place the tube from the output of the water pump onto the top of the plant's soil bed.
Step 30: Insert Tube
Fill your water container and insert the tube into the hole that you have previously drilled in the top.
Step 31: Turn It On
Flick the switch to turn it on.
You should never have to water your plant again.
Now you just need to remember to refill the water reservoir.
Did you find this useful, fun, or entertaining?
Follow @madeineuphoria to see my latest projects.