#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x26, 16, 2); int sensorPin = A0; int redLED = 8; int yellowLED = 9; int greenLED = 10; void setup() { Serial.begin(115200); lcd.init(); lcd.backlight(); pinMode(redLED, OUTPUT); pinMode(yellowLED, OUTPUT); pinMode(greenLED, OUTPUT); lcd.setCursor(0, 0); lcd.print("MOISTURE"); delay(1500); lcd.clear(); } void loop() { int level = analogRead(sensorPin); lcd.setCursor(0, 0); lcd.print("MOISTURE: "); lcd.print(level); lcd.print(" "); Serial.print("Analog Value: "); Serial.println(level); lcd.setCursor(0, 1); if (level > 500) { digitalWrite(redLED, LOW); digitalWrite(yellowLED, LOW); digitalWrite(greenLED, HIGH); lcd.print("Status : WET "); Serial.println("Condition: WET"); } else if (level > 200 && level <= 500) { // Moist digitalWrite(redLED, LOW); digitalWrite(yellowLED, HIGH); digitalWrite(greenLED, LOW); lcd.print("Status: MOIST "); Serial.println("Condition: MOIST"); } else { // DRY digitalWrite(redLED, HIGH); digitalWrite(yellowLED, LOW); digitalWrite(greenLED, LOW); lcd.print("Status: DRY "); Serial.println("Condition: DRY"); } delay(500); lcd.clear(); }