#include <ESP32Servo.h> // ✅ ESP32 ke liye sahi library
#define TRIG_PIN 5 // Ultrasonic Trigger
#define ECHO_PIN 18 // Ultrasonic Echo
#define SERVO_PIN 21 // Servo motor pin
#define PIR_PIN 19 // PIR sensor pin
Servo myServo;
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(PIR_PIN, INPUT);
myServo.attach(SERVO_PIN);
myServo.write(0); // Lid closed initially
}
void loop() {
// 🔹 Step 1: PIR Sensor check
int pirValue = digitalRead(PIR_PIN);
if (pirValue == HIGH) {
Serial.println("Motion detected → Lid Open");
myServo.write(90); // Lid open
delay(5000); // 5 sec open
myServo.write(0); // Lid close
}
// 🔹 Step 2: Ultrasonic distance check
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
int distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}