Beginilah cara Anda membuat alarm serbuk sari Anda sendiri

Peramal demam yang sangat baik berdasarkan faktor-faktor seperti suhu, angin, dan curah hujan dapat ditemukan secara online. Namun, radar serbuk sari ini tidak memperhitungkan spesies tanaman, sementara alergi sering terjadi pada spesies tertentu. Kami membangun alarm serbuk sari yang hanya memperingatkan tentang serbuk sari dari tanaman pilihan Anda dalam jumlah tertentu.

Daftar belanjaan

Misalnya di Martoparts.nl

1 modul NodeMCU (€ 10)

Misalnya di Conrad.nl

1 Strain relief M10 (€ 1, -)

1 PCB 80 × 50 mm (€ 3,30)

1 Rumah plastik 85 × 56 × 39 mm (€ 4,25)

1 Terminal sekrup 2 kutub (€ 0,20)

1 Adaptor daya 5 V, 1 A (€ 6, -)

1 LED Merah (€ 0,10)

1 LED Hijau (€ 0,10)

2 Resistor 100 ohm (€ 0,10)

Perlengkapan lainnya: besi solder dan solder, pemotong samping, obeng, bor, kikir, lem super, kabel tiang tunggal (30 cm), multimeter (opsional).

Total biaya: sekitar € 24,75

Selama 'musim dingin' yang lalu banyak pasien demam alergi serbuk bunga telah mengeluh. Siapa pun yang alergi terhadap alder atau hazel pollen terkena serangan yang belum pernah terjadi sebelumnya pada awal tahun ini dan tampaknya kita harus membiasakan diri dengan tanaman, pohon, dan rumput yang mekar sepanjang tahun. Untungnya, kebanyakan orang dengan alergi serbuk sari hanya mendapat giliran selama strain tertentu berkembang. Oleh karena itu, alarm serbuk sari hanya berguna jika diperhitungkan.

Ini tentu saja dimulai dengan data yang dapat diandalkan yang diperoleh dari deteksi serbuk sari. Sumber kami adalah Pusat Medis Universitas Leiden, yang departemen Penyakit Paru-paru menganalisis sampel udara setiap minggu. Ini adalah keahlian tradisional: sampel udara terdiri dari tujuh strip pita perekat (satu untuk setiap hari kerja) yang diperiksa di bawah mikroskop! Hasil penghitungan mingguan dipublikasikan di situs LUMC.

Tentu saja, hitungan ini khusus untuk lokasi tertentu dan jumlah butiran serbuk sari yang terdeteksi di Leiden bisa sangat berbeda dari yang ada di Limburg, hanya untuk beberapa nama. Namun demikian, ini memberikan indikasi yang baik dan dengan bereksperimen dengan kuantitas, data juga dapat digunakan untuk tempat lain. Kami menggunakan angka dari tabel untuk menentukan apakah sebuah pabrik melebihi standar tertentu. Jika demikian, LED merah akan menyala dan peringatan akan dikirim melalui email. Jika nilainya jatuh di bawah standar lagi, LED merah akan mati dan email akan mengikuti yang menyatakan bahwa peringatan telah ditarik.

Perangkat keras

Dalam hal perangkat keras dan perumahan, proyek ini unggul dalam kesederhanaan. Anda memerlukan adaptor listrik, rumah kompak dan pelepas tegangan, modul NodeMCU, dua LED, dua resistor, dan PCB untuk menyolder semua yang ada. Oleh karena itu, rangkaian ini sangat cocok untuk mereka yang baru mulai menyolder.

LED hijau menunjukkan bahwa sistem beroperasi dan dapat mengambil data dari sumber; LED merah menyala bila standar serbuk sari yang ditetapkan untuk tanaman yang dipilih terlampaui. Sirkuit ini didukung oleh adaptor listrik sederhana 5 volt, minimal 1 ampere. Itu juga bisa menjadi satu dengan koneksi USB, dalam hal ini Anda masih membutuhkan kabel USB yang sesuai. Seluruhnya ditempatkan di rumah plastik kompak, yang tentu saja Anda juga bisa membuat atau menggunakan kembali sesuatu sendiri. Terakhir, pelepas tegangan mencegah kabel daya ditarik keluar jika terjadi gaya yang tidak disengaja.

Instal lingkungan pengembangan

Modul ESP paling mudah diprogram dengan Arduino development environment (IDE). Anda bisa mendownloadnya disini. Karena IDE ini tidak ditujukan untuk modul ini, Anda harus memasang beberapa komponen tambahan yang diperlukan. Untuk melakukan ini, klik File / Preferensi dan masukkan url //arduino.esp8266.com/stable/package_esp8266com_index.json pada tab Pengaturan di bawah URL Manajemen Papan Tambahan . Sekarang pilih Tools / Board: / Board Management… dan ketik esp . Sekarang perhatikan: instal versi 2.4.2 untuk versi email program, karena ketidakcocokan perpustakaan sendemail.hdengan versi yang lebih baru. Untuk versi tanpa mail, pilih versi terbaru.

