How to make an irrigation monitoring system with Raspberry Pi board

How to make an irrigation monitoring system with Raspberry Pi board

Hello and welcome back. In this project, we will learn how to make an irrigation monitoring system with a Raspberry Pi board. For that, I mainly used a soil moisture sensor. Also, we can get the soil moisture values through this sensor and we can make a decision using these values. In this project, you can control a water pump using these values. For that, I added a relay module. (Remember to use a relay module that matches the amperage of the motor you are using) In this project, I used a 10A relay module and a small water pump for the example.

Also, we can see different types of soil moisture sensors in the market, but all these sensors work in the same way. So, I decided to use the following sensor. If you want to learn more about this sensor in deeply, please use this link. If you want to make a simple and low-cost irrigation monitoring system, this is the best solution for you.

  • If you want to do this project with the ESP8266 board – Click me

OK, let’s do this project step by step. The required components are given below.

Disclosure: These Amazon links are Affiliate links. As an Amazon Associate, I earn from qualifying purchases.

Step 1

Firstly, identify these components.

Step 2

Secondly, place the GPIO extension board on the breadboard. And then, connect the GPIO ribbon cable to it. (if you are using a GPIO extension board and ribbon cable)

Step 3

Thirdly, connect the soil moisture sensor and push-button to the extension board. For that, use the circuit diagram below.

How to make an irrigation monitoring system with Raspberry Pi board

Step 4

And then, connect the LCD screen and relay module to the extension board. Please provide an external power supply to the relay module.

Step 5

Now, connect the water pump to the relay module and place the sensor probe on the soil.

Step 6

Next, connect the ribbon cable, mouse, keyboard, monitor, and SD card(OS installed) to the raspberry pi board. And then, provide a power supply to the Raspberry pi board.

Step 7

Next, enable I2C communication. For that, follow the instructions below.

  • If you want to see the I2C address, run the following command on the terminal.
  • i2cdetect -y 1

Step 8

OK, now let’s create the python script for this project. It’s as follows. You can copy and paste this script on the Thonny IDE.

  • Full details of this project — Download
  • The I2C library is included in this folder.
# Include the library files
import I2C_LCD_driver
from time import sleep
from smbus import SMBus
import RPi.GPIO as GPIO

bus = SMBus(1)

button = 17
relay = 27
motorstatus = True


# Set the button pin as Input pin

#Set the relay pin as output pin

GPIO.output(relay,GPIO.HIGH) # Relay turns OFF

# Create a object for the LCD
lcd = I2C_LCD_driver.lcd()

# Starting text
lcd.lcd_display_string("System Loading",1,1)
for a in range (0,16):

lcd.lcd_display_string("Motor   :OFF" ,2,0)
#Get the analog input values
def moistureValue():
    bus.write_byte(0x4b,0x84)# A0
    value = bus.read_byte(0x4b)
    value = (value/255) * 100
    value = (value - 100) * -1
    value = int(value)
    lcd.lcd_display_string("Moisture:" + str(value) + "%  " ,1,0)
while True:
    if GPIO.input(button) == 0: # Get the button value
        if motorstatus:
            GPIO.output(relay,GPIO.LOW) # Relay turns ON
            lcd.lcd_display_string("Motor   :ON " ,2,0)
            motorstatus = False
        elif motorstatus == False:
            GPIO.output(relay,GPIO.HIGH) # Relay turns OFF
            lcd.lcd_display_string("Motor   :OFF" ,2,0)
            motorstatus = True

Step 9

Now, save this script on your computer and click the run button.

Now, you can test this project. The full video guide is below. So, see you in the next project or tutorial.

How to make an irrigation monitoring system with Raspberry Pi board

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *