#include <ESP32Servo.h>
Servo myservo;
const int T=14;
const int E=32;
long duration;
int distance;
int percentageFull;
void setup()
{
Serial.begin(9600);
myservo.attach(4);
pinMode(25,INPUT);
pinMode(T,OUTPUT);
pinMode(E,INPUT);
pinMode(2, OUTPUT);
}
void loop()
{
digitalWrite(T,LOW);
delayMicroseconds(2);
digitalWrite(T, HIGH);
delayMicroseconds(10);
digitalWrite(T,LOW);
int x=digitalRead(25);
duration=pulseIn(E,HIGH);
distance=(duration*0.034)/2;
percentageFull = 100 - distance;
if(x==1 && distance>10)
{
myservo.write(0);
Serial.println("Dustbin Open");
delay(5000);
}
else if(x==1 && distance<=10)
{
myservo.write(90);
Serial.print("Dustbin is ");
Serial.print(percentageFull);
Serial.println("% full");
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
else
{
myservo.write(90);
Serial.println("Dustbin Closed");
delay(1000);
}
}