No Pump Automatic Watering!




In this instructable I'm going to show you how you can make your very own automatic plant watering system. The best part? This solution requires no pump!

The benefit of using an automatic watering system is that you avoid having your plants start to dry out, and you also wont accidentally soak your plants. The moisture is kept at the perfect level for your plants and you end up using less water!

There's a lot of different automatic watering systems out there. These seem to work great however there has always been something preventing me from building them. They all require a pump. Personally I would prefer not to use a pump because I think they are expensive and makes a lot of noise. I went to the drawing board to see if I could come up with something different!

This system uses a micro controller and soil sensor to monitor the water level of your plants. If your soil is starting to dry out the controller will counter this by watering the soil until it is sufficiently moist again.

Instead of using a costly and noisy water pump, we are going to use a servo to elegantly open and crimp a water tube. So cheap. So easy.

Let's get started!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Parts and Tools

You are going to need the following:


  1. Arduino
  2. Soil moisture sensor
  3. Servo
    1. Any tiny servo will do. Like those small 9G servos you can buy for a dollar!
  4. Water tube
    1. I'll show you how to make one if you don't already have one laying around
  5. Cable ties
  6. Power supply
    1. For your arduino
  7. Water reservoir
    1. I used a milk carton, an empty bottle works just as well
  8. Bredboard wires


  1. Hot glue gun
  2. X-acto knife
  3. Yarn
  4. Pliers

Step 2: Making a Water Tube

This step is optional and you can skip it if you already got a small water tube.

It's possible to use the outer isolation on a power wire as a water tube. To do this we need to remove the inner copper wires without damaging the outer rubber.

Start by cutting a length of wire. I used the wire from an old power cord I was going to throw away. You only need about 25 cm or 10 inches.

Strip away part of the isolation on one of the wire ends. Use your pliers and start pulling the inner wires. You don't need much just enough to get a grip later on.

We're going to soak the wires in hot water to soften the plastic and make it more manageable to us. Fill up your sink with really hot water and keep the wire under for at least 5 minutes.

Now it's time to finish what we started. Use the pliers to get a solid grip on the inner wires and start pulling. Don't strain too much or the wires might snap. Hold the wires while pulling downwards on the isolation. This is hard at first, but suddenly the isolation is gonna release it's grip and the wires will slide out.

Perfect, you now made yourself a watering tube!

Step 3: Making the Water Supply

Let's make the water reservoir work! First cut several tiny slits in the cork of your bottle. Now insert the water tube and seal the hole with some hot glue. Glue both sides of the cork for the best water insulation. Be careful not to get any glue on the cap threads!

I chose to cut the milk carton in half to make it easier to fill up. You may also cut a couple of holes in the bottom of the bottle/carton so you can hang it up upside down.

Now screw in the cap with the water tube and hang up your water reservoir. You should hang it at a height where the end of the tube dangles slightly over to plants pot.

Step 4: Awaken the Electronics

Now we'll create the brain of the project and make the system come alive!

Connect the components and micro controller as follows:

  • Analog Input 0 - Sensor Pin
  • Digital I/O 2 - Sensor +
    • This output pin is configured to power the sensor. That way we don't need a bredboard and can connect everything directly to the arduino!
  • GND - Sensor GND
  • Digital I/O 3 - Orange Servo Wire
  • 5V - Red Servo Wire
  • GND - Brown Servo Wire

Now upload the code. I've attached what I wrote, but feel free to make your own or modify what I've written!

Look at line 6 and 7 to calibrate the sensor for your own plant. Just change the values to the sensor values you prefer when the soil is dry and when it's wet, but not soaked.

Step 5: Preparing the Servo Solution

This is where the magic happens! And where this ible differs from the ones that use a water pump.

When you got your servo you probably also got a couple of plastic attachments. You can fasten whatever you prefer, I used the cross part.

Screw the attachment in place. Now fasten the servo to your window sill right above your plant. Make sure the servo has free unobstructed rotation!

I initially intended to just use hot glue, but I ended up using double sided tape. This makes it much easier to adjust where the servo sits later on.

Use a couple of cable ties to fasten the water tube to the servo attachment. You should check that the tube is open when the servo is in the "watering" position. And most important, make sure the tube gets bent and crimped when the servo is in the "dry" position.

Step 6: How Everything Works

So the way this works is that the arduino is monitoring the moisture levels in the soil. Every 5 minutes the microcontroller takes 10 readings 30 seconds apart. These readings are used to calculate an average value for the soil readings. This average is calculated to reduce any random artifact affecting the sensor.

The average readings are compared to the value you stored when you think the soil is dry. You can change this value on line 7. If the soil is dry the arduino will lower the servo. When this happens the water tube opens up and water starts flowing.

Now the code is constantly reading the soil moisture with only 20 ms delays. It checks if the soil has become moist. You can change this value on line 6. As soon as the soil is wet the arduino will turn the servo upwards. This crimps the water tube which in turn stops the water flow.

The program will then restart it's five minute sensor check and the plant wont be watered again until the soil has dried.

Step 7: Finished!

Now insert the soil moisture sensor, fill the water tank, power up the arduino and you're all set!

That's how you make automatic watering so your plants get a bit more and you use a bit less.

This solution is easily expandable to include several sensors and servo watering solutions. So get to making!

You may also like my tutorials on even more automation and making an LED panel for work or growth light!

