AI Assistant
Kotak Sampah Pintar IoT

Fitri Rahmadini

0 orang menyukai ini
Suka
Summary

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:

  • Sensor ini mendeteksi objek yang mendekat berdasarkan pantulan gelombang ultrasonik. Saat ada objek pada jarak tertentu dari sensor, gelombang akan dipantulkan kembali ke sensor, yang kemudian mengukur jarak tersebut. Jika jaraknya cukup dekat, seperti sekitar 20 cm, ini akan memicu sistem untuk membuka tutup tempat sampah.

ESP32:

  • ESP32 adalah mikrokontroler yang berfungsi sebagai pusat kontrol. Mikrokontroler ini menerima data dari sensor ultrasonik dan memprosesnya. Ketika sensor mendeteksi objek dalam jangkauan yang ditentukan, ESP32 akan mengirimkan sinyal ke motor servo untuk menggerakkan tutup tempat sampah.

Motor Servo:

  • Motor servo digunakan untuk menggerakkan tutup tempat sampah. Ketika ESP32 menerima sinyal dari sensor ultrasonik, ESP32 akan menginstruksikan motor servo untuk membuka tutup tempat sampah. Setelah beberapa detik, motor servo akan bergerak kembali ke posisi semula untuk menutup tutup.

Description

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.03432;

 

// Menampilkan jarak ke serial monitor

Serial.print("Jarak: ");

Serial.print(distance);

Serial.println(" cm");

 

delay(500); // Menunggu setengah detik sebelum pembacaan berikutnya

}