Isi kandungan:

Smart Dustbin Dari Magicbit: 5 Langkah
Smart Dustbin Dari Magicbit: 5 Langkah

Video: Smart Dustbin Dari Magicbit: 5 Langkah

Video: Smart Dustbin Dari Magicbit: 5 Langkah
Video: How To Make An Automatic Object Sensing Smart Dustbin - DIY Project 2024, November
Anonim
Image
Image

Dalam tutorial ini kita akan belajar tentang cara membuat tong sampah dengan menggunakan Magicbit dev. papan dengan Arduino IDE. Mari bermula.

Bekalan

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

Langkah 1: Cerita

Persediaan Perkakasan
Persediaan Perkakasan

Sebelum masuk ke projek mari kita lihat apa itu tong sampah. Terdapat satu atau lebih tong sampah di setiap rumah. Sering kali anda menutupnya. Kerana itu akan mengeluarkan bau di rumah anda. Oleh itu, apabila anda ingin memasukkan sampah ke tong sampah, anda harus membukanya. Tetapi jika anda berjalan ke tong sampah untuk meletakkan sampah dan secara automatik penutupnya terbuka maka bagaimana rupanya. Gila aaa…. jadi itu tong sampah pintar.

Langkah 2: Teori dan Metodologi

Teorinya sangat mudah. Apabila anda berjalan berhampiran tong sampah, ia akan mengesan anda. Sekiranya jarak antara anda dan tong sampah lebih kecil daripada jarak yang ditentukan, maka penutup tong sampah akan terbuka secara automatik. Untuk menyelesaikan kedua-dua objek ini, kami menggunakan sensor ultrasonik HC-SRO4 dan motor servo kecil. Anda boleh mendapatkan apa-apa jenis motor servo digital.

Langkah 3: Persediaan Perkakasan

Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan

Untuk projek ini, kami menggunakan tiga komponen perkakasan. Mereka adalah Magicbit, servo motor dan sensor ultrasonik. Sambungan antara semua bahagian ini ditunjukkan dalam Rajah di atas.

Sensor ultrasonik digunakan 3.3 v untuk power up. Oleh itu, kami menggunakan port bawah kanan papan Magicbit untuk menyambungkan sensor ultrasonik ke Magicbit. Tetapi motor servo digunakan 5V untuk berfungsi dengan baik, oleh itu kami menggunakan port kiri bawah untuk menghubungkan motor servo dengan Magicbit. Dalam kes ini, kami menggunakan modul penyambung servo Magic bit. Tetapi jika anda tidak mempunyai modul tersebut, anda boleh menggunakan tiga wayar jumper untuk menyambungkan 5V hingga 5V, Gnd ke Gnd dan pin isyarat ke 26 pin di magicbit.

Sekarang mari kita lihat bahagian mekanikal projek kita. Untuk membuka penutup, kami menggunakan mekanisme tuas yang sangat mudah. Kami menyambungkan klip tangan servo sebelah ke servo. Kemudian kami menyambungkan lubang sudut di klip dan penutup tong sampah menggunakan wayar logam yang kuat. Kawat logam boleh berputar berkenaan dengan klip servo dan penutup tong sampah. Dengan mempelajari gambar dan video teratas, anda dapat membuatnya dengan mudah.

Langkah 4: Persediaan Perisian

Persediaan Perisian
Persediaan Perisian

Bahagian perisian juga sangat mudah. Mari lihat kod Arduino IDE dan bagaimana kod itu berfungsi.

Untuk memandu servo kami menggunakan perpustakaan servo ESP32. Perpustakaan ini hampir termasuk dalam pengurus papan bit sihir di Arduino IDE. Untuk menangani sensor ultrasonik, kami menggunakan perpustakaan newPing. Ini boleh dimuat turun dari pautan berikut.

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

Muat turun fail zip dan dan pergi alat> sertakan perpustakaan> tambahkan perpustakaan Zip di Arduino. sekarang pilih fail zip yang anda muat turun dari pustaka pin baru. dalam kod pertama kami menyatakan perpustakaan sensor servo dan ultrasonik. Dalam fungsi gelung, kita selalu memeriksa jarak dari tong sampah ke objek depan yang terdekat. Sekiranya parutan itu melebihi 200, maka keluaran jarak perpustakaan adalah 0. Apabila jarak lebih rendah dari 60cm, maka jalan keluar untuk gelung untuk membuka penutup dengan memutar servo. Sekiranya jaraknya lebih besar daripada 60cm maka penutup akan turun. Dengan menggunakan pemboleh ubah boolean, kita selalu memeriksa keadaan penutup. Sekiranya penutup ditutup maka hanya akan terbuka. Begitu juga sebaliknya. Sekarang pilih port COM dan papan yang betul sebagai magcibit, Kemudian muat naik kodnya. Kini tong sampah pintar anda sudah siap digunakan.

Langkah 5: Kod Arduino

#sertakan

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 SonPing Baru (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #masuk // sertakan jarak perpustakaan servo; Servo RadarServo; persediaan tidak sah () {Serial.begin (115200); RadarServo.attach (26); // Mentakrifkan pada pin mana kelewatan terlampir servo motor (3000); } gelung void () {// memutar motor servo dari 15 hingga 165 darjah untuk (int i = 0; i <= 180; i ++) {RadarServo.write (i); kelewatan (50); jarak = sonar.ping_cm (); // Memanggil fungsi untuk mengira jarak yang diukur oleh sensor Ultrasonik untuk setiap darjah untuk (int j = 0; j0) {break; } Cetakan bersiri (i); // Menghantar darjah semasa ke Serial Port Serial.print (","); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (j); // Menghantar ijazah semasa ke Serial Port Serial.print ("*"); Cetakan bersiri (1); // Menghantar nilai jarak ke Serial Port Serial.print ("/"); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (jarak); // Menghantar nilai jarak ke Serial Port Serial.print ("."); // Menghantar watak tambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk pengindeksan}} // Mengulangi baris sebelumnya dari 165 hingga 15 darjah untuk (int i = 180; i> = 0; i -) {RadarServo.tulis (i); kelewatan (50); jarak = sonar.ping_cm (); untuk (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {teruskan; } Cetakan bersiri (i); // Menghantar darjah semasa ke Serial Port Serial.print (","); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (j); // Menghantar ijazah semasa ke Serial Port Serial.print ("*"); Cetakan bersiri (-1); // Menghantar nilai jarak ke Serial Port Serial.print ("/"); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian dalam IDE Pemprosesan untuk mengindeks Serial.print (jarak); // Menghantar nilai jarak ke Serial Port Serial.print ("."); // Menghantar watak penambahan tepat di sebelah nilai sebelumnya yang diperlukan kemudian di IDE Pemprosesan untuk pengindeksan}}}

Disyorkan: