Smart irrigation system
↠This project is based on the AEIOU heuristic framework of Design Engineering
Approach.
↠Design for Performance, Safety and Reliability is ensured in terms of
segregation of the low voltage and the high voltage parts of the circuit.
↠Design for Manufacturability and Assembly is ensured in terms of compact
sensors that can be installed within the fields.
↠Design for Aesthetics and Ergonomics is achieved in terms of remote access
by farmers and seasonal and environmental based access to irrigation.
↠Design for cost and Environment is addressed by correct usage of water, that
has now become a prized Natural Resource.
↠The system can be interfaced via Bluetooth Module using MIT App.
Cost of the Project: ₹1593/-
List of Components Used In Smart Irrigation
System
Component Name Component Value Quantity
Arduino UNO 1
Bluetooth Module HC-05-09 1
Temperature and Humidity DHT-11 1
Sensor
Soil moisture sensor FC-28 1
Peristaltic pump AB11 4
LEDs Red, Green and Yellow 3
Miscellaneous
Adaptor 1 A, 6 V 1
Connecting Jumpers
Breadboard 1
1. Sensors
(a) Soil moisture sensor
The soil moisture sensor is used to measure the volumetric water content of soil.
It is used to monitor soil moisture content to control irrigation in greenhouses. A
moisture sensor is used to sense the level of moisture content present in
irrigation field. It has a level detection module in which we can set a reference
value.
(b) Temperature and Humidity Sensor
The temperature and humidity sensor is necessary to reduce the watering
frequency. That is when the weather gets cooler, less water is needed whereas
vice versa in the other case.
2. Relay Module
The relay module is an electrically operated switch that allows you to turn ON or
OFF a circuit using voltage and/or current much higher than a Microcontroller
could handle. There is no connection between the low voltage circuit operated by
the Microcontroller and the high power circuit. The relay protects each circuit
from the other. Each channel in the module has three connections named NC,
COM, and NO. Depending on the input signal trigger mode, the jumper cap can
be placed at high level effective mode which ‘closes’ the normally open (NO)
switch at high level input and at low level effective mode which operates the
same but at low level input.
3. Peristaltic Pump:A peristaltic pump is a type of positive displacement
pump used for pumping a variety of fluids. The fluid is contained within a flexible
tube fitted inside a circular pump casing. It is reputed to pump water from a depth
of about 31 feet.
Block Diagram
The Model works as follows:
The results of the moisture, temperature and threshold level can be calculated
through the sensors used in the project. Analysis of soil parameters can be done
and the needed nutrients can be calculated for the soil. The need of water supply
of the soil can be calculated and hence appropriate irrigation is done through
smart techniques.
Featured experimental result and analysis:
System configuration:
↠This module is used to configure all hardware devices. Soil moisture sensor,
Temperature and Humidity sensor, Pump all are connected to major component
arduino with Bluetooth connectivity.
Soil moisture and temperature sensing:
↠In this module we analyze the moisture content in the soil and it’s temperature.
According to the sensor values further decision are taken.
Send the results on Arduino serial monitor:
Once the values of temperature and moisture are generated on serial monitor.
The threshold can also be notified on serial monitor itself. And if result of
Moisture, Temperature and Humidity goes below the threshold value the pump
will automatically turn ON and if the level of Moisture, Temperature and Humidity
increase upto threshold level of field then pump will automatically turn OFF.
Schematic
In schematic, Red Wire- Vcc and Black Wire- Ground.
External supply is given to Arduino through 6V-1A Adaptor.
In place of motor, connect 6V peristaltic pump.
Actual Photograph
Temperature, Humidity and Moisture Requirements of Major crops are listed:
Sr. No. Crop Name Temperature Moisture (%) Humidity(%)
1 Rice 21-37 20-25 60-80
2 Wheat 10-15 14-20 60-70
3 Bajra 20-38 20-25 55-70
A theoretic study of the parameters considered in our project is summarized by
study of different literature materials and papers published.
References for the same is obtained from:
● Link 1
● Link 2
● Link 3
Construction & Testing
Fig.1: Circuit interface with Arduino with sensors for Smart Irrigation System
Fig. 2: Serial Monitor for Smart Irrigation System
Fig. 3: Android
Application for Smart Irrigation System
Fig. 4:
Application Icon
Fig. 5: Android Application with the result
The readings are
DHT11—-OK
HUMIDITY: 13.0%
TEMPERATURE: 31.0%
MOISTURE: 52%
MOISTURE IS HIGH
Flowchart
Flowchart for Smart Irrigation System
App Blocks: (MIT App Inventor)
Software Used
Arduino IDE
Code Skeleton
#define Temperature and Humidity sensor A0 // Analog pin A0 of Arduino Uno
int sensor_pin = A0;
int output_value ;
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int pos = A1; // Define motor position
————————————————————————————————————
——————————
#define Sensor_PIN No.
void setup()
{
(ledPin1, OUTPUT); (ledPin2, OUTPUT); (ledPin3, OUTPUT); // Define the
pinModes
pinMode(motorPin, OUTPUT); // set A1 to an output so we can use it to turn on
the transistor
[Link](9600); // Baud Rate
[Link](“Reading From the Sensor …”);
————————————————————————————————————
—————————-
void loop()
// READ DATA
[Link](“Define Sensor, \t”);
int chk = Read the Output of Sensor;
switch (chk)
case SensorNameLIB_OK:
[Link](“OK,\t”);
break;
case SensorNameLIB_ERROR_CHECKSUM:
[Link](“Checksum error,\t”);
break;
case SensorNameLIB_ERROR_TIMEOUT:
[Link](“Time out error,\t”);
break;
default:
[Link](“Unknown error,\t”);
break;
————————————————————————————————————
——————————
// DISPLAY DATA
[Link](“Humidity:”);
[Link]([Link], 1);
[Link](“%”);
[Link](“,\t”);
[Link](“Temperature:\t”);
[Link]([Link], 1);
[Link](“`C”);
value= analogRead(sensor_pin);
value = map(value,550,0,0,100);
[Link](“Mositure : “);
[Link](output_value);
[Link](“%”);
if (Humidity value>10)
Sensorinput gets HIGH; //green LED ON
else {
Sensorinput gets LOW; //Digital Output
if (Sensor value>31)
{
Sensorinput gets HIGH; // Digital output
[Link](“Tempearture is HIGH”); //yellow LED ON
else {
Sensorinput gets Low;
if (value>50)
Sensorinput gets HIGH;
[Link](“Moisture is high”);// RED
else {
Sensorinput gets LOW;
}
if (output_value<10) { [Link](“output value is low”); Sensorinput gets HIGH;
// Digital output delay(x); Sensorinput gets LOW; // Digital output delay(x); } else {
Sensorinput gets HIGH; //Digital output } if([Link]()>0)
char data = [Link]();
if (data == ‘a’)
Motorinp pin gets HIGH; //Digital output
else if(data == ‘b’)
Motorinp pin gets LOW; //Digital output
}
}
delay(x);
//
// END OF FILE
//———————————————————————————————————
——————————