Tempat sampah otomatis yang menggunakan sensor ultrasonik, ESP32, dan motor servo adalah perangkat pintar yang memudahkan pembuangan sampah tanpa harus menyentuh tutup tempat sampah. Sistem ini bekerja dengan mendeteksi keberadaan objek (seperti tangan atau sampah) di dekat tempat sampah, lalu membuka tutupnya secara otomatis. Berikut cara kerja sistemnya:
Sensor Ultrasonik:
ESP32:
Motor Servo:
Untuk membuat Kotak Sampah Otomatis ini saya menggunakan bebrapa komponen berupa :
1. ESP32
ESP32 bertindak sebagai pengontrol utama dalam sistem ini. Ia menjalankan kode untuk
mengontrol sensor dan servo berdasarkan data yang diperoleh dari sensor ultrasonik. ESP32 juga
bertanggung jawab untuk mengatur komunikasi antara komponen, melakukan pemrosesan data,
dan menjalankan logika yang ditentukan dalam program (misalnya, membuka atau menutup tempat
sampah otomatis berdasarkan jarak yang terdeteksi).
2. Sensor Ultrasonik (HC-SR04)
Sensor ultrasonik digunakan untuk mengukur jarak antara sensor dan objek di depannya (dalam hal
ini, objek yang mungkin ingin dibuang ke dalam tempat sampah). Sensor ini mengirimkan
gelombang suara ultrasonik dan mengukur waktu yang dibutuhkan gelombang untuk kembali
setelah mengenai objek. Dari waktu ini, jarak dapat dihitung. Data jarak yang diperoleh akan
digunakan untuk menentukan apakah objek cukup dekat untuk menggerakkan servo (misalnya,
ketika seseorang mendekati tempat sampah, servo akan berputar untuk membuka penutup).
3. Servo
Servo digunakan untuk menggerakkan penutup tempat sampah. Ketika jarak yang terdeteksi oleh
sensor ultrasonik berada dalam batas tertentu (misalnya, kurang dari 10 cm), servo akan diaktifkan
untuk membuka penutup tempat sampah. Servo dapat diprogram untuk bergerak ke posisi tertentu
(misalnya, membuka hingga 90 derajat) dan kembali ke posisi awal (0 derajat) setelah objek telah
melewati sensor.
4. Kabel jumper
Kabel jumper adalah jenis kabel pendek yang digunakan untuk menghubungkan komponen elektronik pada papan prototipe (seperti breadboard) atau antara pin pada mikrokontroler dan perangkat lainnya. Kabel jumper biasanya memiliki ujung pin atau soket yang mudah disambungkan ke berbagai jenis konektor, sehingga memudahkan perancangan rangkaian sementara tanpa memerlukan penyolderan.
Kode Program
const int trigPin = 22; // Pin untuk Trig
const int echoPin = 21; // Pin untuk Echo
const int servoPin = 23; // Pin untuk servo
void setup() {
pinMode(servoPin, OUTPUT); // Set pin servo sebagai output
pinMode(trigPin, OUTPUT); // Set pin trig sebagai output
pinMode(echoPin, INPUT); // Set pin echo sebagai input
Serial.begin(115200); // Mulai komunikasi serial
}
void loop() {
long duration, distance;
// Mengatur trigPin tinggi selama 10 mikrodetik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca durasi sinyal dari echoPin
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak dalam cm (kecepatan suara = 343 m/s atau 0.0343 cm/µs)
distance = duration * 0.0343 / 2;
// Menampilkan jarak ke serial monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
delay(500); // Menunggu setengah detik sebelum pembacaan berikutnya
}