#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define TRIGGER_PIN 7
#define ECHO_PIN 8
LiquidCrystal_I2C lcd(0x27, 16, 2); // Set the LCD I2C address to 0x27
float previousDistance = 0;
void setup() {
Serial.begin(9600);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
lcd.init();
lcd.backlight();
}
void loop() {
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.0344 / 2;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Water Level: ");
lcd.print(distance);
lcd.print(" cm");
if (previousDistance != 0 && (previousDistance - distance) > (previousDistance * 0.1)) {
lcd.setCursor(0, 1);
lcd.print("Warning!");
}
previousDistance = distance;
delay(1000);
}