Latar Belakang Tempat sampah pintar
Tempat sampah pintar yang akan dijabarkan disini merupakan inspirasi dari kehidupan sehari-hari dan grup whatsapp “nyebarilmu.com“.
Melihat dari kebijakan pemerintah yang tinggal di wilayah Jabodetabek, yaitu kebiasaan buang sampah sembarangan untuk saat ini akan mendapatkan sangsi dan denda berupa sejumlah uang.
Dikarenakan sampah merupakan sumber segala masalah misalnya masalah banjir ibukota, penyakit, keindahan kota dan lain -lain.
Dimana masalah tersebut merupakan tanggung jawab bersama baik itu pemerintah dan masyarakat yang harus ditangani dengan baik.
Untuk itu muncullah ide sederhana membuat inovasi “tempat sampah pintar” ala nyebarilmu.com.
[irp posts=”1259″ name=”Tutorial Arduino mengakses Sensor Ultrasonic HC-SR04″]
Mungkin sudah banyak beredar di website-website dan youtube tentang smart trash bin ini, seperti contoh dibawah ini.
Akan tetapi pada web nyebarilmu.com ini akan diberikan beberapa perbedaan yaitu penggunaan tipe mikrokontroler yang sudah siap cetak PCB dan penambahan fitur kondisi kosong dan penuh sampah. (noted, segera menyusul)
Untuk itu, project ini dapat dibuat dengan mudah dan dapat dijadikan untuk bahan tugas di sekolah maupun tugas di kuliah.
[irp posts=”719″ name=”Cara mengakses Motor Servo menggunakan Arduino”]
Cara Kerja Tempat Sampah Pintar v.1
Akan digunakan sensor distance atau sensor obstacle yang dimana berfungsi sebagai sensor adanya benda didepannya.
Hal itu akan disalurkan ke mikrokontroler pada kasus ini digunakan Arduino Nano yang akan mengolah sinyal trigger tersebut untuk menggerakan servo.
Disinilah fungsi utama dari servo yaitu membuka dan menutup tempat sampah berdasarkan adanya trigger sinyal sensor dan waktu.
Pada saat kondisi terbuka dan tidak ada benda yang menghalangi sensor, maka akan didelay selama 3 detik untuk proses penutupan tempat sampah.
Setelah proses penutupan cek kondisi didalam ruangan tempat sampah, cek apakah kondisi sudah dalam kondisi penuh atau belum.
Jika sudah penuh maka buzzer dibunyikan dan terdapat notifikasi di layar LCD 16×2.
Skema Rangkaian
Komponenen yang dibutuhkan antara lain :
- Arduino Nano
- Driver LCD PCF8574
- LCD 16×2
- Ultrasonic HC-SR04 2 pcs
- Servo
- LM2596
- Adaptor 12v 2A
- Sensor Proximity
- Buzzer
- Tempat / box pcb
- Tempat sampah
- dan alat pendukung lainnya
[irp]
Pada project ini saya buatkan desain pcb yang simpel guna peletakan komponen diatas, dan mengurangi pengkabelan sehingga tidak tampak rapi.
Untuk konektor antara pcb dengan ultrasonic HC-SR04 dan servo menggunakan konektor jenis Molex 5mm.
Pada bagian tempat sampah harus dimodifikasi sedemikan dan mencontoh gambar ilustrasi diatas untuk buka tutupnya menggunakan servo.
Difungsikan timer sebagai pewaktu untuk lama bukanya tempat sampah serta digunakan sensor ultrasonic kedua yang mendeteksi akan tingkat kepenuhan sampah.
Apabila sampah sudah penuh maka buzzer yang terdapat pada rangkaian akan berbunyi dan terdapat notifikasi pada layar LCD.
Program Tempat sampah pintar v.1
[sociallocker id=”1344″]
//www.nyebarilmu.com #include <Servo.h> #include <Wire.h> #include <LiquidCrystal_PCF8574.h> #define echoPin2 4 #define trigPin2 5 #define buzzer 6 #define echoPin 7 #define trigPin 8 #define LEDPin 13 LiquidCrystal_PCF8574 lcd(0x38); //dapat dicek menggunakan i2c finder Servo myservo; int maximumRange = 30; int minimumRange = 00; unsigned long mulai, selesai, over, duration, distance, duration2, distance2; float detik; boolean a=0; void setup() { Serial.begin (9600); lcd.begin(16,2); lcd.setBacklight(255); lcd.setCursor(00,00); lcd.print(" nyebarilmu.com "); lcd.setCursor(00,1); lcd.print(" sampah pintar"); delay(2000); lcd.clear(); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(LEDPin, OUTPUT); pinMode(buzzer, OUTPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); // digitalWrite(buzzer, LOW); digitalWrite(LEDPin, LOW); myservo.attach(9); mulai=0; } void tim(){ over = (mulai-selesai) % 3600000; detik = int(over / 1000); } void cek_jarak(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); //perhitungan untuk dijadikan jarak distance = duration/58.2; digitalWrite(trigPin2, LOW); delayMicroseconds(2); digitalWrite(trigPin2, HIGH); delayMicroseconds(10); digitalWrite(trigPin2, LOW); duration2 = pulseIn(echoPin2, HIGH); //perhitungan untuk dijadikan jarak distance2 = duration2/58.2; } void cek_kondisi(){ lcd.clear(); while(1){ cek_jarak(); digitalWrite(buzzer, HIGH); lcd.setCursor(00,00); lcd.print("Tempat sampah"); lcd.setCursor(00,1); lcd.print(" -Full- "); if(distance2 > 10){break; lcd.clear(); } }} void loop() { cek_jarak(); if (distance < 30 && a==0) { lcd.clear(); a=1; while(1){ cek_jarak(); lcd.setCursor(00,00); lcd.print("Jarak:"); lcd.print(distance); myservo.write(180); //90 derajat mulai = millis(); tim(); lcd.setCursor(00,1); lcd.print("Timer:"); if (detik <= 9) {lcd.print("0");} lcd.print(detik,0); if(detik==5) {digitalWrite(LEDPin, HIGH); } if ((detik>5) && distance>30) { break; lcd.clear();} if ((detik>=3) && distance>30) { break; lcd.clear();} if ((detik>=8) && distance<30 && a==1) { break; lcd.clear();} } } if (distance < 30 && a==1) { lcd.clear(); while(1){ cek_jarak(); myservo.write(90); //0 derajat lcd.setCursor(00,00); lcd.print("1:"); lcd.print(distance); lcd.setCursor(9,00); lcd.print("2:"); lcd.print(distance2); lcd.setCursor(00,1); lcd.print("Stand-By - 1"); cek_kondisi(); if (distance>30) { break; lcd.clear();} } } if (distance > 30) { selesai= millis(); detik = 0; digitalWrite(LEDPin, LOW); myservo.write(90); //0 derajat a=0; lcd.setCursor(00,00); lcd.print("1:"); lcd.print(distance); lcd.print(" "); lcd.setCursor(9,00); lcd.print("2:"); lcd.print(distance2); lcd.print(" "); lcd.setCursor(00,1); lcd.print("Stand-By"); } if(distance2 <= 10){ cek_kondisi();} delay(50); }
[/sociallocker]
Hasil program diatas menggunakan simulasi proteus
File simulasi via proteus tersebut dapat dimiliki dengan sharing postingan ini
[lockercat] File : [ddownload id=”3226″] [/lockercat]
Penjelasan program
a. Penjelasan Kode program pertama
if (distance < 30 && a==0) { lcd.clear(); a=1; while(1){ cek_jarak(); lcd.setCursor(00,00); lcd.print("Jarak:"); lcd.print(distance); myservo.write(180); //90 derajat mulai = millis(); //timer menggunakan timer internal arduino tim(); lcd.setCursor(00,1); lcd.print("Timer:"); if (detik <= 9) {lcd.print("0");} lcd.print(detik,0); if(detik==5) {digitalWrite(LEDPin, HIGH); } if ((detik>5) && distance>30) { break; lcd.clear();} if ((detik>=3) && distance>30) { break; lcd.clear();} if ((detik>=8) && distance<30 && a==1) { break; lcd.clear();} } }
Note program diatas :
- Pada program diatas menggunakan timer sebagai waktu limit untuk pembukaan tutup secara otomatis
- Jarak sensing benda untuk membukanya tempat sampah yaitu kurang dari 30 cm
- Timer setting untuk penutupan secara otomatis yaitu 3 detik dengan kondisi jarak sensing dari pembacaan sensor lebih dari 30 cm
- Misal saat 3 detik masih terdeteksi jarak sensing kurang dari 30 cm, maka terdapat pengondisian detik ke-8 akan tertutup otomatis
2. Penjelasan kode program kedua
if(distance2 <= 10){ cek_kondisi();} void cek_kondisi(){ lcd.clear(); while(1){ cek_jarak(); digitalWrite(buzzer, HIGH); lcd.setCursor(00,00); lcd.print("Tempat sampah"); lcd.setCursor(00,1); lcd.print(" -Full- "); digitalWrite(buzzer, HIGH); delay(500); digitalWrite(buzzer, LOW); delay(500); if(distance2 > 10){break; lcd.clear();
Note program diatas :
- Pada saat kondisi tertutup secara otomatis maka sensor ultrasonik kedua akan bekerja untuk deteksi tingkat kepenuhan sampah
- Jika terdeteksi jarak sebesar dibawah 10 cm maka di lcd akan terdisplay “tempah sampah – Full”, dan buzzer akan berbunyi
- Pertanda sampah didalam harus dibuang dahulu untuk mengembalikan kondisi ke “Standby”
Untuk smart trash bin versi kedua, akan dibuatkan menggunakan wemos d1 mini dan dibuatkan dengan menggunakan notifikasi “terima-kasih” serta counter.
Dan tak lupa juga difungsikan notifkasi kepenuhan sampah melalui iot via aplikasi BlYNK, yang mudah digunakan.
Silahkan subscribe website ini, agar tidak ketinggalan.
terimakasih, salam nyebarilmu.