#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int dirPin = 3;
const int stepPin = 2;
const int rainPin = A0;
void setup() {
pinMode(dirPin, OUTPUT);
pinMode(stepPin, OUTPUT);
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
int rainStatus = analogRead(rainPin);
Serial.print("Rain Intensity: ");
Serial.println(rainStatus);
if (rainStatus > 500 ) {
lcd.backlight();
motor_start (200);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Water");
lcd.setCursor(0,1);
lcd.print("Treatment On");
}
else if (rainStatus>10) {
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Its Raining");
delay(1000);
}
else {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("No Rain");
delay(1000);
lcd.noBacklight();
}
}
void motor_start (int steps)
{
digitalWrite(dirPin, LOW);
for(int x= 0; x < steps; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(100);
}