Pilih modul dari Tools / Board / NodeMCU 1.0 (ESP-12E Module) . Hubungkan modul ESP melalui kabel USB dan pilih port yang benar di Arduino IDE ( Tools / Port , pilih port com dengan nomor tertinggi). Jika semuanya berjalan dengan baik, pengaturan Anda sekarang siap untuk memulai pemrograman.

Sesuaikan kode

Anda dapat mengunduh program yang sudah jadi di sini. Bahkan ada dua varian: bagi mereka yang puas dengan LED peringatan dan merasa tidak perlu menerima email, tersedia versi stripped-down. Ini menghindari masalah dalam menyiapkan akun dengan penyedia email. Unduh file Pollen.zip dan ekstrak ke folder mana saja. Buka file pollen.ino untuk versi tanpa mail, atau pollenmail.ino untuk versi dengan fungsi mail (dengan mengklik dua kali pada file, secara otomatis terbuka di Arduino IDE, lihat juga kotak 'Install development environment'). Penjelasan di bawah ini didasarkan pada varian email, karena secara logis itulah versi yang paling banyak diberitahukan.

Di ssid dan kata sandi masukkan nama dan kata sandi jaringan nirkabel Anda masing-masing. Buka //sec.lumc.nl/pollenwebextern di browser dan tentukan nomor baris tanaman yang ingin Anda pantau. Baris pertama nama kolom tidak dihitung, jadi Hazel adalah baris 1, Els adalah baris 2 dan seterusnya. Kode sampel mencantumkan nilai untuk tanaman yang paling terkenal. Lebih mudah menggantinya dengan yang ingin Anda awasi. Dalam kode di flora [] masukkan nomor baris yang sesuai dari tabel, dipisahkan dengan koma dan di ambang []nilai untuk setiap tanaman. Menentukan hal ini merupakan percobaan: pada 0 setiap butir serbuk sari dari tanaman tertentu menghasilkan peringatan dan pada 100 ada ambang batas yang cukup. Jika Anda sangat alergi terhadap serbuk sari alder dan sedikit alergi pada birch, gunakan nilai flora [] {2, 8} dan ambang [] sebagai nilai {0, 20} . Pastikan jumlah angka di kedua baris sama.

Unduh salah satu dari dua program siap pakai dari pcmweb.nl

Siapkan akun email

Anda memerlukan server email untuk mengirim email. Anda dapat menginstalnya pada modul, tetapi Anda hampir pasti akan mengalami masalah dengan itu. Filter spam tidak mempercayai email dari sumber yang tidak dikenal dan pesan yang dikirim langsung dari modul tidak akan menjangkau sebagian besar penerima. Masalah ini dapat diatasi dengan menggunakan penyedia (gratis), seperti Mailjet.

Kunjungi www.mailjet.com dan buat akun baru dengan mengklik Daftar gratis . Untuk dapat menggunakan akun baru Anda, Anda harus mengkonfirmasi alamat email Anda dengan mengklik tombol atau link di email konfirmasi.

Masuk ke Mailjet dan klik Transaksional / SMTP di bagian atas . Di bawah Kredensial Anda melihat Nama Pengguna dan Kata Sandi , keduanya diperlukan dalam program Anda. Salin string di bawah Pengguna di server_login sebagai ganti USERNAME (di antara tanda kutip ganda). String di bawah Kata sandi ditempatkan pada baris di server_password menggantikan PASSWORD . Server smtp ( in-v3.mailjet.com ) dan nomor port ( 587 ) telah dimasukkan. Isi [email protected] alamat yang Anda gunakan untuk akun Mailjet Anda.

Mengirim surat juga bisa dilakukan lewat Gmail. Untuk menggunakan server smtp, Anda perlu menurunkan keamanan akun. Klik ikon akun Anda, lalu Kelola Akun Google / Keamanan Anda dan aktifkan Akses oleh aplikasi yang kurang aman . Dalam program ini, Anda menggunakan alamat pengirim Anda sendiri dan sandi terkait, smtp.gmail.com di server_host dan port 465 di server_port .

Penjelasan kode

Kode dimulai dengan menyematkan dua pustaka: ESP8266WiFi.h dan sendemail.h. Yang pertama menangani koneksi ke jaringan nirkabel dan menangani lalu lintas web. Berkat program ini, modul dapat dihubungkan ke jaringan dengan beberapa baris kode dan digunakan sebagai klien web. Pustaka kedua mengontrol koneksi ke server email, memungkinkan program untuk mengirim pesan.

