Use of Microcontrollers to Operate and Monitor Remote Irrigation System ​

by alroaithih in Circuits > Arduino

393 Views, 0 Favorites, 0 Comments

Use of Microcontrollers to Operate and Monitor Remote Irrigation System ​

thumbnail.jpg

farmers and greenhouse operators for a low-cost automatic irrigation system.

In this project, we integrate an electronic soil moisture sensor with a microcontroller to automatically irrigate plants when the soil is too dry without human intervention, and to remotely operate and monitor soil conditions over the world wide web by sending push notifications to a mobile phone via SMS or Twitter; or other device capable of displaying a web browser via html and JavaScript. The system consists of a soil moisture sensor connected to an ESP8266 microcontroller capable of hosting a web server and responding to http requests. The microcontroller receives analog signals from the moisture sensor and activates a pump through a transistor circuit. A study correlating moisture level by water weight percent to conductivity probe output is complete. It was found that the moisture sensor saturates at a relatively low moisture level, which might limit the applicability of this sensor to certain plant and soil-type combinations. We have not yet succeeded in implementing push notifications to a mobile device via Node Red, though in theory this should be achievable.

Checking the Moisture Level With the Conductivity Probe

6EFE5240-7D3E-4595-9C06-1C9691FD6B10.jpeg

I measured the conductivity in 9 pots

with different percentage content of water in order to calibrate the conductivity probe to moisture level. This allows the user to select a moisture level consistent with the needs of her particular plant species and soil combination

Connecting the Water Pump and LCD Screen to the Arduino

02CC73A1-B9CA-4DC7-9887-2AAD1DC24DC3.jpeg
husssaaam.jpeg
0EF28A9D-80E6-4100-9921-BC856A9C2782.jpeg
Screen Shot 2019-05-01 at 2.52.31 PM.png
Screen Shot 2019-05-01 at 2.52.07 PM.png

I connected the water Pump to activate for 0.5 seconds in two-second intervals until desired moisture level is reached. LCD outputs set-point level and measured conductivity level (expressed as a percent of the probe saturation level)

Arduino codes

int setpoint = 0;

int moisture = 0;

int pump = 3;

pinMode(A0, INPUT); // Setting pot

pinMode(A1, INPUT); // Conductivity probe

pinMode(pump, OUTPUT); // Pump

lcd.init(); //initialize the lcd

lcd.backlight(); //open the backlight

lcd.setCursor ( 0, 0 ); // go to the top left corner

lcd.print("Setpoint: "); // write this string on the top row

lcd.setCursor ( 0, 1 ); // go to the 2nd row

lcd.print("Moisture:"); // pad string with spaces for centering

lcd.setCursor ( 0, 2 ); // go to the third row

lcd.print(" "); // pad with spaces for centering

lcd.setCursor ( 0, 3 ); // go to the fourth row

lcd.print(" D&E, Hussam ");

Printing the Design of the Box

879E36A3-FD81-4B0E-9F09-62EF1D98C8C8.jpeg
05101F14-7699-4C58-99C0-6756F9BF1F86.jpeg
B536E431-7DFF-43C0-951A-CA7A48735B6C.jpeg

Basically I made a simple box for the Automatic irrigation system that has the screen place in the front and two holes for "Setpoint" and "Power" switch. Also I designed another hole on the side for the power supplies

Final Step Putting All Parts Together

42EA6448-0603-479B-AF88-5C51FBF1EE97.jpeg
9DF488C0-6B0E-466B-BADE-2DF812ECB48B.jpeg
Screen Shot 2019-05-01 at 1.25.58 PM.png
0EB0B761-AE95-4B05-9162-8088D53C29B7.jpeg
thumbnail.jpg

The parts price

  • Arduino $20
  • Pump $6
  • Conductivity probe $8
  • Jumper wires $6
  • Breadboard $8
  • Power Supply $12
  • LCD $10
  • Total $70