#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigger = 32;
const int echo = 33;
const int pump = 25;
int levellow = 40;
int levelhigh = 10;
int pumpstate = LOW;
void setup(){
lcd.init();
lcd.backlight();
lcd.clear();
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(pump, OUTPUT);
}
void loop(){
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
long duration = pulseIn(echo, HIGH);
float distance = (duration/2)/29.1;
int waterlevel = map(distance * 100, levelhigh * 100, levellow * 100, 100, 0);
waterlevel = constrain(waterlevel, 0, 100);
lcd.setCursor(0,0);
lcd.print("WATERLEVEL=");
lcd.print(waterlevel);
lcd.print("%");
if(distance >= levellow){
digitalWrite(pump, HIGH);
lcd.setCursor(0,1);
lcd.print("WATERPUMP=ON ");
}
else if(distance <= levelhigh){
digitalWrite(pump, LOW);
lcd.setCursor(0,1);
lcd.print("WATERPUMP=OFF");
}
}