#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define SOIL_PIN 34
#define LED_PIN 2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
Wire.begin(23, 22);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Soil Sensor");
lcd.setCursor(0, 1);
lcd.print("Initializing");
delay(2000);
lcd.clear();
Serial.println("Soil Moisture Sensor Started");
}
void loop() {
int soilValue = analogRead(SOIL_PIN);
Serial.print("Soil Moisture Value: ");
Serial.println(soilValue);
lcd.setCursor(0, 0);
lcd.print("Moisture: ");
lcd.print(soilValue);
lcd.print(" ");
lcd.setCursor(0, 1);
if (soilValue < 1500) {
lcd.print("Status: WET ");
digitalWrite(LED_PIN, LOW);
Serial.println("Status: Soil is WET");
} else {
lcd.print("Status: DRY ");
digitalWrite(LED_PIN, HIGH);
Serial.println("Status: Soil is DRY");
}
Serial.println("----------------------");
delay(1000);
}