#include <LiquidCrystal_I2C.h>
#include <NewPing.h>
// Define pins for the ultrasonic sensor
#define TRIG_PIN 2
#define ECHO_PIN 4
#define MAX_DISTANCE 400 // Maximum distance in cm
// Initialize NewPing
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
// Initialize LCD (I2C address is usually 0x27 or 0x3F)
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Define buzzer pin
#define BUZZER_PIN 23
void setup() {
// Initialize LCD
lcd.begin();
lcd.backlight();
// Set buzzer pin as output
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
// Measure distance
delay(50); // Wait for sensor to stabilize
float distance = sonar.ping_cm();
// Check if water is detected within 10 cm
if (distance > 0 && distance <= 10) {
// Sound buzzer for 5 seconds
digitalWrite(BUZZER_PIN, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Water Detected!");
lcd.setCursor(0, 1);
lcd.print("Distance: ");
lcd.print(distance);
lcd.print(" cm");
delay(5000);
digitalWrite(BUZZER_PIN, LOW);
} else {
// Display "Monitoring Level Water"
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Monitoring Level");
lcd.setCursor(0, 1);
lcd.print("Water");
}
}