Project tutorial
Automatic Watering System

Automatic Watering System © GPL3+

Keep outdoor plants growing when it gets hot and dry without wasting water or your time.

  • 64 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)
File (generic)

Apps and online services

About this project

During the hottest months of the summer, plants can dry out, and leave a once colourful garden completely dead. Watering by hand uses up precious time in our busy schedules, which most of us cannot afford. Also, hand watering wastes water, a precious resource, especially during these months. Here, this system is designed to take the hassle out of watering, by watering only when the soil becomes dry, all without manual intervention.

How It Works

Soil moisture is read using an Arduino Uno, via a pair of carbon (graphite) electrodes inserted approximately 10 cm into the ground. The moisture level is read as a voltage, by passing a current through the rods and the soil. As the soil moisture decreases, the voltage read increases, activating a valve to water the area. On the contrary, as the soil becomes moist enough, the conductance increases, the voltage across the rods decreases, and the valve is turned off.

Prepare the Moisture Sensor

First, snap the arc gouging rod in half, then remove the copper jacket from the graphite core using a file, leaving 5 cm of copper at the top. Solder a piece of 20 gauge copper wire to the copper part, which will connect the sensing rod to the Arduino. Ensure the wire is long enough to go from the plant's location to the control hardware. Lastly, insert the rods into the ground beside plant to be watered, keeping the copper above the soil.

Setup the Arduino

The code for this project is provided below. Customize it for the number of rods and output valves needed. Auxiliary electronics will need to be connected as shown in the schematic, and component values shown are a general guideline and do not need to be exact. The threshold value in the code will need to be adjusted based on the soil characteristics in your area.

Next, Connect pins 4 and 8 to the gates of the two transistors. A transistor such as an IRF640, TIP120 or similar will work well to switch the solenoid valve. To protect the transistors, connect diodes in reverse polarity across the solenoids.

Powering the Project

A DC 12V mains isolating power supply, battery or solar panel can be used to run it. For safety reasons, non-isolating wall adapters must not be used as they will pose a shock hazard since live mains current can travel through the electronics and into the ground.

Putting It All Together

Install the Arduino and auxiliary electronics in a waterproof box and the solenoid valves in a separate box. Connect the hoses, power on the system and adjust the sensor rod depth for optimal results. Position the hose far enough away from the sensor as to ensure the plant is watered thoroughly before shutting off.

Note on using metal electrodes

Metal electrodes may be convenient, but they can cause problems and should be avoided. As a current is passed through the soil to sense moisture, the metal breaks down, corroding and leaching into the soil. The electrode's resistance will increase, giving inaccurate dry/wet readings and contaminating the soil with metal ions which can be detrimental to plant health. If the arc gouging rods are unavailable, try extracting the carbon rods from carbon-zinc batteries or a thick pencil lead.

Next Steps

This project can be integrated with with an ESP8266 unit to allow for remote control over the internet. As well, a custom 3D printed case can be used to better fit the hardware components more neatly and efficiently.

And there it is! Please leave your feedback and improvement suggestions in the comments below, I'd highly appreciate it!


Arduino code for this project
Works with any Arduino Uno, with auxiliary components as shown in the schematic.


Automatic Watering System
Complete circuit for this project
Watering system ozh4j8hiiy


Similar projects you might like

Automatic Watering System

Project tutorial by PRosenb

  • 104 respects

Automatic Plant Watering System with Arduino

Project tutorial by Team RobotGeek Projects Team

  • 103 respects

Home Plant Watering System

Project tutorial by Alexander

  • 77 respects

WaterPi: Houseplant Remote Watering and Monitoring System

Project tutorial by Demirhan Aydin

  • 171 respects

The hydroMazing Smart Garden System

Project tutorial by Cory Potter

  • 194 respects
Add projectSign up / Login