No Pump Automatic Watering!

69,182

535

52

Posted

Introduction: No Pump Automatic Watering!

Low Water Gardening Challenge 2016

Runner Up in the
Low Water Gardening Challenge 2016

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!

Step 1: Parts and Tools

You are going to need the following:

Parts

  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

Tools

  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!

Share

Recommendations

  • Science of Cooking

    Science of Cooking
  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Microcontroller Contest

    Microcontroller Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

49 Comments

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

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*

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.

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

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.

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

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.

I like your thinking, however that sounds a lot more complicated to me!

good idea for control water