Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

BeeMonitor

Komponen dan persediaan

Arduino Nano 33 BLE Sense
× 1
Kabel USB-A ke Micro-USB
× 1

Aplikasi dan layanan online

Arduino IDE
Edge Impulse Studio
Android Studio

Tentang proyek ini

Pendahuluan

Kami akan menyajikan pengembangan aplikasi pengendalian lebah yang membantu peternak lebah dalam produksi madu dan produk lainnya secara efisien. Aplikasi ini mencakup bidang peternakan lebah. Kami melihat motivasi dalam membantu peternak lebah untuk mengendalikan lebah dan menjadi seefektif mungkin. Ini akan memudahkan peternak lebah untuk bekerja berjam-jam di sarang individu. Idenya adalah bahwa berdasarkan suhu dan kelembaban, aplikasi ini menawarkan wawasan tentang keadaan keluarga lebah di sarang tertentu dan deteksi peristiwa khusus yang disebut swarming. Ini adalah acara di mana keluarga lebah dibagi menjadi dua bagian. Satu bagian tetap di sarang dan yang lainnya meninggalkan sarang dan menemukan rumah baru. Bagian pertama tetap berada di sarang dan menunggu ratu baru menetas, sedangkan bagian kedua meninggalkan sarang bersama ratu lama. Di sini penting bahwa peternak lebah mengambil tindakan tepat waktu. Dia akan dibantu dalam hal ini dengan aplikasi kontrol lebah, yang mengenali peristiwa semacam itu berdasarkan pemrosesan suara dengung lebah.

Solusi

Karena seorang peternak lebah biasanya memiliki sarang lebah dalam jumlah besar dan akibatnya juga banyak sarang lebah, inspeksi manual terhadap sarang individu membutuhkan banyak waktu. Dengan bantuan aplikasi kami, peternak lebah terhubung ke sarang individu melalui terminal seluler dan koneksi Bluetooth, di mana ia dapat melihat kesehatan keluarga lebah. Selain itu, aplikasi akan memperingatkan peternak lebah dalam kasus kawanan bahwa ia akan dapat mengambil tindakan tepat waktu dan lebah tidak akan melarikan diri ke alam, yang akan mengurangi produksi madu.

Deskripsi

Sistem ini terdiri dari mikrokontroler Arduino Nano BLE 33 Sense, yang juga berisi mikrofon pada papan sirkuit tercetaknya. Dengan bantuan algoritma yang berjalan pada pengontrol mikro, pengontrol mendengarkan dengungan lebah dan, dengan bantuan model yang dipelajari, mengenali perbedaan dengungan lebah, ketika ratu ada di sarang dan kapan bukan itu. Selain deteksi kelahiran, Arduino juga menyertakan sensor suhu dan kelembaban. Dengan bantuan data ini kita dapat mengetahui kondisi atau kesehatan keluarga lebah yang berada di dalam sarang. Karena tujuannya adalah konsumsi energi yang rendah, sistem mengukur kondisi hanya beberapa kali sehari, atau dalam periode waktu antara pukul 10 pagi dan 1 siang, di mana kemungkinan swarning paling besar. Sepanjang hari, perangkat sebagian besar menganggur dan tidak mengkonsumsi energi.

Model pembelajaran mesin

Deskripsi prosedur EdgeImpulse

  • Ambil data menggunakan mikrofon

Pertama, kami menangkap dengungan lebah menggunakan mikrofon untuk mengumpulkan data yang menjadi dasar model pembelajaran.

  • Analisis spektral suara

Data tersebut kemudian diolah menggunakan spektogram.

  • Membangun model menggunakan jaringan saraf

Spektogram adalah input ke jaringan saraf, yang digunakan untuk melatih model. Setelah perhitungan ulang yang lama, kami mendapatkan hasilnya, yang diberikan dalam matriks yang menunjukkan kinerja pengenalan model.

Grafik di bawah menunjukkan performa model berdasarkan data yang diambil.

  • Buat perpustakaan dan unggah ke Arduino

Akhirnya, kami membuat perpustakaan untuk diunggah ke papan Arduino.

Perangkat Keras

  • Arduino Nano BLE 33 Sense
  • Daya baterai
  • Terminal seluler Android

Konektivitas

Untuk menerima data dari Arduino ke aplikasi di ponsel Android kami menggunakan opsi konektivitas bluetooth. Arduino Nano BLE 33 Sense menawarkan modul bluetooth di papan sirkuitnya. Komunikasi ini memungkinkan Anda untuk terhubung ke Arduino di dalam sarang dan memiliki jarak dari sarang di mana tidak ada risiko sengatan lebah.

Aplikasi Android

Selanjutnya, kami telah merancang aplikasi Android yang kami perlukan untuk terhubung ke Arduino Nano BLE 33 Sense dan mulai mengunduh data dan peringatan tentang status keluarga lebah.

