Arduino Irrigation and Plant Watering using Soil Moisture Sensor

This project is about a moisture-sensing automatic plant watering system using Arduino UNO. The system reads the moisture content of the soil using soil moisture sensor and switches ON the motor when the moisture is below the set limit. When the moisture level rises above the set point, the system switches off the pump.  The status of the tank, motor and the moisture level will be displayed on a 16×2 LCD display.


So let’s come to our project!

Objectives of the Project

Let’s begin to build our project –  Soil Moisture Based Automatic Irrigation System.

The soil moisture sensor module used here have two output pins ( Digital output and Analog output ). The output from the probe of the moisture sensor is compared with a reference value using a lm393 comparator. The reference value can be changed by turning the potentiometer in the module. The digital pin gives an active low output when the soil is wet. Here we are using the analog output from the module by connecting it to one of the analog pins of Arduino. While using the analog output the wet detection value can be set/adjusted within the program itself.

As shown in the circuit diagram, a float switch is connected to one of the analog pins of Arduino and a 1K Ohm resistor is used to pulled up the line. Analog pins of Arduino can also be used as digital inputs. The status of the tank is identified by checking the output of the float switch. Arduino reads the voltage dropped across the pull up resistor for sensing the level of water in the tank.  Two LEDs are connected to the 2nd and 3rd pin of Arduino to show the moisture status and tank status respectively. And the 4th pin links to the base of a BC547 transistor which in turn drives the 12 V DC motor.

A 16×2 LCD is connected with Arduino in 4-bit mode. JHD162A is the LCD module used here. JHD162A is a 16×2 LCD module based on the HD44780 driver from Hitachi. The JHD162A has 16 pins and can be operated in 4-bit mode (using only 4 data lines) or 8-bit mode (using all 8 data lines). Here we are using the LCD module in 4-bit mode. Control pin RS, RW and En are directly connected to arduino pin 13, GND and 12. And data pin D4-D7 is connected to 11, 10, 9 and 8 of arduino.


Read More: Arduino Irrigation and Plant Watering using Soil Moisture Sensor

About The Author

Ibrar Ayyub

I am an experienced technical writer with a Master's degree in computer science from BZU Multan University. I have written for various industries, mainly home automation, and engineering. I have a clear and simple writing style and am skilled in using infographics and diagrams. I am a great researcher and is able to present information in a well-organized and logical manner.

Scroll to Top