Rabu, 02 Agustus 2023

Tugas Project Smart Trash Bin



Nama            : Denny Febriyanto
NPM              : 11420392
Mata Kuliah   : Algoritma & Pemrograman Kasus Teknik Elektro
Dosen           : Antonius Irianto Sukowati

Pengertian Smart Trash Bin

        Smart trash bin adalah sebuah jenis tempat sampah yang dilengkapi dengan teknologi modern dan fitur canggih untuk meningkatkan efisiensi dan kecerdasan dalam pengelolaan sampah. Tujuan dari smart trash bin adalah untuk mengurangi jumlah sampah yang terbuang sia-sia dan meningkatkan kemampuan dalam mengelola sampah secara lebih efektif. Berbagai fitur yang dimiliki oleh smart trash bin mencakup sensor untuk mendeteksi pergerakan atau kedekatan tangan, pengenalan objek untuk membedakan jenis sampah, integrasi dengan aplikasi atau platform digital untuk memantau status pengisian tempat sampah secara real-time, kompresi otomatis untuk menampung lebih banyak sampah, notifikasi dan pengelolaan jarak jauh, penggunaan sumber energi terbarukan, koneksi internet, serta penggunaan kecerdasan buatan (AI) untuk menganalisis data dan memprediksi pola pembuangan sampah guna meningkatkan efisiensi pengelolaan. Dengan teknologi ini, smart trash bin dapat membantu mengoptimalkan proses pengelolaan sampah, mengurangi pemborosan sampah, serta memberikan dampak positif bagi lingkungan dan masyarakat.

Contoh Smart Trash Bin Modern

     Smart trash bin memiliki banyak manfaat, termasuk pengelolaan sampah yang lebih efisien, pengurangan pemborosan sampah, menjaga kesehatan lingkungan, meningkatkan kesadaran lingkungan, penghematan energi, dan peningkatan kenyamanan bagi pengguna. Manfaat ini secara keseluruhan mendukung upaya menuju pengelolaan sampah yang lebih cerdas, berkelanjutan, dan ramah lingkungan.

        Untuk itu pada kesempatan kali ini kita akan membuat perancangan prototipe dari smart trash bin yang juga merupakan tugas dari mata kuliah algoritma dan pemrograman kasus teknik elektro.

Perancangan Prototipe Automatic/ Touchless Trash Bin

        Prototipe ini bertujuan untuk membuat tempat sampah pintar yang dapat secara otomatis membuka penutup ketika ada pengguna yang akan membuang sampah. Menggunakan Arduino Uno sebagai otak sistem dan dilengkapi dengan dua buah sensor ultrasonik untuk mendeteksi kedekatan tangan pengguna, satu buah LCD I2C untuk menampilkan informasi status, dan satu buah motor servo untuk menggerakkan penutup tempat sampah.

Komponen yang digunakan adalah sebagai berikut:

1. Arduino Uno 
2. LCD 16x2 I2C
3. 2 Sensor Ultrasonic 
4. Servo Motor
5. Buzzer

Skematik Rangkaian

Desain skematik yang dibuat pada wokwi dapat diliat di link berikut ini:

Skematik Rangkaian dan Program Wokwi

Desain Skematik Rangkaian Protitipe Smart Trash Bin

Program Arduino

Berikut ini adalah program yang digunakan dalam prototipe smart trash bin:

