Automated Plant Watering System




Introduction: Automated Plant Watering System

House Plant Babysitter
Going away from a while? Need something to babysit your house plants?
This box will automatically deliver an adjustable volume of water to four plants (or less) every day, or once every "x" day (up to seven days). A micro controller handles the time tracking and 120AC switching (via a relay). The relay powers a fountain pump which functions as the water delivery system.

Step 1: Materials

You'll need these basics to build this setup.
Fountain Pump (pick on that can deliver water upward to match your box)

  • Nylon tubing...................................................... $12.00
  • Light Bulbs (the right ones for plants)............... $2 x2
  • Light fixture ........................................................$1.60 x2
  • Micro controller...................................................$4 (buy the 3rd party Arduino)
  • Relay PCB ........................................................$3.50
  • LCD screen .......................................................$8.00
  • Tub to hold water ................................................$1
  • Maple plywood..................................................... $12

The total cost of this build is around $80 when you add all the misc stuff.

Step 2: Build a Box!

You can make just about any box to house this system. Im actually borrowing this box design from another 'secret' project I'm working on. But it will do just fine to make the system "all-in-one".

I am not going into detail how to make this box as you can find great tutorials on Instructables for boxes. I will say I am using straight slats to hold the two 'shelf' layers. No brackets here.

Since we are making a water pump system, it might be beneficial to protect said wood from the water. I put about 4 coats of Polycrylic to make this wood "water tolerable". The box was cut on a laser cutter at work and glued together.

Step 3: Electrical System

The arduino will keep track of time as well as the day of the month. When the alarm is triggered, the Arduino will power a relay. This relay will complete the 120V circuit for a water pump. The pump will deliver water to the plant! It's simple enough, but each sub step has some complexity.
Disclaimer: This will not satisfy any NEC requirement for 120v AC circuit next to wet environments. Build at your own risk.

The photos show the connections for the Arduino, LCD and the control panel. Depending on the Relay board you buy and how many safety violations you want to avoid your 120AC wiring might look different. I haven't shown any as this my way to say, you shouldn't do this unless you're confident in your abilities.
To summarize: 120V comes into the Relay, and when the Relay closes, that 120 gets passed to the outlet, powering the pump. The outlet is a single gang, but it is important to note I removed the tabs that tie both electrical sockets together. Now the outlets can be independently wired. One always on, the other switchable via relay.
My setup uses two relays to switch the 120AC on/off. Instead of passing the Neutral wire through the to outlet and only switching the L (hot) line, I am actually switching both the N and L 120 lines in separate relays. Double the redundancy for reasons that involve lack of foresight: I clipped the power cord in half (instead of just one wire) without thinking, so here we are.

Step 4: Mount Electrical

The outlet and relay board get mounted to the side of our box. Tip: If the water reservoir fails and leaks into our box , it would be best to mount any lines carrying 120AC above the "flood zone". Next we wire the arduino.

Step 5: Arduino

The control panel is wired up and dropped into our box. The LCD screen also gets bolted in and wired. Both of these are wired to the Arduino.

Step 6: Code

A simple time keeping program that also tracks the day lies at the heart of our Arduino. I wrote some basic push counters that allow you to set the Hour and Minute locally for both the time and the alarm time. The day tracking is arbitrary and starts at day one and will count up to whatever day depending on the month is being tracked.

Building flexibility into the system means a few features. This code has the ability to:

  1. manually override pump
  2. control duration of when pump is active (control volume of water delivered)
  3. control how many times per week plants are watered

The more interesting section of this code is how control how many times per week plants are watered. In other words, how do we make the water on every "x" day operation as simple as possible?

IF Day of the MonthMod Water Every X Day = 0 , Then water plant!

Modulo is the key. Take the days of the month, and divide [modulo] them by x (Water on "x" day). If the remainder is zero then activate the relay [pump]. That's it. This chart shows the modulo=0 for all possible days of the month (1-31) and the divisor (1-7). Way easier than to make a look up table for every day of the week, and then a command to make that repeat week after week. Thanks Discrete Mathematics course for making me do all those logic proofs and the modulo finally comes in handy.

Step 7: Hydraulics System

Place the pump in the reservoir (tub) and feed the outlet tubes into a T. You can "T" [split] off into however many splits need for your number of plants. I am going with four because it's a beautiful number.

Step 8: Artificial Sunshine for Plants

Putting plants into a "box" might not be the best thing for them, so we need to give them artificial sunlight. I am going to use some compact fluorescent bulbs. I would advise picking the right bulbs that give your plant the proper [UV] light it needs. I am using a spare vacuum cord to wire to some household light fixtures. These fixtures get mounted to the top of my box and the bulbs drop down through the grate holding the nylon tubes.
Yes, we have water right next to 120V. Again, do not try this at home or any location.

Step 9: Connect Power, Add Water

