Arduino Automatic Watering System

About: Maker, hobbyist.

First of hopefully many DIY arduino projects. I will show you how to build an automatic watering system. It will water plants for you when you not there. Although project is based on Arduino Nano there is no problem to build it with Arduino UNO.

Step 1: Watch the Video

Watch whole video. It will take you through nearly the whole project. You will find additional resources in the following steps.

Step 2: Complete Parts

These are necessary parts and sample links where to get them.

Parts List:

Parts List:

Arduino Nano v3.0

SoilWatch 10 - soil moisture sensor

1602 LCD with I2C interface

12V Peristaltic pump

1/8inch or 3mm internal diameter PVC tubing

1/8inch or 3mm connector

IRLZ44N Transistor

breadboard - optional

7x9cm perfboard

2x100nF ceramic capacitor

1x100uF electrolytic capacitor

3x100k ohm resistor

DC Socket 5.5mm/2.1mm

2x tact switches

female/female jump wires

straight pin headers

some wires

Terminal Block Screw Connector 2-way

Terminal Block Screw Connector 3-way

9V power supply - at least 1A

box 100x80x40mm cotton buds/swabs - check locally first. this may work but I can't guarantee

Step 3: Assemble

See attached schematics and pictures of assembled boards. If you are not comfortable with soldering build just breadboard version of the project.

Step 4: Upload Code

Upload sketch plant_saver.ino to your Arduino board. Don't forget to install a LiquidCrystal_I2C library.

Schematics available in Fritzing format but breadboard part is not done.

SoilWatch 10 part for Fritzing.

Step 5: Enjoy Your Automatic Watering System

Play, modify and adapt to your needs. You can tweak Arduino sketch to suit your plant, soil type and pot size. Hope you enjoyed the project.

Check out my Youtube channel:



    • Organization Contest

      Organization Contest
    • Build a Tool Contest

      Build a Tool Contest
    • Remix Contest

      Remix Contest

    8 Discussions


    Question 9 days ago

    I would like to know how to calibrate the sensor for different types of soil?

    1 answer

    Question 12 months ago


    Google Translate!

    good work! I would like to extend the sketch with another sensor and another pump.

    I managed to the extent that the 2nd sensor works and is also adjustable. runtime pump adjustable via 2 more buttons.

    I can not get it that I can assign a pump to a sensor. currently it is so that both pumps start, no matter which sensor I pull out of the earth.Bin beginners in things arduino. would be glad if you can help me on.

    1 answer

    Answer 11 months ago

    Show what you have done so far and we will sort this out. Paste your sketch here.


    Reply 1 year ago

    If you use Arduino Uno then just connect to 9-12V to jack. Arduino has an onboard 5V regulator so it will make required 5V. For Arduino Nano connect 9-12V to VIN and it has 5V onboard regulator as well.


    1 year ago

    Hi, cool project. I've got the Soilwatch Sensors and will start now with my project. could you please update the schematic file in the fritzing format?

    Regards, Marcel

    1 reply

    Reply 1 year ago

    Thanks :) Just uploaded schematics in fritzing format. Breadboard part isn't done just the schematics.

    regards, Piotr