Automatic Plant Watering and Soil Moisture Sensing




There are many such instructable created. But the problem is with getting the materials. I am creating this so that people get to know what equipment to buy in India and how to connect them and make them work.

Problem Statement -

1. Can we automatically water the plants when i am going on vacation or do i have to bother my neighbors? Sometimes the neighbors do too much of watering and the plants end up dying anyway. There are timer based devices available in India which water the soil on set interval. They do not sense the soil moisture and the ambient temperature to know if the soil actually needs watering or not.

2. Can we know if the soil actually needs to be watered? Irregular watering leads to mineral loss in the soil and might end up rotting the plants.

3. Can we manually water the soil from remote location?

Solution -

The answer is "Yes, we can" to all the above problem. The solution provided is simple and economical. It requires you to know little bit of electrical and electronics but i feel it is similar to having so much of electrical knowledge so that you can change a bulb. Let me know if you feel any step is complicated. I will try to add more information so that it becomes easy.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials Needed

1. Soil moisture sensor - (You can search for similar item on ebay)

2. Small pump - Toy pump working on 5-6V is enough. Few options available in India are - this should not be submerged in water) should be submerged in water)

3. Arduino -

4. Pump Controller - (You can make your own circuit with little knowledge of soldering or you can go to shops who sell these electronic equipment and they can point you to people who can help you to solder)

a) Transistor - 2N2222A

b) Resistor - 1K ohm

5. Drip Irrigation Kit - (You can choose depending on how many plants you want to water).

6. Connecting Pipe (i used 0.4" pipe) to connect the pump and the drip irrigation main line.

Step 2: Connect the Soil Sensor to the Arduino

I have color coded the wires for easy understanding of how to connect the soil sensor with the arduino.

a. Red wire - Connect the Vcc pin on soil sensor to the +5V pin on arduino

b. Green wire - Connect the Gnd pin on soil sensor to the Gnd pin on arduino

c. Orange wire - Connect the A0 (Analog) pin on soil sensor to the A0 (Analog) pin on arduino

Step 3: Connect the Pump Controller Board to the Arduino

The Pump Controller Board comprises of -

1. 1k ohm resistor

2. 2N2222A transistor

3. 5V Pump Motor

Step 4: The Code to Be Uploaded to Arduino

Copy the code from Code.txt to the .ino file on arduino and upload the code to the arduino.

Step 5: Setup the Drip Irrigation Kit

There is enough information on the web on how to setup the drip irrigation kit. I am not getting into details of this.

The point to note here is that there are 6 analog pins on arduino that can be used to sense soil moisture. At the very minimum, one can use the same setup to sense 6 plants. But if designed in a better way, one can use the same setup to sense as many plants in multiple of 6.

I am not going into details of this as this is not the objective of this instructable. I will try to publish another instructable for a better design of the drip irrigation kit so that maximum number of the plant soil moisture can be sensed.

Step 6: Connect the Pump to the Drip Main Line

Step 7: Demonstration of the Full Setup

Step 8: Next Steps

  1. Create an Internet of Plants - Create a IOT framework which will help connect plants of similar variety across the world to get connected.
  2. Connect the arduino wirelessly with the raspberry pi home server so that the plants can be monitored remotely.
  3. Remote Monitoring and Watering of plants - Use GSM based add on board for remote operation
  4. Power Supply - Use solar power as the power need is low. Currently i am using a power bank to power the arduino and the pump motor.
  5. Weatherproof case - Since the device will be used outside, we need to have a weatherproof case to house the electronics.
  6. Add more sensors - Temperature sensor, Humidity sensor.

Do let me know if you think anything else needs to be done as part of this project.

2 People Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

111 Discussions

Dharun s

6 months ago

Sir ! will u pls send me the full code and pin diagram of this project asap ..thank you sir
Mail me at


7 months ago

Dear Sir ,I am doing same project,I want to maintain unique soil moisture sensor for every pot ,Suppose 2 plant pots , total 2 soil moisture sensors,If one pot is dry automatically should turn on motor and release water,If other pot is wet motor should not be on,Can you please help me how to handle this?


2 years ago

Hi! Can You please explain how the Motor will be used to Pull the Water. The Photo of Motor with Irrigation kit will be more helpful. How the Motor output to connect to pipe for pulling the water.

1 reply

Reply 1 year ago

The pump has a motor within it which creates a vacuum when turned ON. The vaccum pulls the water through the pumps inlet pipe & pushes out the water through the outlet pipe.


3 years ago

Sir, I am doing a project on automatic soil moisture sensing and irrigating for a single pot. Can you please send me complete circuit and block diagram and also specifications of pump ,relay and Arduino programming code. Can we use submersible pump for this project?.

please mail to this as early as possible......

1 reply

Reply 1 year ago

You can use a submersible pump as long as it doesn't exceed the voltage & current specifications of the power supply.


3 years ago

when i connect the negative terminal of battery to the ground my transistor starts heating intensly..... where is the mistake plz help

2 replies

Reply 3 years ago

What mpotor are you using? could it be that it just draws too much current for the transistor?


3 years ago

Ok, to control six individual plants, I should use six pumps connected to six different out ports, am i right?
Also, what platform do you think is better for this, arduino, raspberry...?

1 reply

Reply 1 year ago

1. You can do this by having separate pumps for each pot OR one pump with separate solenoid valves for each pot. You can even use a multiport valve with a single pump. Chose the best setup based on cost & availability of the parts.

2. Arduino. Cheaper & has sufficient I/O ports.


3 years ago

Do you have the specifications for the fly back diode needed? Thank you!

1 reply

1 year ago

The idea is to add the solenoid valve where you have connected the pump to the Arduino in your circuit diagram. Instead of the pump being triggered by the moisture sensors, the input from the sensor would control the solenoid valve. The valve will be connected to the tap. You can leave the tap on since the valve would regulate the flow of water from the pipe
I still need to implement it. Not very good with electronics. Am just learning :)

1 reply

Either way will do. As long as you get the time duration for how long the pump should be ON right so that you prevent underwatering or overwatering the plants.


4 years ago on Introduction

after seeing ur video...u have soil sensor PLACED IN ONLY ONE PLANT den how it will detect the soil moisture level in other plants...

1 reply

4 years ago

i got some questions did u programed it using arduino software.
2.can u specfiy the "module/usb to uart" used to connect microcotroller to pc with images and website to buy it in India"
thank u....

1 reply

Reply 1 year ago

You can use an Arduino Nano or Pro Mini along with a USB Cable.

The Arduino IDE is good for beginners.