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:

  1. 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.
  2. 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!

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *