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:
- Soil moisture sensor
- Any tiny servo will do. Like those small 9G servos you can buy for a dollar!
- Water tube
- I'll show you how to make one if you don't already have one laying around
- Cable ties
- Power supply
- For your arduino
- Water reservoir
- I used a milk carton, an empty bottle works just as well
- Bredboard wires
- Hot glue gun
- X-acto knife
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!