#include <Servo.h>
Servo servo;
int buzzer = 7;
void setup() {
pinMode(12, INPUT); //PIR sensor
pinMode(2, OUTPUT); // trig
pinMode(3, INPUT); //echo
pinMode(5, OUTPUT); //led
pinMode(buzzer, OUTPUT); //buzzer
servo.attach(9);
Serial.begin(9600);
}
void loop() {
long duration, distance;
digitalWrite(2, LOW);
delayMicroseconds(2);
digitalWrite(2, HIGH);
delayMicroseconds(10);
digitalWrite(2, LOW);
duration = pulseIn(3, HIGH);
distance = (duration / 2) / 29.1;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 10) {
Serial.println("Close Dustbin.");
servo.write(90);
} else {
servo.write(0);
Serial.println("Dustbin Opened.");
}
if (digitalRead(12) == HIGH) {
digitalWrite(5, HIGH);
Serial.println("Dustbin is Full.");
tone(buzzer, 200);
}
else {
digitalWrite(5, LOW);
Serial.println("Dustbin is not Full.");
noTone(buzzer);
}
delay(500);
}