Tempat Sampah Cerdas Dari Magicbit: 5 Langkah
Tempat Sampah Cerdas Dari Magicbit: 5 Langkah
Anonim
Image
Image

Dalam tutorial ini kita akan belajar tentang cara membuat Smart dustbin menggunakan Magicbit dev. papan dengan Arduino IDE. Mari kita mulai.

Perlengkapan

  • Magicbit
  • Kabel USB-A ke Micro-USB
  • Sensor Ultrasonik - HC-SR04 (Generik)
  • Motor servo mikro SG90

Langkah 1: Cerita

Pengaturan Perangkat Keras
Pengaturan Perangkat Keras

Sebelum masuk ke proyek mari kita lihat apa itu Smart dustbin. Ada satu atau lebih tempat sampah di setiap rumah. Dalam banyak kali Anda menutupinya. Karena itu akan membuat bau di rumah Anda. Jadi ketika Anda ingin membuang sampah ke tempat sampah, Anda harus membukanya. Tapi jika, ketika Anda berjalan di dekat tempat sampah untuk membuang sampah dan secara otomatis penutupnya terbuka maka seperti apa bentuknya. Gila aaaa…. jadi itulah tempat sampah pintar.

Langkah 2: Teori dan Metodologi

Teorinya sangat sederhana. Ketika Anda berjalan di dekat tempat sampah, itu akan mendeteksi Anda. Jika jarak antara Anda dan tempat sampah lebih kecil dari jarak yang ditentukan, maka penutup tempat sampah akan terbuka secara otomatis. Untuk melengkapi kedua objek tersebut kami menggunakan sensor ultrasonik HC-SRO4 dan motor servo kecil. Anda bisa mendapatkan semua jenis motor servo digital.

Langkah 3: Pengaturan Perangkat Keras

Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras

Untuk proyek ini kami terutama menggunakan tiga komponen perangkat keras. Mereka adalah Magicbit, motor servo dan sensor ultrasonik. Hubungan antara semua bagian ini ditunjukkan pada Gambar di atas.

Sensor ultrasonik menggunakan 3,3 v untuk power up. Oleh karena itu kami menggunakan port kanan bawah papan Magicbit untuk menghubungkan sensor ultrasonik ke Magicbit. Tetapi motor servo digunakan 5V untuk bekerja dengan benar, Oleh karena itu kami menggunakan port kiri bawah untuk menghubungkan motor servo dengan Magicbit. Dalam hal ini, kami menggunakan modul konektor servo bit ajaib. Tetapi jika Anda tidak memiliki modul itu, Anda dapat menggunakan tiga kabel jumper untuk menghubungkan 5V ke 5V, Gnd ke Gnd dan pin sinyal ke 26 pin di magicbit.

Sekarang mari kita lihat sisi mekanis dari proyek kita. Untuk membuka penutup kami menggunakan mekanisme tuas yang sangat sederhana. Kami menghubungkan klip tangan servo satu sisi ke servo. Kemudian kami menghubungkan lubang sudut di klip dan penutup tempat sampah menggunakan kawat logam yang kuat. Kawat logam dapat berputar sehubungan dengan klip servo dan penutup tempat sampah. Dengan mempelajari gambar dan video teratas, Anda dapat membuatnya dengan sangat mudah.

Langkah 4: Pengaturan Perangkat Lunak

Pengaturan Perangkat Lunak
Pengaturan Perangkat Lunak

Bagian softwarenya juga sangat mudah. Mari kita lihat kode Arduino IDE dan cara kerja kode tersebut.

Untuk mengemudi servo kami menggunakan perpustakaan servo ESP32. Pustaka ini hampir termasuk dalam pengelola papan bit ajaib di Arduino IDE. Untuk menangani sensor ultrasonik kami menggunakan library newPing. Ini dapat diunduh dari tautan berikut.

bitbucket.org/teckel12/arduino-new-ping/d…

Unduh file zip dan dan pergi alat> termasuk perpustakaan> tambahkan perpustakaan Zip di Arduino. sekarang pilih file zip yang Anda unduh dari perpustakaan pin baru. dalam kode kami pertama-tama mendeklarasikan perpustakaan sensor servo dan ultrasonik. Dalam fungsi loop kami selalu memeriksa jarak dari tempat sampah ke objek depan terdekat. Jika lebih dari 200, maka jarak keluaran perpustakaan adalah 0. Bila jarak lebih rendah dari 60cm, maka dijalankan loop for untuk membuka penutup dengan memutar servo. Jika jaraknya lebih besar dari 60cm maka penutup akan diturunkan. Dengan menggunakan variabel boolean kami selalu memeriksa keadaan penutup. Jika penutup turun maka hanya itu yang akan terbuka. Juga sebaliknya. Sekarang pilih port dan board COM yang benar sebagai magcibit, Kemudian unggah kodenya. Sekarang tempat sampah pintar Anda siap digunakan.

Langkah 5: Kode Arduino

#termasuk

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 sonar Ping Baru(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // sertakan jarak int perpustakaan servo; Servo RadarServo; void setup() { Serial.begin(115200); RadarServo.attach(26); // Mendefinisikan pada pin mana penundaan terpasang motor servo(3000); } void loop() { // memutar motor servo dari 15 sampai 165 derajat for(int i=0;i<=180;i++){ RadarServo.write(i); penundaan(50); distance = sonar.ping_cm();// Memanggil fungsi untuk menghitung jarak yang diukur oleh sensor Ultrasonik untuk setiap derajat for(int j=0;j0){ break; } Serial.print(i); // Mengirimkan derajat saat ini ke dalam Serial Port Serial.print(", "); // Mengirim karakter tambahan tepat di sebelah nilai sebelumnya yang dibutuhkan nanti di IDE Pemrosesan untuk pengindeksan Serial.print(j); // Mengirimkan derajat saat ini ke Serial Port Serial.print("*"); Serial.print(1); // Mengirim nilai jarak ke Serial Port Serial.print("/"); // Mengirim karakter tambahan tepat di sebelah nilai sebelumnya yang dibutuhkan nanti di Processing IDE untuk mengindeks Serial.print(distance); // Mengirim nilai jarak ke Serial Port Serial.print("."); // Mengirim karakter tambahan tepat di sebelah nilai sebelumnya yang dibutuhkan nanti dalam Processing IDE untuk pengindeksan } } // Mengulangi baris sebelumnya dari 165 hingga 15 derajat for(int i=180;i>=0;i--){ RadarServo.tulis(i); penundaan(50); jarak = sonar.ping_cm(); for(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){ lanjutkan; } Serial.print(i); // Mengirimkan derajat saat ini ke dalam Serial Port Serial.print(", "); // Mengirim karakter tambahan tepat di sebelah nilai sebelumnya yang dibutuhkan nanti di IDE Pemrosesan untuk pengindeksan Serial.print(j); // Mengirimkan derajat saat ini ke Serial Port Serial.print("*"); Serial.print(-1); // Mengirim nilai jarak ke Serial Port Serial.print("/"); // Mengirim karakter tambahan tepat di sebelah nilai sebelumnya yang dibutuhkan nanti di Processing IDE untuk mengindeks Serial.print(distance); // Mengirim nilai jarak ke Serial Port Serial.print("."); // Mengirim karakter tambahan tepat di sebelah nilai sebelumnya yang dibutuhkan nanti di IDE Pemrosesan untuk pengindeksan } } }