#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define soilMoisturePin 34
#define relay 15
void setup() {
pinMode(soilMoisturePin, INPUT);
pinMode(relay, OUTPUT);
Serial.begin(115200);
Wire.begin(21, 22);
lcd.init();
lcd.backlight();
while (!Serial) {
delay(100);
}
lcd.setCursor(2,1);
lcd.print("AUTOMATED URBAN");
lcd.setCursor(0,2);
lcd.print("ALGRICULTURE SYSTEM");
delay(500);
lcd.clear();
}
void loop() {
int val = analogRead(soilMoisturePin);
float soil_percentage = (val==0)?0.00:(val+1)*0.024414;
Serial.println(val);
Serial.println(soil_percentage);
lcd.setCursor(0,0);
lcd.print("Soil Moist: " + String(soil_percentage));
lcd.setCursor(18,0);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Water Sprinkle: ");
String waterSprinkle = "\0";
if(soil_percentage < 30)
{
waterSprinkle = "1";
digitalWrite(relay, HIGH);
delay(100);
}
else
{
waterSprinkle = "0";
digitalWrite(relay, LOW);
delay(100);
}
lcd.print(waterSprinkle);
}