1. Menghubungkan ke perangkat di dalam sarang

2. Layar utama dengan data suhu dan kelembapan serta peringatan acara.

Di bawah ini Anda dapat melihat peringatan yang dikirimkan perangkat Arduino ke aplikasi Android.

Konsep operasi

Lakukan sendiri!

Petunjuk untuk menguji sistem kami.

Langkah 1 Mengunduh lingkungan program the.ino untuk memprogram Arduino ble 33 sense. Kompilasi kode dan kirimkan ke papan Arduino.

https://www.arduino.cc/en/software

Langkah 2 Unduh aplikasi ke perangkat Android Anda (file .apk dalam lampiran)

Langkah 3 Instal perangkat Arduino di dalam sarang.

Langkah 4 Menghubungkan ke perangkat dengan koneksi bluetooth

Peningkatan

  • Meningkatkan model pembelajaran mesin dengan meningkatkan database lebah berdengung.
  • Tambahkan fitur tambahan ke aplikasi Android
  • Kami melihat peningkatan dalam membangun database informasi sarang di jaringan LoraWan, di mana data dapat dikirim ke server dan diakses di mana saja, kapan saja.

Kesimpulan

Kami dengan senang hati mempresentasikan ide kami dan berbagi dengan Anda sebuah proyek yang dapat Anda coba di lingkungan Anda sendiri. Kami percaya bahwa kami berada di jalur yang benar untuk membuat pekerjaan peternak lebah lebih mudah dengan peningkatan lebih lanjut. Anda juga dapat berkontribusi untuk meningkatkan model dengan meningkatkan database rekaman buzz lebah. Ini akan membuat sistem lebih akurat dan kurang sensitif terhadap gangguan. Terima kasih!

Kode

  • Arduino Nano ble 33 sense
  • ei-smartbees-arduino-1.0.6.zip