#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int trigPin = 5;
int echoPin = 6;
float duration, cm;
int trigPins = 7;
int echoPins = 8;
float durations, cms;
Servo servoOpen;
const int buzzerPin = 10;
int previousStatus = 0; // Variabel untuk menyimpan status level sampah sebelumnya
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPins, OUTPUT);
  pinMode(echoPins, INPUT);
  servoOpen.attach(9);
  servoOpen.write(0);
  pinMode(buzzerPin, OUTPUT);
  updateLCD();
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  digitalWrite(trigPins, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPins, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPins, LOW);
  durations = pulseIn(echoPins, HIGH);
  cm = (duration / 2) / 29.1;
  cms = (durations / 2) / 29.1;
  if (cm <= 250) {
    servoOpen.write(90);
    digitalWrite(buzzerPin, LOW); // Matikan buzzer saat tempat sampah terbuka
    delay(500);
  } else {
    servoOpen.write(0);
    // Cek apakah status level sampah berubah dari "Penuh" ke status lainnya
    if (previousStatus == 1) {
      digitalWrite(buzzerPin, HIGH); // Nyalakan buzzer saat status "Penuh"
      delay(1000); // Waktu buzzer menyala (dapat disesuaikan)
    } else {
      digitalWrite(buzzerPin, LOW); // Matikan buzzer saat tempat sampah tertutup dan tidak penuh
    }
    // Simpan status level sampah sekarang sebagai status sebelumnya
    previousStatus = 0;
  }
  updateLCD();
}
void updateLCD() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Level Sampah :");
  lcd.setCursor(0, 1);
  if (cms >= 210 && cms <= 300) {
    lcd.print("Sedikit");
    previousStatus = 0; // Set status sebelumnya menjadi 0 ("Sedikit")
  } else if (cms <= 209 && cms >= 70) {
    lcd.print("Setengah");
    previousStatus = 0; // Set status sebelumnya menjadi 0 ("Setengah")
  } else if (cms >= 0 && cms <= 69) {
    lcd.print("Penuh");
    previousStatus = 1; // Set status sebelumnya menjadi 1 ("Penuh")
  } else {
    lcd.print("Kosong");
    previousStatus = 0; // Set status sebelumnya menjadi 0 ("Kosong")
  }
}

Penjelasan Program:

       Program smart trash bin berbasis Arduino Uno ini menggunakan sensor ultrasonik untuk mengukur jarak dan mengetahui kondisi tempat sampah. Servo motor digunakan untuk membuka dan menutup tempat sampah, sementara buzzer digunakan untuk memberikan peringatan ketika tempat sampah penuh. Data jarak dari sensor ultrasonik digunakan untuk menentukan kondisi tempat sampah ("Kosong", "Sedikit", "Setengah", atau "Penuh"), yang ditampilkan pada LCD I2C. Program ini juga menggunakan variabel previousStatus untuk mengatur kapan buzzer akan menyala, hanya saat status tempat sampah "Penuh". Dengan demikian, program ini menciptakan smart trash bin yang mampu menampilkan kondisi level sampah pada LCD dan memberikan peringatan ketika tempat sampah penuh.

Flowchart

Berikut diagram alur dari sistem prototipe smart trash bin:

Flowchart Sistem

Penjelasan diagram alur:

        Pada bagian setup, dilakukan inisialisasi dan pengaturan pin untuk sensor ultrasonik, servo motor, buzzer, dan LCD I2C. Selanjutnya, program masuk ke dalam loop() untuk membaca jarak dari sensor ultrasonik pertama. Jika jarak kurang dari atau sama dengan 30 cm (mendeteksi keberadaan subjek yang ingin membuang sampah), maka program akan memulai mekanisme membuka tempat sampah. LCD akan menampilkan pesan "Tempat Sampah Terbuka" dan setelah 5 detik, mekanisme akan menutup kembali tempat sampah. Setelah tempat sampah tertutup, program akan mengukur level sampah menggunakan sensor ultrasonik kedua dan menampilkan tingkatannya ("Kosong", "Sedikit", "Sedang", "Penuh") di LCD I2C. Jika level sampah ditampilkan sebagai "Penuh", buzzer akan menyala sebagai peringatan. Jika level sampah tidak penuh, buzzer akan dimatikan. Proses akan terus berulang dari membaca jarak sensor ultrasonik pertama hingga mengukur dan menampilkan level sampah pada LCD secara berulang.

Tugas Project Smart Trash Bin Nama               : Denny Febriyanto NPM                  : 11420392 Mata Kuliah    : A lgoritma & Pemrog...