Gudang Ilmu: Membuat Tong Sampah Otomatis Bisa Berbicara

Saturday, 29 June 2024

Membuat Tong Sampah Otomatis Bisa Berbicara

 


Alat dan Bahan yang Dibutuhkan :

  1. Arduino Uno
  2. Sensor Ultrasonic HC-SR04
  3. Servo Motor
  4. DFPlayer Mini
  5. Speaker kecil
  6. Kabel jumper
  7. Breadboard (opsional)
  8. Sumber daya eksternal (jika diperlukan)

Skema Rangkaian :

1. Sensor Ultrasonic HC-SR04

  • VCC -> Arduino 5V
  • Trigger -> Arduino pin 8
  • Echo -> Arduino pin 9
  • GND -> Arduino GND

2. DFPlayer Mini

  • VCC -> Arduino 5V
  • GND -> Arduino GND
  • RX -> Arduino pin 5 (TX dari SoftwareSerial)
  • TX -> Arduino pin 6 (RX dari SoftwareSerial)

3. Servo

  • Signal -> Arduino pin 7
  • VCC -> Arduino 5V atau sumber daya eksternal
  • GND -> Arduino GND

Koding Arduino :


#include <HCSR04.h>
#include <Servo.h>
#include <DFPlayerMini_Fast.h>
#include <SoftwareSerial.h>

// Inisialisasi komunikasi serial untuk DFPlayer Mini
SoftwareSerial mySerial(5, 6); // RX, TX

// Inisialisasi sensor ultrasonic
UltraSonicDistanceSensor distanceSensor(8, 9);  // Sensor menggunakan pin digital 8 dan 9

// Inisialisasi variabel untuk menyimpan jarak
int jarak = 0;

// Inisialisasi servo
Servo myservo; 

// Inisialisasi DFPlayer Mini
DFPlayerMini_Fast myMP3;

void setup() {
  // Menyambungkan servo ke pin 7 dan mengatur posisi awal ke 0 derajat
  myservo.attach(7);
  myservo.write(0);  
  
  // Memulai komunikasi serial
  Serial.begin(9600);
  mySerial.begin(9600);

  // Memulai DFPlayer Mini
  myMP3.begin(mySerial, true);

  // Mengatur volume DFPlayer Mini ke maksimum (25)
  Serial.println("Setting volume to max");
  myMP3.volume(25);
}

void loop() {
  // Membaca jarak dari sensor ultrasonic
  jarak = distanceSensor.measureDistanceCm();
  
  // Jika jarak lebih dari 0 dan kurang dari 50 cm
  if (jarak > 0 && jarak < 50) {
    // Memutar servo ke 150 derajat untuk membuka tutup tong sampah
    myservo.write(150); 
    delay(500);
    
    // Selama jarak masih dalam rentang 0-50 cm, terus membaca jarak
    while (jarak > 0 && jarak < 50) {
      jarak = distanceSensor.measureDistanceCm();
      delay(100);
    }
    
    // Menunggu 2 detik sebelum memutar audio
    delay(2000);
    
    // Memutar audio file ke-1
    myMP3.play(1);
    delay(3000);
    
    // Mengembalikan servo ke posisi 0 derajat untuk menutup tutup tong sampah
    myservo.write(0); 
  }
  
  // Delay 500 ms sebelum membaca jarak lagi
  delay(500);
}


Penjelasan Kode

  1. Inisialisasi dan Deklarasi:
    • Mengimpor library yang dibutuhkan: HCSR04.hServo.hDFPlayerMini_Fast.hSoftwareSerial.h.
    • Membuat objek mySerial untuk komunikasi serial dengan DFPlayer Mini.
    • Mengatur pin untuk sensor ultrasonic menggunakan UltraSonicDistanceSensor distanceSensor(8, 9);.
    • Membuat variabel jarak untuk menyimpan jarak yang diukur.
    • Membuat objek myservo untuk servo motor.
    • Membuat objek myMP3 untuk DFPlayer Mini.
  2. Setup:
    • Menyambungkan servo ke pin 7 dan mengatur posisi awal ke 0 derajat.
    • Memulai komunikasi serial dengan baud rate 9600.
    • Memulai DFPlayer Mini.
    • Mengatur volume DFPlayer Mini ke maksimum.
  3. Loop:
    • Membaca jarak dari sensor ultrasonic.
    • Mengecek apakah jarak dalam rentang 0-50 cm.
    • Memutar servo ke 150 derajat untuk membuka tutup tong sampah.
    • Selama jarak masih dalam rentang, terus membaca jarak.
    • Menunggu 2 detik sebelum memutar audio.
    • Memutar audio file pertama.
    • Menutup kembali tutup tong sampah dengan memutar servo ke posisi 0 derajat.



Sumber: dwiarsana

No comments:

Post a Comment

terimakasih telah mengunjungi blog saya.