#include <ESP32Servo.h>
const int trigPin = 5;
const int echoPin = 18;
const int servoPin = 23;
Servo servo;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(servoPin);
servo.write(0); // Servo pada posisi tertutup
}
void loop() {
// Mengirimkan sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mengukur durasi pantulan
long duration = pulseIn(echoPin, HIGH);
// Menghitung jarak
float distance = (duration * 0.034) / 2;
// Debugging output jarak
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Membuka tempat sampah jika jarak kurang dari 30 cm
if (distance < 30) {
servo.write(90); // Buka tutup tempat sampah
} else {
servo.write(0); // Tutup tutup tempat sampah
}
delay(500);
}