Tutorial ESP32: Membuat Tempat Sampah Otomatis dengan Sensor HC-SR04 & Servo
Pernahkah kamu melihat tempat sampah pintar di mall atau rumah sakit yang tutupnya bisa membuka sendiri saat kita mendekat? Terlihat canggih, bukan? Kabar baiknya: kamu bisa membuatnya sendiri di rumah atau di laboratorium sekolah!
Proyek Internet of Things (IoT) sederhana ini sangat cocok untuk tugas praktik, pameran inovasi teknologi, atau sekadar mengasah skill mikrokontroler. Dalam artikel ini, kita akan membedah tuntas cara membuat Tempat Sampah Otomatis menggunakan otak utama ESP32, mata berupa Sensor Ultrasonik HC-SR04, dan penggerak menggunakan Motor Servo SG90.
Mari kita mulai merakit!
Alat dan Bahan yang Dibutuhkan
Sebelum mulai, pastikan komponen berikut sudah tersedia di meja kerjamu:
- 1x Board ESP32 (Otak dari proyek ini)
- 1x Sensor Ultrasonik HC-SR04 (Sebagai pendeteksi jarak)
- 1x Micro Servo SG90 (Untuk menarik tutup tempat sampah)
- Kabel Jumper secukupnya (Female-to-Female atau Male-to-Female, sesuaikan dengan penggunaan breadboard)
- Kabel USB Micro/Type-C (Untuk mengunggah program)
- Tempat sampah kecil berbahan plastik ringan
Langkah 1: Skema Rangkaian (Wiring Diagram)
Merakit komponen ini sangat mudah. Ikuti panduan sambungan pin di bawah ini dengan teliti agar tidak terjadi korsleting:
Menghubungkan Sensor HC-SR04 ke ESP32:
- VCC ➔ Pin VIN / 5V
- GND ➔ Pin GND
- TRIG ➔ Pin D5 (GPIO 5)
- ECHO ➔ Pin D18 (GPIO 18)
Menghubungkan Servo SG90 ke ESP32:
- Kabel Merah (Power) ➔ Pin VIN / 5V
- Kabel Coklat (Ground) ➔ Pin GND
- Kabel Oranye (Signal) ➔ Pin D19 (GPIO 19)

Perhatian: Karena menggunakan board ESP32, pastikan kamu sudah menginstal library ESP32Servo di Arduino IDE sebelum mulai mengoding.
Langkah 2: Kode Program (Sketch) Arduino IDE
Salin kode di bawah ini. Kode ini sudah dilengkapi dengan komentar bahasa Indonesia agar alur logikanya mudah dipahami, bahkan jika ini adalah pertama kalinya kamu memprogram ESP32.
C++
#include <ESP32Servo.h>
const int pinTrig = 5;
const int pinEcho = 18;
const int pinServo = 19;
Servo servoSaya;
void setup() {
Serial.begin(115200);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
servoSaya.attach(pinServo);
servoSaya.write(0); // Posisi awal tutup rapat
}
void loop() {
// 1. Mengirim gelombang suara
digitalWrite(pinTrig, LOW);
delayMicroseconds(2);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
// 2. Menerima pantulan dan menghitung durasi
long durasi = pulseIn(pinEcho, HIGH);
// 3. Menghitung jarak ke sentimeter
int jarak = durasi * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(jarak);
Serial.println(" cm");
// 4. Logika Buka/Tutup Tempat Sampah
if (jarak > 0 && jarak < 15) {
Serial.println("Tangan terdeteksi! Membuka tutup...");
servoSaya.write(90); // Servo menarik tutup 90 derajat
delay(3000); // Tahan selama 3 detik
} else {
servoSaya.write(0); // Tutup kembali
}
delay(100);
}
Langkah 3: Membedah Rumus Rahasia Sensor Ultrasonik
Pernahkah kamu bertanya-tanya, dari mana datangnya angka pada baris kode ini?
int jarak = durasi * 0.034 / 2;
Ini bukan sekadar angka acak! Di sinilah ESP32 mengubah waktu menjadi jarak menggunakan prinsip fisika dasar. Mari kita bedah:
- Kecepatan Suara: Suara merambat di udara dengan kecepatan sekitar 340 meter per detik. Jika dikonversi menjadi satuan yang lebih kecil (sentimeter per mikrodetik), angkanya menjadi 0.034 cm/mikrodetik.
- Mengapa Dibagi Dua (
/ 2)? Saat sensor mengirim suara, suara tersebut maju menabrak benda (misalnya tangan kita), lalu memantul mundur kembali ke sensor. Durasi yang tercatat adalah waktu perjalanan bolak-balik. Karena kita hanya butuh jarak dari sensor ke tangan kita, durasi waktu tersebut wajib dibagi dua.
Analogi sederhananya seperti kelelawar yang mengeluarkan decitan di malam hari untuk mengetahui letak mangsanya. Sangat keren untuk dijelaskan saat presentasi proyek!
Kesimpulan
Membuat tempat sampah otomatis menggunakan ESP32 tidak hanya melatih kemampuan pemrograman C/C++, tetapi juga mengasah pemahaman kita tentang elektronika dasar dan fisika terapan. Proyek ini sangat bisa dikembangkan lebih jauh, misalnya dengan menambahkan fitur notifikasi ke smartphone saat sampah sudah penuh menggunakan koneksi WiFi bawaan ESP32.
Selamat mencoba merakit, dan jangan ragu untuk bertanya di kolom komentar jika kamu mengalami error saat compile kode!






Users Today : 96
Users Yesterday : 158
This Month : 1970
This Year : 10337
Total Users : 153094
Views Today : 171
Total views : 430605