I love this simple and clever design. It basically uses a microcontroller-powered servo motor to pinch a watering hose on/off on a gravity-fed plant watering system. No pump required. To control the system, the Norwegian maker, Eirik, used a SparkFun Arduino-compatible RedBoard. To tell when the plants are thirsty, he uses a $5 SparkFun Moisture Sensor.
To create the servo-controlled crimp valve, Eirik used the nylon servo horn that comes with most servomotors. He attached the hose using zip-ties.
On the Instructable, he describes how the system 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 of the cose. 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 its five minute sensor check and the plant wont be watered again until the soil is dry.
If you have a window garden and are going to be away from home, or you chronically forget to water your plants [raises hand], this might be a relatively easy high-tech solution. One drawback to the design is that the water must be gravity fed, so the reservoir must be stored above the plants.
You can see the full Instructable and download the Arduino code here.