Kami mendeklarasikan beberapa konstanta dan variabel, yang paling penting telah dibahas dalam paragraf di atas. Dalam Memproses data, LED dimatikan dan modul terhubung ke WiFi. Saat berhasil, LED hijau menyala.

Memproses data

Fungsi getinfo () adalah jantung dari program. Di sini halaman web dengan tabel diambil dan dianalisis. Alarm serbuk sari variabel disetel ke false dan i disetel ke 0 . Selama alarm serbuk sari salah, halaman web akan dibaca baris demi baris dan akan diperiksa setiap kali jika mengandung string total serbuk sari . Itu adalah kolom terakhir dari tabel, yang berisi daftar semua butir serbuk sari dari suatu tanaman yang telah dihitung dalam seminggu terakhir. Variabel i bertambah satu dan sekarang memiliki nilai 1 . Loop ini berputar melalui baris tabel. Variabel j dideklarasikan dan diberi nilai0 . Ini adalah bagian dari loop kedua di mana semua elemen flora [] dan ambang [] dilewatkan.

Sekarang unsur-unsur dari deretan tumbuhan [] dibandingkan satu per satu dengan i untuk menentukan tumbuhan mana yang terlibat. Flora [0] adalah singkatan dari elemen pertama dalam baris, jadi jika dikatakan 1 di sana (Hazel dalam tabel) semua kondisi terpenuhi dalam contoh ini. Kemudian baris berikutnya dibaca, yang berisi angka-angka. Fungsi toInt () digunakan untuk menyaring spasi dan sampah lainnya, hanya menyisakan integer yang ditugaskan ke variabel pollen. Jika angka itu lebih tinggi dari nilai yang sesuai di ambang baris [] (dalam hal ini, nilai pertama di baris itu), alarm serbuk sari menjadi true dan fungsi berhenti. Jika tidak, jditingkatkan satu dan elemen berikut dari flora [] dan ambang [] dibandingkan dengan i sampai tidak ada lagi elemen. Kemudian i bertambah satu dan baris berikut dibaca dari tabel. Setelah seluruh tabel diproses, data variabel dalam status akan menjadi benar dan LED hijau akan menyala.

Alarm atau tidak?

Fungsi alarm () dan tidak ada alarm () hanya digunakan untuk mengirim email, yang pertama melakukannya dengan alarm baru. Fungsi email.send () mengembalikan nilai true jika pengiriman berhasil dan nilai false jika terjadi kesalahan. Konstruksi menggunakan tes untuk ini dan memberikan alarm variabel yang mengirimkan status benar . Saat alarm dihilangkan, fungsi tanpa alarm () dijalankan dengan cara yang sama. Jika berhasil, alarm akan dikirim dengan status false. Akibatnya, email hanya dikirim saat status berubah, terlepas dari seberapa sering fungsi ini dijalankan.

Lihat setiap jam

Setelah menjalankan getinfo (), fungsi ini melihat variabel pollen alarm , data di dalam dan alarm dikirim . Jika dua yang pertama benar, ada alarm. LED merah akan menyala dan jika belum selesai, email alarm akan dikirim. Ini diikuti dengan istirahat satu jam. Jika data di dalam nilainya benar dan alarm serbuk sari bernilai salah , tidak ada alarm dan LED merah padam. Jika alarm yang dikirim bernilai true (email alarm sudah terkirim), email akan menyusul tentang pembatalan alarm dan alarm yang dikirim akan diberi status false. Sekali lagi, istirahat satu jam mengikuti. Jika data dalam status salah , maka terjadi kesalahan saat mengambil data. LED hijau akan mati untuk menunjukkan bahwa sistem (sementara) tidak beroperasi dan akan berhenti selama satu jam, setelah itu loop () akan dimulai ulang.

Unggah dan uji perangkat lunak

Setelah file pollen_mail.ino dimodifikasi seperti yang diinginkan di lingkungan pengembangan Arduino dan modul NodeMCU terhubung, pengunggahan dapat dimulai. Untuk menguji apakah itu berhasil, Anda dapat menambahkan sementara tanaman (atau pohon) yang pasti ada serbuk sari di tabel pada saat itu. Buka monitor serial dengan Ctrl + Shift + M dan unggah program dengan Ctrl + U.

Setelah pengunggahan selesai, Anda akan melihat bagaimana modul tersebut terhubung ke jaringan nirkabel terlebih dahulu dan kemudian ke server web. Kemudian pabrik pertama mengikuti, nilai ambang batas yang berlaku dan nilai terukur. Kemudian nilai untuk tanaman berikut. Jika salah satu nilai terukur melebihi ambang batas yang ditetapkan untuk pabrik itu, pesan Alarm serbuk sari! , diikuti dengan Surat yang dikirim dengan peringatan serbuk sari . Jika semua nilai tetap di bawah ambang batas yang ditetapkan, Anda hanya akan melihat Tidak ada alarm serbuk sari . Apakah sejauh ini semuanya berhasil? Kemudian Anda dapat memutuskan modul.