The arduino and lights are plugged into one outlet. This outed is wired to be always on. The pump is plugged into the other outlet which is controlled by the relay [arduino].

Step 10: Chip Clip for Plants

To go the extra mile, I 3D printed some simple clips that route and clamp the water hose to the plant's pot. Simple and moderately effective.

Step 11: Set It and Forget It!

(Not Ronco affiliated or endorsed). The video demonstrates the features and functions of this machine best. If the video doesn't start at 4:57, that where you should start.

Video Link



    • Water Contest

      Water Contest
    • Tiny Home Contest

      Tiny Home Contest
    • Fix It! Contest

      Fix It! Contest

    27 Discussions


    j'aimerai s'il vous plait avoir votre code arduino et votre projet en pdf s'il vous plait ,pourriez vous aussi si ce n'ait pas trop vous demander me donner un coup de pousse si je vous demande quelque info ,je débute avec arduino, d'avance merci , je vous laisse mon email /

    1 reply

    Where did you connect the rocker switch???


    1 year ago

    Hi, I'm nearly done with this (I'm doing this as end-project for school). But I have still one problem: When I want to set the time to water the plant, It doesn't send a signal to the relay. Looked for any problems in my circuit, no problem here. Looked in the code for any problem makers, also found nothing here. Thanks for helping in reverse! (Sorry for bad English)

    1 reply

    Same problem, tried everything -_-

    Hi im doing a similar project for college and i was wondering if this set up can be done without using mains electrics and how would i go about doing it?

    any help would be appreciated thanks

    1 reply

    It can. Since you're in college, I'd be doing you a disservice if I just handed out answers :)
    Instead, how do you think you would do it? Justify your solutions. I will let you you know if you're one the right track or not.

    display is glowing but i cant see any letters on my display......what to do?????

    I am wondering, could an arduino be used to control the watering of about 10 pots of herbs I grow each year? Checking each pot every 15 minutes independently, them waters a set amount as needed. If I can find a switchable water valve bank of the correct size the is controlled by a current of some kind, could it be done?

    1 reply

    It can be done. At 10 pots, you might opt for an arduino mega. You would ideally have 10 moisture sensors, and then 10 solenoid valves to control watering, therefore you'd need in theory 20 pins to monitor and control everything.
    I have seen some lower voltage valves that would be use for this application, the catch is the valves need about 4-6 psi to actuate and seal properly. Keep this in mind when you locate your reservoir.
    Adafruit has these soleniod valves i mentioned.

    Nice project and looks a well! You don't use a real time clock. How you synchronize the time and what do if a power accidentally shut down?

    1 reply

    if you watch the video you can see me set the time at power on. If there is a power loss you will lose the time of day, but the watering interval and time of watering will still function- just at the wrong time.

    For heavens sake, put the electronics above the water/plants!
    Very nice project but there is actually not a worse placement for them.

    2 replies

    What if you have some three dozen pots with different watering needs? Lemme see ... one system for each pot ... that's 2880 dollars precisely.

    I'm thinking for a while now of a simple, analog system, with two or four metal rods as a simple humidity sensor, plus a single transistor driving a relay that opens a small valve - one such system per pot, adjusted periodically for the precise humidity that pot requires. No pump, just a canister of water placed some place high, and water flowing downwards when a valve is open. I just don't have a good enough idea for the valve. I want something cheap, at most 5 dollars per pot.

    I was also thinking of a system with a single micro-controller visiting each pot's sensor and valve periodically, but the problem stays the same: a small, cheap valve that can be driven by a tiny electromagnet.

    As for the clips: heat some thin rods of plastic and bend them into an U-shape, then use them to clamp the hose into the soil inside the pot. I think they'd be equally effective, only cheaper to make.

    well done. Having build a few irrigation controllers myself, I keep finding these projects fascinating.
    I am not sure how much you are pumping, but as far as I could see your reservoir was not that big so it may run out soon. May I suggest a filling inlet somewhere so you dont need to take out the plant when you need to refill the reservoir. Could be as simple as a hole with a funnel, or a piece of pipe coming out of the side and then up .... also with a funnel in it

    Speaking of reservoirs just a caution. I can imagine someone wanting to leave for a longer time and temporarily putting a bigger reservoir next to the device: as long as there is water above the level where the hose exits to the plants, even after switching off the pump, water will remain running due to siphon action. Ofcourse as long as in your case the entire reservoir is below the plant you do not have that danger.

    I love your 3D printed clips. Very nifty

    2 replies

    Thanks. A bigger reservoir was on my mind, you can swap out for a larger plastic tub if you had it. I was on a budget so this what I had as far as plastic tubs.

    I would agree with the filling hole. My original intent was to vacuum form a tray to trap any water spilled from filling plants.

    catching spillwater would be a good idea

    This reminds me of the MIT Food Computer