#include<ESP32Servo.h>
Servo myservo;
long duration;
int distance;
int percent;
void setup(){
myservo.attach(2);
pinMode(32,INPUT);
pinMode(33,OUTPUT);
pinMode(18,INPUT);
pinMode(4,OUTPUT);
Serial.begin(9600);
}
void loop(){
int x=digitalRead(32);
if(x==HIGH && distance>=10){
myservo.write(90);
Serial.println("Dustbin open");
delay(1000);
}
else{
myservo.write(0);
Serial.println("Dustbin Close");
delay(1000);
digitalWrite(33,LOW);
delayMicroseconds(2);
digitalWrite(33,HIGH);
delayMicroseconds(10);
digitalWrite(33,LOW);
duration=pulseIn(18,HIGH);
distance=duration*0.034/2;
Serial.print("Distance=");
Serial.println(distance);
distance=100-distance;
Serial.print(distance);
Serial.println("% dustbin full");
Serial.println("Dustbin Close");
delay(500);
if(distance<=10)
{
digitalWrite(4,HIGH);
}
else{
digitalWrite(4,LOW);
}
}
}