Arduino Based Wireless Intelligent Water Irrigation System
This system monitors the weather and makes decisions about when to water.
Components and supplies
1
Soil Moisture Sensor
1
4-bit Wireless Relay Module
1
12V power supply (generic)
1
Arduino Mega 2560
1
Rain Drop sensor
1
Solenoid Valve
1
Jumper wires (generic)
Apps and platforms
1
Arduino IDE
Project description
Code
Code
c_cpp
1const int SMS1P = 48; 2const int SMS1N = 49; 3const int SMS2P = 46; 4const int SMS2N = 47; 5const int RDSP = 50; 6const int RDSN = 51; 7const int SMS1O = A11; 8const int SMS2O = A12; 9const int RDSO = A13; 10const int Rline = 24; 11const int Yline = 26; 12const int Bline = 28; 13const int Solenoid = 30; 14int RDS = 0; 15int SMS1 = 0; 16int SMS2 = 0; 17void rain_drop_sensor_ON(); 18void Soil_Moisture_Sensor1_ON(); 19void Soil_Moisture_Sensor2_ON(); 20void rain_drop_sensor_OFF(); 21void Soil_Moisture_Sensor1_OFF(); 22void Soil_Moisture_Sensor2_OFF(); 23void Solenoid_ON(); 24void Solenoid_OFF(); 25void Three_Phase_Motor_ON(); 26void Three_Phase_Motor_OFF(); 27void read_Sensors_value(); 28void setup() { 29 pinMode(SMS1P, OUTPUT); 30 pinMode(SMS2P, OUTPUT); 31 pinMode(SMS1N, OUTPUT); 32 pinMode(SMS2N, OUTPUT); 33 pinMode(RDSP, OUTPUT); 34 pinMode(RDSN, OUTPUT); 35 pinMode(SMS1O, INPUT); 36 pinMode(SMS2O, INPUT); 37 pinMode(RDSO, INPUT); 38 pinMode(Rline, OUTPUT); 39 pinMode(Yline, OUTPUT); 40 pinMode(Bline, OUTPUT); 41 pinMode(Solenoid, OUTPUT); 42 Three_Phase_Motor_OFF(); 43 Solenoid_OFF(); 44 Serial.begin(9600); 45} 46void loop() { 47 rain_drop_sensor_ON(); 48 Soil_Moisture_Sensor1_ON(); 49 Soil_Moisture_Sensor2_ON(); 50 read_Sensors_value(); 51 RDS = analogRead(RDSO); 52 SMS1 = analogRead(SMS1O); 53 SMS2 = analogRead(SMS2O); 54 delay(10); 55 if (SMS1 < 100 && SMS2 < 100 && RDS > 200) 56 { 57 Three_Phase_Motor_ON(); 58 Solenoid_ON(); 59 } 60 else if (SMS1 < 100 && SMS2 < 100 && RDS < 200) 61 { 62 Three_Phase_Motor_OFF(); 63 Solenoid_OFF(); 64 } 65 else if (SMS1 < 100 && SMS2 > 100 && RDS > 200) 66 { 67 Three_Phase_Motor_ON(); 68 Solenoid_OFF(); 69 } 70 else if (SMS1 < 100 && SMS2 > 100 && RDS < 200) 71 { 72 Three_Phase_Motor_ON(); 73 Solenoid_OFF(); 74 } 75 else if (SMS1 > 100 && SMS2 < 100 && RDS > 200) 76 { 77 Three_Phase_Motor_OFF(); 78 Solenoid_ON(); 79 } 80 else if (SMS1 > 100 && SMS2 < 100 && RDS < 200) 81 { 82 Three_Phase_Motor_OFF(); 83 Solenoid_OFF(); 84 } 85 else if (SMS1 > 100 && SMS2 > 100 && RDS > 200) 86 { 87 Three_Phase_Motor_OFF(); 88 Solenoid_OFF(); 89 } 90 else if (SMS1 > 100 && SMS2 > 100 && RDS < 200) 91 { 92 Three_Phase_Motor_OFF(); 93 Solenoid_OFF(); 94 } 95 else 96 { 97 Three_Phase_Motor_OFF(); 98 Solenoid_OFF(); 99 } 100} 101void rain_drop_sensor_ON() 102{ 103 digitalWrite(RDSP, HIGH); 104 digitalWrite(RDSN, LOW); 105} 106void Soil_Moisture_Sensor1_ON() 107{ 108 digitalWrite(SMS1P, HIGH); 109 digitalWrite(SMS1N, LOW); 110} 111void Soil_Moisture_Sensor2_ON() 112{ 113 digitalWrite(SMS2P, HIGH); 114 digitalWrite(SMS2N, LOW); 115} 116void rain_drop_sensor_OFF() 117{ 118 digitalWrite(RDSP, LOW); 119 digitalWrite(RDSN, LOW); 120} 121void Soil_Moisture_Sensor1_OFF() 122{ 123 digitalWrite(SMS1P, LOW); 124 digitalWrite(SMS1N, LOW); 125} 126void Soil_Moisture_Sensor2_OFF() 127{ 128 digitalWrite(SMS2P, LOW); 129 digitalWrite(SMS2N, LOW); 130} 131void Solenoid_ON() 132{ 133 digitalWrite(Solenoid, LOW); 134} 135void Solenoid_OFF() 136{ 137 digitalWrite(Solenoid, HIGH); 138} 139void Three_Phase_Motor_ON() 140{ 141 digitalWrite(Rline, LOW); 142 digitalWrite(Yline, LOW); 143 digitalWrite(Bline, LOW); 144} 145void Three_Phase_Motor_OFF() 146{ 147 digitalWrite(Rline, HIGH); 148 digitalWrite(Yline, HIGH); 149 digitalWrite(Bline, HIGH); 150} 151void read_Sensors_value() 152{ 153 SMS1 = analogRead(SMS1O); 154 SMS2 = analogRead(SMS2O); 155 RDS = analogRead(RDSO); 156 Serial.println(SMS2); 157 Serial.println(SMS1); 158 Serial.println(RDS); 159 delay(2000); 160} 161 162
Comments
Only logged in users can leave comments