Untuk mengujinya, Anda dapat menambahkan sementara tanaman dengan serbuk sari di tabel

Persiapan

Untuk memulai, bor tiga lubang di rumahan: dua dari 5 milimeter untuk LED dan satu dari 10 milimeter untuk strain relief. Anda juga bisa membuat lubang lebih kecil dengan file. Pasang strain relief dan periksa apakah LED sudah sesuai. Rekatkan ke rumahan dengan lem super. Solder juga kabel ke LED, sehingga Anda dapat menyoldernya ke PCB.

Bangun sirkuitnya

Seperti yang telah disebutkan, perangkat keras proyek ini terbatas. Modul NodeMCU, dua resistor dan terminal sekrup ada di PCB. Untuk memulai, bor lubang 5 milimeter di sudut PCB agar pas di atas lubang sekrup rumahan.

Dengan menempatkan komponen secara cerdik, mereka dapat saling terhubung dengan solder. Perlu diingat bahwa (tergantung pada jalur pada papan sirkuit tercetak) modul dapat tersangkut di rumahan dan hanya ada sedikit margin! Oleh karena itu, pertama-tama tempatkan modul pada papan sirkuit dan lihat apakah modul tersebut sesuai dengan rumahannya sebelum melanjutkan. Kemudian perbaiki modul dengan menekuk pin sedikit di setiap sudut di bagian bawah, misalnya dengan ujung obeng yang rata. Setelah itu letakkan resistor di dekat pin D5 dan D6dan terakhir terminal sekrup di sisi lain modul. Dalam contoh, ia memiliki empat koneksi, tetapi hanya dibutuhkan dua. Resistor dan terminal sekrup juga tetap di tempatnya dengan baik jika Anda sedikit menekuk kakinya. Sekarang potong semua kaki (termasuk yang ada pada modul) dengan panjang kira-kira dua milimeter dengan tang potong dan solder bagian dan pin yang akan dihubungkan bersama. Solder juga empat pin sudut modul, hanya satu yang akan dihubungkan ke terminal sekrup. Untuk tip tentang penyolderan, lihat panduan komprehensif ini.

Menghubungkan

Finishing sekarang lebih mudah dari sebelumnya, karena berkat housing yang siap pakai, semuanya sudah ada di tempatnya. Yang tersisa adalah menghubungkan adaptor listrik dan LED. Untuk memulai, potong steker bundar dari kabel. Jika Anda menggunakan adaptor daya USB, potong konektor USB mikro dari kabel USB. Lepaskan kabel individu dengan panjang sekitar setengah sentimeter dan timah ujungnya. Jika Anda memiliki multimeter, Anda dapat memeriksa polaritas (plus dan minus) koneksi. Jika Anda tidak memilikinya, Anda dapat memeriksa apakah ada cetakan pada (salah satu) kabel. Pilihan lainnya adalah menghubungkan LED dengan resistor 220 ohm di salah satu kakinya. Hubungkan salah satu kabel adaptor ke resistor dan kabel lainnya ke kaki bebas LED.Kabel yang terhubung ke kaki panjang LED adalah nilai tambah. Tandai kabel ini. Masukkan ujung berlapis timah melalui pelepas regangan dari luar dan kencangkan di terminal sekrup pada PCB, dengan kabel positifVIN muncul dan papan pikiran di GND .

Terakhir, sambungkan LED dengan potongan kabel, yang ujungnya sudah dilapis timah. Hubungkan katoda (kaki pendek) dari kedua LED ke GND , hubungkan anoda (kaki panjang) LED hijau ke resistor di pin D5 dan anoda LED merah ke resistor di D6 .

Komisioning

Sirkuit dan programnya telah diuji, sehingga adaptor dapat dicolokkan ke soket. Tidak ada monitor serial sekarang, jadi Anda tidak akan melihat apa pun yang terjadi pada awalnya. Dalam beberapa detik, LED hijau akan menyala. Jika tidak setelah satu menit, mungkin ada masalah dengan Wi-Fi dan Anda perlu memindahkan sirkuit lebih dekat ke titik akses.

Jika standar serbuk sari yang ditentukan dalam kode terlampaui, LED merah juga akan menyala dan Anda akan menerima email peringatan. Meskipun program mengumpulkan data setiap jam, ada baiknya untuk disadari bahwa untuk saat ini hanya di-refresh oleh LUMC seminggu sekali (pada Selasa sore). Statusnya tetap tidak berubah di hari-hari lain, sayangnya ini tidak berbeda. Untuk alasan itu saja, sangat disarankan untuk tidak membuat ambang batas terlalu tinggi, sehingga Anda menerima peringatan pada waktunya.

Mari berharap untuk tahun serbuk sari rendah dengan sedikit email!