Low Water Gardening Challenge 2016

Runner Up in the
Low Water Gardening Challenge 2016

Summer Fun Contest 2016

Participated in the
Summer Fun Contest 2016

Maker Olympics Contest 2016

Participated in the
Maker Olympics Contest 2016

1 Person Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

53 Discussions


Question 4 months ago on Step 6

It kind of
I don't manage to make it work after i calibrate the sensor values on dry and on wet.
More exact: i emerge the sensor into a glass filled with kitchen paper and water, just to make the paper wet, after 5 min the sensor reads aprox. 600, after that i remove the sensor from the glass, reset the arduino and wait another 5 min and the sensor riding is aprox. 900, then i adjust the values in the code (wetVal=650, dryVal=700) and save the new modifications.
1st variant:
After this calibration stage i reset the arduino, the sensor is removed from glass (is dry),the servo is at, let's say 12:00 a clock, wait 5 min, sensor val is reading after 5 min 914 and nothing happens with the servo, i insert the sensor into the glass and wait .... and nothingn no movement of the servo.
2nd variant:
The sensor is in the glass (is wet), i reset the arduino, after 5 min i have an value on the monitor (i. e. 485) and the servo is changing position from 12 a clock to 9 a clock, i remove the sensor from the glass and the servo is moving to 3 a clock, and from there nothing... no mater how much i wait servo doesn't move to simulate the stop watering process which i think is to fallow.
Can you advice what is to do?
I am doing something wrong?

Thank you

1 answer
Sverd Industriescristiaa17

Answer 2 months ago

Hi, what power supply are you using? It might be that the servo is not getting enough current.

Sverd IndustriesArxaR

Reply 5 months ago

Any resisitve soil sensor with analog output will work as you have to calibrate it for your plant anyways.
You could also change to capacitive soil sensor, which I have learned are more durable, with some slight modifications to the code.


Question 6 months ago

I am very fresh in this field and i have an favor to ask : can i have the code for 6 sensors and 6 servos?
Don't get me wrong, this is a very practical example that keeps my motivated to start learning coding especially that my wife is pushing me to water the tomato's in our conservatory.
I have bought a book to start (learning coding for dummies) but i need also a practical application, and i have found it but i want to compare the codes to make my own conclusion. I hope this makes sense.
Thank you in advance.


2 years ago

Gotta try this, I love the simple design. Nice work!


3 years ago

Very cool! Nice idea with the simple crimping. I've been contemplating making one of these for a while (on account of accidentally killing every plant i've ever owned).

Would be cool to include a UV lamp and some sort of "growth measure"... and program so that it "self learns" and adjusts light and moisture levels accordingly. Not sure how the growth measure would work... perhaps an infrared camera if you could tune it so the plant foliage glows a different colour from surroundings (should in theory be slightly warmer)... or would be really cool if you could maybe measure a current through the actual plant somehow? Bigger plant = bigger current? hmm *ponder*

3 replies

Reply 2 years ago

Growth monitor is a cool idea. What if you used weight to monitor growth? Have a scale under your plant. Take a weight measurement if your sensor senses the soil is dry and is about to water the plant. Record that measurement every time your plant senses dry soil and begins watering. That change in measurement should correspond to the increase in mass of your plant. Of course if you added or removed soil it would throw off your measurement but otherwise I think that might work.


Reply 2 years ago

yeah that could work! I guess would be tricky to compensate for the fluctuating weight of the water though, especially as the moisture sensors only check one bit of the soil... and are sensitive to "density" i.e. if i push the soil around my sensor i get different levels, or if i bump it so it's kinda loose in the soil... so the weight of the water wouldn't accurately correspond to the moisture level being read

Sverd IndustriesSiDawg

Reply 3 years ago

Cool idea! I think an IR camera should work. Would be really cool to add the self learning so it auto tunes to different plants as well.


2 years ago

Hey the code isnt working.....the serial monitor is i need to give any input.. pls do help


3 years ago

For a slightly lower-tech solution, you set up your plant so that it's weight opens or closes a valve. When the plant is dry (and therefor less heavy), the valve opens, and when the plant is wet (and therefor heavier), the valve closes.

1 reply

3 years ago

good idea for control water


3 years ago

like the idea but it means you have to keep the water above everything and that would look messy over time as much as pumps do make a noise they at least keep the water below out of site. Now I just have to work the idea to flick a switch to the pump when it needs watering and then to turn it off after a minute as a pump would move the water faster. So the test would be to see how long it takes for the pump to move the water to the plant to fill the self watering pot reserve and then turn it off once there is enough water hum will have to get my friend to look at this as he's the expert when it comes to this sort of thing :-)

Thanks for the idea I do like it just need to modify it to suit my planes :-) if this works out it could be used in the garden too :-)

It defiantly has a lot of possibilities for veggie boxes and garden beds :-)

Thanks :-)

2 replies
Sverd IndustriesDawsie

Reply 3 years ago

I like your thinking! Would love to see pictures if you make it for your garden beds or veggie boxes!

DawsieSverd Industries

Reply 3 years ago

Sure thing :-) it's in my list of things to do now :-) as I did like the original idea just need to collect all the pieces together plus make room for the new veggie boxes :-)


3 years ago

In my system, I am using the water directly from overhead tank.

Instead of servo motor, water flow is effectively controlling by a cheap 24VDC solenoid valve commonly using in RO water purifiers.