Arduino Nano ble 33 senseC/C++
/* Contoh Edge Impulse Arduino Hak Cipta (c) 2021 EdgeImpulse Inc. Dengan ini izin diberikan, gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait ("Perangkat Lunak"), untuk menangani Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan, menerbitkan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan untuk mengizinkan orang yang diberikan Perangkat Lunak untuk melakukannya, tunduk pada ketentuan berikut:Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam semua salinan atau sebagian besar Perangkat Lunak. PERANGKAT LUNAK INI DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN DALAM BENTUK APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU DAN TANPA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, KERUSAKAN ATAU LAINNYA, TIMBUL DARI, DARI ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU DALAM DEALING LAINNYA PERANGKAT LUNAK.*/// Jika memori target Anda terbatas, hapus makro ini untuk menghemat 10K RAM#define EIDSP_QUANTIZE_FILTERBANK 0/* Termasuk ----------------------- ----------------------------------------- */#include  #include #include #include #include #define BLE_UUID_STRING "1A3AC131-31EF-758B-BC51-54A61958EF82"#define B48ESTBA-2UID_T48EST 082F-C079-9E75AAE428B1"/** Buffer audio, pointer dan pemilih */typedef struct { int16_t *buffer; uint8_t buf_ready; uint32_t buf_count; uint32_t n_samples;} inference_t;inferensi_t inferensi statis;sampel pendek yang ditandatangani statisBuffer[2048];statis bool debug_nn =false; // Setel ini ke true untuk melihat mis. fitur yang dihasilkan dari sinyal mentahBLED pusat perangkat;BLELayanan layanan(BLE_UUID_TEST_SERVICE);BLEStringCharacteristic serviceOutput(BLE_UUID_STRING, BLERead | BLENotify, 200);/** @brief Arduino setup function*/void setup(){ // letakkan kode setup Anda di sini, untuk jalankan sekali:Serial.begin(115200); while (!Serial); pinMode(LED_BUILTIN, OUTPUT); if (!BLE.begin()) { Serial.println("memulai BLE gagal!"); sementara (1); } BLE.setLocalName("Sarang Lebah"); BLE.setAdvertisedService(layanan); service.addCharacteristic(serviceOutput); BLE.tambahkanLayanan(layanan); BLE.iklan(); Serial.println("Perangkat Bluetooth aktif, menunggu koneksi..."); if (!HTS.begin()) { Serial.println("Gagal menginisialisasi sensor suhu kelembaban!"); sementara (1); } if (microphone_inference_start(EI_CLASSIFIER_RAW_SAMPLE_COUNT) ==false) { ei_printf("ERR:Gagal menyiapkan pengambilan sampel audio\r\n"); kembali; }}/** @singkat fungsi utama Arduino. Menjalankan loop inferensi.*/void loop(){ central =BLE.central(); if (pusat) { Serial.print("Terhubung ke pusat:"); Serial.println(pusat.alamat()); digitalWrite(LED_BUILTIN, TINGGI); while (central.connected()) { ei_printf("Memulai inferensi dalam 2 detik...\n"); penundaan(2000); ei_printf("Merekam...\n"); bool m =microphone_inference_record(); if (!m) { ei_printf("ERR:Gagal merekam audio...\n"); kembali; } suhu mengambang =HTS.readTemperature(); kelembaban mengambang =HTS.readHumidity(); StaticJsonDocument<600> dok; doc["suhu"] =(bulat(suhu*10)/10.0); doc["kelembaban"] =(bulat(kelembaban*10)/10.0); doc["acara"] =""; ei_printf("Perekaman selesai\n"); sinyal_t sinyal; signal.total_length =EI_CLASSIFIER_RAW_SAMPLE_COUNT; signal.get_data =µphone_audio_signal_get_data; ei_impulse_result_t hasil ={ 0 }; EI_IMPULSE_ERROR r =run_classifier(&sinyal, &hasil, debug_nn); if (r !=EI_IMPULSE_OK) { ei_printf("ERR:Gagal menjalankan classifier (%d)\n", r); kembali; } // print prediksi ei_printf("Prediksi "); ei_printf("(DSP:%d ms., Klasifikasi:%d ms., Anomali:%d ms.)", result.timing.dsp, result.timing.classification, result.timing.anomaly); ei_printf(":\n"); prediksi mengambang [3]; for (size_t ix =0; ix  0) { Serial.write(print_buf); }}/** @brief PDM buffer callback penuh Dapatkan data dan panggilan audio thread callback*/static void pdm_data_ready_inference_callback(void){ int bytesAvailable =PDM.available(); // baca ke buffer sampel int byteRead =PDM.read((char *)&sampleBuffer[0], bytesAvailable); if (inference.buf_ready ==0) { for (int i =0; i > 1; i++) { inference.buffer[inference.buf_count++] =sampleBuffer[i]; if (inference.buf_count>=inference.n_samples) { inference.buf_count =0; inferensi.buf_ready =1; merusak; } } }}/** @brief Init inferencing struct dan setup/start PDM @param[in] n_samples The n sampel @return { description_of_the_return_value }*/static bool microphone_inference_start(uint32_t n_samples){ inference.buffer =(int16_t (n_sampel * ukuran(int16_t)); if (inference.buffer ==NULL) { return false; } inference.buf_count =0; inference.n_samples =n_samples; inferensi.buf_ready =0; // mengkonfigurasi data menerima panggilan balik PDM.onReceive(&pdm_data_ready_inference_callback); // opsional mengatur gain, default ke 20 PDM.setGain(80); PDM.setBufferSize(4096); // inisialisasi PDM dengan:// - satu saluran (mode mono) // - laju sampel 16 kHz if (!PDM.begin(1, EI_CLASSIFIER_FREQUENCY)) { ei_printf("Gagal memulai PDM!"); microphone_inference_end(); kembali salah; } return true;}/** @brief Tunggu data baru @return True ketika selesai*/static bool microphone_inference_record(void){ inference.buf_ready =0; inference.buf_count =0; while (inference.buf_ready ==0) { //delay(10); penundaan(2000); } return true;}/** Dapatkan data sinyal audio mentah*/static int microphone_audio_signal_get_data(size_t offset, size_t length, float *out_ptr){ numpy::int16_to_float(&inference.buffer[offset], out_ptr, length); return 0;}/** @brief Hentikan PDM dan lepaskan buffer*/static void microphone_inference_end(void){ PDM.end(); gratis(inference.buffer);}#jika !defined(EI_CLASSIFIER_SENSOR) || EI_CLASSIFIER_SENSOR !=EI_CLASSIFIER_SENSOR_MICROPHONE#error "Model tidak valid untuk sensor saat ini."#endif
ei-smartbees-arduino-1.0.6.zipC/C++
Pustaka dengan model pembelajaran mesin
Tanpa pratinjau (hanya unduhan).
Aplikasi Android
https://github.com/TCodingB/BeeMonitor.git
File apk untuk perangkat Android
https://github.com/TCodingB/BeeMonitor/tree/main/apk/debug

Proses manufaktur

  1. Apa itu Mesin VMC?
  2. Panduan untuk Penandaan Laser Aluminium
  3. Pengelasan MIG vs Pengelasan TIG
  4. Panduan untuk Penandaan Laser
  5. Pertimbangan untuk Mesin Swiss Produksi Tinggi
  6. Panduan untuk Pembuatan Prototipe CNC
  7. Memahami Proses Pembuatan Poros
  8. Apa itu Penandaan Laser Serat?
  9. Elektropolish vs. Pasif
  10. Apa itu Pasif Stainless Steel?