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 (Radioshack #270-1809)
(x1) Multipurpose PC Board (Radioshack #276-150)
(x1) 5VDC SPDT micro relay (Radioshack #275-240)
(x1) 9V battery connector (Radioshack #270-324)
(x1) 9V battery holder (Radioshack #270-326)
(x1) 9V battery (Radioshack #23-853)
(x1) SPST micromini toggle switch (Radioshack #275-624)
(x1) 10K resistor (Radioshack #271-1126)
(x1) Size M coaxial DC power plug (Radioshack #274-1569)
(x1) Red and black 22AWG wire (Radioshack #278-1221)
(x1) 12AWG black wire (Radioshack #278-556)
(x1) Non-submersible electric water pump (via Amazon)
(x1) Water storage container with lid
(x2) 8-32 x 2.5" nuts and bolts
(x8) 4-40 x 1" nuts and bolts
(x1) 4-40 x 3/8" nut and bolt
(x4) 1/4" spacers
(x1) Wire nut
(x2) 3' - 5' plastic tubing
(x1) #8 Terminal Ring
(x1) House plant to water

Step 2: 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 3: 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 4: 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 5: 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 6: 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 7: Fasten

Zip tie the water pump securely into the case.

Step 8: Cut the cord

Cut the pump's power cord about 6" from the pump's body.

Step 9: Start the PCB

Solder the 5V relay to the board.

Solder a 10K resistor to one of the relay's coil pins.

Step 10: Attach wires

Attach an 18" section of 12 AWG wire to the free pin of the 10K resistor. Solder a 6" section of black 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 11: 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 12: 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 13: Attach

Attach the circuit board to the project box using 1/4" spacers, nuts and bolts.

Step 14: Wire nut

Attach the two free power cables from the pump and power cord together using a wire nut.

Step 15: 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 16: 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 17: 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 18: 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 19: Program

Plug in your Arduino and upload the following code:

Keep in mind that you may need to adjust the trigger threshold for your particular plant setup.

Step 20: Install

Fasten the Arduino to the base of the project enclosure with nuts and bolts.

Step 21: 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 22: 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 23: 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 24: Case closed

Put the lid on top of the project enclosure and use the hardware that came with it to fasten it shut.

Step 25: Drill

Drill a 3/8" hole in the top of the water container's lid.

Step 26: Tubing

Cut the tubing in half.

Plug a tube into each of the pump's connector valves.

Step 27: Probes

Insert the probes into your plant's soil about an inch apart.

Step 28: Place tube

Place the tube from the output of the water pump onto the top of the plant's soil bed.

Step 29: Insert tube

Fill your water container and insert the tube into the hole that you have previously drilled in the top.

Step 30: 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.
<p>Hi Randy, my flower has asked me to do it automatic watering, but his boss ran into a problem when trying to check the code gives error. Help my master how to fix it. When he was not at home for a long time, I have very bad without water.</p><p>That's what he can not, how to fix it)))?</p><p>Arduino: 1.6.5 (Windows 8.1), Board: &quot;Arduino Uno&quot;</p><p>The sketch name had to be modified. Sketch names can only consist</p><p>of ASCII characters and numbers (but cannot start with a number).</p><p>They should also be less than 64 characters long.</p><p>sketch_oct02b_:18: error: expected unqualified-id before numeric constant</p><p>sketch_oct02b_:25: error: expected ',' or ';' before 'void'</p><p>expected unqualified-id before numeric constant</p><p> This report would have more information with</p><p> &quot;Show verbose output during compilation&quot;</p><p> enabled in File &gt; Preferences.</p>
<p>I am interested in an industrial version being built --- </p><p>Can the author react out </p><p>amoskovitz@yahoo.com</p>
<p>can u plz mail me the source code? gaidar.kos@gmail.com</p>
<p>someone has a video toturial?</p>
<p>these arduino codes are not working for me is there any tips so I can figure out this problem </p>
<p>I have only one question, how often do you need to change the 9V battery? My bet is that it will last around 2 days...</p>
<p>Can someone please help me with the wiring diagram between the relays, probes and the arduino. Quite confusing. Thanks in advance!</p>
<p>Hi, this is a good project. I would like to do, so I was wondering if you can share the code for the arduino? would be great if you could do it.</p><p>thanks in advance</p>
<p>The code for the arduino is given in Step 19: Program</p>
Hello River_alexander<br><br>Thanks for all! =)
<p>Would a submersible pump work as well as a non-submersible pump?</p>
Can 1 arduino control multiple pumps for independent vases?
<p>I would all so be cool if you could make it so the water in an dish at the bottom of the plant got ran though back to the water container through an tight to clean out any solid mass</p>
<p>Sure, But you may need to run them off separate power supplies. So you may need to use transistors or relays.</p>
<p>I would love one or several of theses....but the fact that I am too lazy to water my plants means that something like this is far out of my grasp....</p>
<p>Thanks for instructable Randy!</p><p>Because I had one of those moments when you get to home depot and realize that the word tubing is not descriptive enough, haha, I wanted to add that the tube size for the specific pump in this instructable is 5/16&quot; OD x 3/16&quot; ID. I couldn't find the compatible tube size needed on the pumps packaging or instructions either, but luckily you had a close up shot of the tube where I could see the size.</p>
<p>Step ten says;<br>&quot;Attach <br> an 18&quot; section of 12 AWG wire to the free pin of the 10K resistor. <br>Solder a 6&quot; section of black 22 AWG wire to this joint.</p><p>Attach an 18&quot; section of 12 AWG wire to an unused part of the PCB. Solder a 6&quot; section of red 22 AWG wire to this joint.&quot;<br><br>However, the pictures show two additional wires coming off the PCB. You can see them again in images from steps 12,13, 15, and 22. Step 23 talks about where the OTHER end of those wire go (connecting to the Arduino), but I am wondering where they connect exactly on the PCB. I seem to be missing the step where it mention when and where those wires are connected.</p>
<p>Did you ever figure out what wires went where? I would really like to do this project, but I can't get it to work.</p>
<p>wired up and everything but doesn't seem to work. Just flashes number on the serial from very high to very low rapidly. Also Relay doesn't seem to work even when i wire it up differently and force it to work, I can hear the internal switch clicking but the pump just stays on. I made sure non of my wires or solders are crossed. </p>
<p>Hello All,</p><p>Completed this project. I have a complete working project running off solar power (which is pretty awesome, just connects the usb from the Arduino to the usb port of a Goal Zero nomad 7).</p><p>My previous relay in me last comment was faulty so I got a new one. Please note that as far as I know, the above will not control the relay as it would appear. Instead of what he has above, I connected the 5v to one pin of the relay coil, and the other pin to the Arduino. I then have a wire from that 5v across the pc board and out to one of my sensors. The other sensor is hooked up totally separately from the relay with a gourd the pc board, a 10k resistor to a wire that connects to A0 (on the Arduino) and a wire to the other sensor that that junction.</p><p>hopefully this helps to those who are not having success. I am not comfortable making a circuit diagram to show what I did as I have no idea my self how to read them. I can send pics, or explain better how I did things to anyone who asks.</p>
<p>Hey, would you mind sending me pictures of how you did this a.k.a. the PCP board and where the wires go to. I would really like to do this project, but the pictures and instructions aren't very well detailed. If you could email it to river@riveralexander.net that would be great. Thanks for the help!</p>
<p>thanks 4 de tip, it worked just like you said..</p>
<p>Hi! </p><p>Would you post a pic of your setup? I'm a newbie here and couldn't make it work :(</p><p>Thanks a lot!</p>
<p>not sure how to annotate pictures, the green wire from the relay goes out to any digital pin (mine goes to pin 2), the red wire on the top part of the relay goes to 5v. the red wire across is soldered to one of the sensor wires.</p><p>The black wire goes out to ground on the arduino, the 10k resistor goes over and is connected to a green wire (show) that connects to one of the analog inputs (mine goes to A0) and underneath is soldered to the other sensor wire.</p><p>The red wire on the bottom of the relay goes out to one of the parts of the pump wire as he illustrates above, the other wire goes into the single pin of the relay (which is on the ver right of the picture)</p><p>let me know if you need me to clarify anything. I know nothing about circuits or anything, just did some googling and playing around on a bread board to figure this all out.</p>
<p>sorry could you send me the schematic and program details as well thank you very much it would come in handy </p>
<p>hi, could you send me info as I want to do this as my final project. christianjay95@hotmail.com</p>
<p>hi sir, thank you for the info. can you send me on my email the full information and the program because the above info is quiet complex for me. I want to propose this to my professor for our thesis project. This is my email arjie.carolino@yahoo.com</p><p>Thank you sir..</p>
<p>I can use a air pump instead?</p>
<p>can i use bigger water pump</p>
<p>Yes you can use even a 300HP pump if you want. Just use proper relay and source</p>
<p>2 questions: 1) is this design adaptable to maintain more than one plant (potentially 3 or 4 at a time with 3 or 4 separate pumps, so the pumps all go to the same set of circuitry?) and 2) is it possible to add a rechargeable solar assembly to power everything?</p>
<p>1) yes</p><p>2) yes</p><p>With programming you can add as much pumps and sensor as you want. Its not so diffucult to add extra code lines.. </p><p>For the solar rechargeable system it will become a little expensive, but in any case you should add a solar panel that charges the battery in a few hours, and a battery capable of operate when cloudy days havent charged the battery. Maybe you can add a 7A motorcycle battery which will be more cheap and maybe more autonomous</p>
<p>Im interested to do this project as my final project.</p><p>please send me information, programming details.</p><p>emanuelsp@unitec.edu </p>
<p>Hi,</p><p>Great stuff!</p><p>I have a little question, there is any reason to use non-submersible pump? Can I use submersible pump?</p>
<p>ive tried to use submersible pump, and it worked ... :)</p>
<p>mde<br>Not that I want to reply in Randofo's case, but i can see why he used a non submersible pump.<br>It is a house-plant and he only uses a small container. also it all fits neatly in one box.<br>If you use a submersible pump (like i have used in garden projects) it needs to be in a larger container and needs to be submersed all the time. that might not always be a good choice inside a house.<br>Having said that: sure, you can use a submersible pump, just dont put it in the box but keep it submersed</p>
<p>can u plz mail me the source code as it is my final year project.my email id is alokj69@gmail.com</p>
<p>Can somebody give me the circuit diagram...Im a noob...! Please...This is my first project...</p>
<p>Hello! </p><p>Awesome project! I have a question, where did you find the data you needed to program the moisture sensor. I was trying to figure out how to identify the necessary moisture for different plants but haven't an online resource with that data. </p><p>Thanks! </p>
<p>@marlenjaramillo</p><p>marlen, i am not sure how Randofo does it, but generally you would just take a reading of the sensor while the soil is most enough that you consider as the right moisture for that plant. You then use that value in the program.<br><br>Another way is to just make a calculation:<br>measure the resistance of the sensor at a moment you consider the soil moist enough. Now suppose that value is 10k.<br>The probe is part of a voltage divider with another 10k resistor to ground. Therefore the voltage on the A0 pin becomes 2.5 Volt or in digital terms 1024/2=612.<br>if the resistance of the probe would be e.g.40k when the soil is moist enough, the voltage would be (5/(10+40))*10 =1Volt or in digital terms 1024/5=204.<br><br>As the project uses an entire arduino, you could easily add a variable resistor/potentiometer that is being read by one of the other analogue ports. one can then use that value (map it first so it only takes 1 byte) to set the irrigation threshold.<br><br></p>
<p>hye,sir</p><p>im electrical engneering student.</p><p>Im interested to do this project as my final project.</p><p>please send me information, complete project detail and programming details.</p><p>sankancu1724@gmail.com</p>
<p>has anyone actually made one of these? the wiring instructions are so convoluted that i cant imagine anyone has actually had luck with constructing this...</p>
<p>can someone post a schematic or wiring diagram? the directions arent very clear as far as what pins are connected to what wires and i want to double check...</p>
<p>you can easily add a sleek plant arm to the pot, so it has light..! please check out my designs, i'm in the process of combining the two technologies...</p><p><a href="http://www.instructables.com/id/USB-powered-LED-plant-light-20/" rel="nofollow">http://www.instructables.com/id/USB-powered-LED-pl...</a></p>
<p>I can't seem to find the code?</p>
<p>Thats exceptional...<br><br></p>
Can you use a bigger reservoir for the water.
<p>so 5v goes to the plant analog in comes from the other probe.</p><p>Where is the ground at? Kinda confusing?</p><p>Is this correct; I found no schematic found</p><p>redwire to arduino 5v and then soldered and to plant</p><p>black wire to a1 (analog in) and ground and to resistor side of relay.</p><p>digital 12 pin to one side of relay coil on micro relay</p>
<p><br>Thats great</p>
<p>Hi! I'm wondering, watering plant once a week?... do you feed the plant when it's dry all the time?</p><p>thank you!<br>marC:)</p>

About This Instructable


772 favorites


Bio: My name is Randy and I run the Instructables Design Studio. I'm also the author of the books 'Simple Bots,' and '62 Projects to ... More »
More by randofo: Bedfellow Robot Bed Easy Science Fair Project Chocolate Blackout Cake
Add instructable to: