Self-Watering Plant




About: My name is Randy and I am a Community Manager in these here parts. In a previous life I had founded and run the Instructables Design Studio (RIP) @ Autodesk's Pier 9 Technology Center. I'm also the author ...

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: 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.

2 People Made This Project!


  • IoT Challenge

    IoT Challenge
  • Classroom Science Contest

    Classroom Science Contest
  • Colors of the Rainbow Contest

    Colors of the Rainbow Contest

181 Discussions


Tip 11 months ago on Step 17

1. From the code given, the moisture sensor probes are sampled around every 10 seconds. I recommend not powering the sensor constantly to prevent corrosion of the probes. Use a digital pin to power the sensor & decrease the sampling rate.

2. The 9V battery which is used to power the relay will eventually drain out & will need to be recharged/replaced. Instead, you can modify the circuit such that it uses a single 9V DC supply to power the pump & Arduino. By replacing the Relay with a MOSFET, you can turn ON/OFF the pump without any switching sound.

I Made This and added a few tweaks to it including Bluetooth Control.

DIY Arduino Automatic Plant Watering System


4 years ago

Can 1 arduino control multiple pumps for independent vases?

3 replies

Reply 11 months ago

Yes. Although in this case you'll need to connect each pump to a separate relay.

MuBoks Stufffconde1

Reply 4 years ago on Introduction

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


4 years ago on Introduction

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...

1 reply

Reply 11 months ago

From what I understand he's used a 9V battery to power the relay while the pump is powered from the AC mains(controlled by the relay). A better solution would be to use a 9V DC supply to power the Arduino & a 9V DC pump controlled by a MOSFET.

Joel Thomson

3 years ago

is it compulsory to ad Non-submersible electric water pump to it?

1 reply
JonathanrjpereiraJoel Thomson

Reply 11 months ago

You can definitely use a submersible pump instead of a non-submersible pump. Just make sure that there's always water present when it's turned ON. Some submersible pumps use the water around it to for cooling & the lack of it could cause the motor to burn.


2 years ago

Can we use Arduino to program a chip so we don't have to leave Arduino in the box? Thanks

1 reply

1 year ago

May i ask? What voltage or wattage of Non-submersible electric water pump will i use? Is it okay to use a submersible water pump instead of non-submersible water pump? THANKYOU! I am hoping for someone to answer :)

1 reply

Reply 11 months ago

1. The non-submersible pump is either 110V or 220V AC.

2. You can definitely use a submersible pump instead of a non-submersible pump.


11 months ago

Love the concept, but the instruction can be improved. Could you/Would you mind doing a wiring diagram for this project . I would love to build this. I have all the materials, but i'm having a bit of trouble.


2 years ago

how much money is it for me to buy a self watering plant


2 years ago

how much money for i make this self watering plant


2 years ago

Could you include a schematic for the electronics layout?


5 years ago on Introduction

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.