Ito ay kung paano ka gumawa ng iyong sariling pollen alarm

Makakahanap ka ng mahuhusay na tagahula ng hay fever online na batay sa mga salik gaya ng temperatura, hangin at pag-ulan. Gayunpaman, ang mga pollen radar na ito ay hindi isinasaalang-alang ang mga species ng halaman, habang ang isang allergy ay madalas na nangyayari sa mga partikular na species. Bumubuo kami ng pollen alarm na nagbabala lamang para sa pollen mula sa iyong mga piniling halaman sa isang tiyak na halaga.

Listahan ng bibilhin

Halimbawa sa Martoparts.nl

1 NodeMCU module (€10)

Halimbawa sa Conrad.nl

1 strain relief M10 (€ 1,-)

1 PCB 80 × 50 mm (€3.30)

1 Plastic housing 85 × 56 × 39 mm (€4.25)

1 screw terminal 2-pole (€0.20)

1 mains adapter 5 V, 1 A (€ 6,-)

1 Pulang LED (€ 0.10)

1 Green LED (€ 0.10)

2 Resistor 100 ohms (€ 0.10)

Iba pang mga supply: panghinang na bakal at panghinang na lata, mga side cutter, screwdriver, drill, file, superglue, single-pole cord (30 cm), multimeter (opsyonal).

Kabuuang mga gastos: humigit-kumulang € 24.75

Noong nakaraang 'taglamig' maraming mga pasyente ng hay fever ang mayroon nang mga reklamo. Ang sinumang allergic sa pollen mula sa alder o hazel ay nagkaroon nito ng hindi pa naganap sa unang bahagi ng taong ito at tila kailangan nating masanay sa mga halaman, puno at damo na namumulaklak sa buong taon. Sa kabutihang palad, karamihan sa mga nagdurusa ng pollen allergy ay nagpapalit-palit lamang sa oras na ang isang partikular na strain ay namumulaklak. Ang isang alarma ng pollen samakatuwid ay makatuwiran lamang kung ito ay isinasaalang-alang.

Siyempre, nagsisimula ito sa maaasahang data na nakuha mula sa pagtuklas ng pollen. Ang aming source ay ang Leiden University Medical Center, na ang Department of Pulmonary Diseases ay nagsusuri ng mga sample ng hangin linggu-linggo. Tradisyunal na craftsmanship iyon: ang mga sample ng hangin ay binubuo ng pitong piraso ng adhesive tape (isa para sa bawat weekday) na sinusuri sa ilalim ng mikroskopyo! Ang mga resulta ng lingguhang pagbilang ay inilathala sa website ng LUMC.

Siyempre, ang bilang na ito ay tukoy sa lokasyon at ang dami ng mga butil ng pollen na natukoy sa Leiden ay maaaring mag-iba nang malaki mula sa Limburg, upang pangalanan ang ilan. Gayunpaman, nagbibigay ito ng isang mahusay na indikasyon at sa pamamagitan ng pag-eksperimento sa mga dami, ang data ay maaari ding gamitin para sa iba pang mga lugar. Ginagamit namin ang mga numero mula sa talahanayan upang matukoy kung ang isang halaman ay lumampas sa isang tiyak na pamantayan. Kung gayon, isang pulang LED ang iilaw at isang babala ang ipapadala sa pamamagitan ng email. Kung ang halaga ay bumaba muli sa pamantayan, ang pulang LED ay mawawala at isang e-mail ang susunod na may mensahe na ang babala ay binawi.

Hardware

Sa mga tuntunin ng hardware at pabahay, ang proyektong ito ay mahusay sa pagiging simple. Kailangan ng mains adapter, isang compact housing at isang strain relief, isang NodeMCU module, dalawang LEDs, dalawang resistors at isang circuit board para ma-solder ang buong bagay. Samakatuwid, ito ay isang napaka-angkop na circuit para sa mga nagsisimula pa lamang maghinang.

Ang berdeng LED ay nagpapahiwatig na ang sistema ay gumagana at may kakayahang kunin ang data mula sa pinagmulan; ang pulang LED ay umiilaw kapag nalampasan ang pollen standard na itinakda para sa mga napiling halaman. Ang circuit ay pinapagana ng isang simpleng power adapter na 5 volts, hindi bababa sa 1 amp. Iyon ay maaari ding isa na may koneksyon sa USB, kung gayon kailangan mo pa rin ng angkop na USB cable. Ang kabuuan ay nakalagay sa isang compact plastic housing, kung saan maaari mo ring gawin o muling gamitin ang isang bagay sa iyong sarili. Sa wakas, pinipigilan ng strain relief na mabunot ang kable ng kuryente kung sakaling magkaroon ito ng hindi sinasadyang puwersa.

I-install ang kapaligiran sa pag-unlad

Ang ESP module ay pinakamadaling i-program gamit ang Arduino development environment (IDE). Maaari mong i-download ito dito. Dahil ang IDE na ito ay hindi pangunahing inilaan para sa modyul na ito, kakailanganin mong mag-install ng ilang karagdagang kinakailangang bahagi. Mag-click sa File / Mga Kagustuhan at pumasok sa tab Mga institusyon Pukyutan Mga karagdagang URL ng Pamahalaan ng Lupon ang url //arduino.esp8266.com/stable/package_esp8266com_index.json sa. Pumili ngayon Mga Tool / Lupon: / Pamamahala ng Lupon… at uri esp. Ngayon bigyang-pansin: mangyaring i-install ang bersyon 2.4.2 para sa bersyon ng mail ng programa, dahil sa hindi pagkakatugma ng library sendemail.h na may mga mas bagong bersyon. Para sa bersyon na walang mail, piliin ang pinakabagong bersyon.

Piliin ang module sa pamamagitan ng Mga Tool / Board / NodeMCU 1.0 (ESP-12E Module). Ikonekta ang ESP module sa pamamagitan ng USB cable at piliin ang tamang port sa Arduino IDE (Mga Tool / Port, piliin ang com port na may pinakamataas na bilang). Kung naging maayos ang lahat, handa na ang iyong setup para simulan ang programming.

Baguhin ang code

Maaari mong i-download ang handa na programa dito. Mayroong kahit dalawang mga variant: para sa mga nasiyahan sa babala LED at hindi mahanap ito kinakailangan upang makatanggap ng isang email, mayroong isang stripped-down na bersyon na magagamit. Makakatipid ka nito sa problema sa paggawa ng account sa isang mail provider. I-download ang file pollen.zip at i-extract ito sa anumang folder. Buksan ang file pollen.ino para sa bersyon na walang mail, o pollenmail.ino para sa bersyon na may function ng mail (sa pamamagitan ng pag-double click sa file, awtomatiko itong bubukas sa Arduino IDE, tingnan din ang kahon na 'I-install ang development environment'). Ang paliwanag sa ibaba ay batay sa variant ng mail, dahil iyon ang lohikal na bersyon na may pinakamaraming sasabihin.

Top up ssid at password Ipasok ang iyong pangalan ng wireless network at password ayon sa pagkakabanggit. Buksan ang //sec.lumc.nl/pollenwebextern sa isang browser at tukuyin ang mga numero ng linya ng mga halaman na gusto mong subaybayan. Ang unang linya ng mga pangalan ng column ay hindi binibilang, kaya ang Hazel ay linya 1, ang Alder ay linya 2 at iba pa. Ang sample code ay naglilista ng mga halaga para sa pinakakilalang mga halaman. Mas maginhawang palitan ang mga ito ng mga species na gusto mong bantayan. Punan ang code Flora[] ipasok ang kaukulang mga numero ng linya ng talahanayan, na pinaghihiwalay ng mga kuwit at sa threshold[] ang halaga ng bawat halaman. Ang pagtukoy nito ay isang bagay ng eksperimento: sa 0 bawat butil ng pollen ng isang partikular na halaman ay nagreresulta sa isang alarma at sa 100 mayroong isang makabuluhang threshold. Kung ikaw ay lubos na alerdye sa alder pollen at sa mas mababang antas sa birch pollen, Flora[] ang mga halaga {2, 8} at kasama ang threshold[] halimbawa ang mga halaga {0, 20}. Siguraduhin na ang bilang ng mga numero sa parehong mga hilera ay pareho.

I-download ang isa sa dalawang handa na programa mula sa pcmweb.nl

Mag-set up ng mail account

Kailangan mo ng mail server para magpadala ng mail. Maaari mong i-install ito sa module, ngunit halos tiyak na magkakaroon ka ng mga problema dito. Ang mga filter ng spam ay hindi nagtitiwala sa mail mula sa hindi kilalang mga mapagkukunan at ang mga mensaheng direktang ipinadala mula sa module ay hindi makakarating sa karamihan ng mga tatanggap. Maaaring malampasan ang problemang ito sa pamamagitan ng paggamit ng (libre) provider, gaya ng Mailjet.

Pumunta sa www.mailjet.com at lumikha ng bagong account sa pamamagitan ng pag-click Mag-sign up nang libre. Upang magamit ang iyong bagong account, dapat mong kumpirmahin ang iyong email address sa pamamagitan ng pag-click sa pindutan o sa link sa email ng pagkumpirma.

Mag-log in sa Mailjet at mag-click sa itaas Transaksyonal / SMTP. sa ibaba Mga kredensyal kita mo username at password, pareho ang kailangan sa iyong programa. Kopyahin ang string sa ilalim ng User sa server_login sa halip na USERNAME (sa pagitan ng double quotes). Ang string sa ilalim password sumali sa linya password ng serber sa halip na PASSWORD. Ang smtp server (in-v3.mailjet.com) at ang port number (587) ay napunan na. Punan ang lugar ng [email protected] Ilagay ang email address na ginagamit mo para sa iyong Mailjet account.

Maaari ka ring magpadala ng mail sa pamamagitan ng Gmail. Upang magamit ang smtp server, kakailanganin mong babaan ang seguridad ng account. Mag-click sa icon ng iyong account at pagkatapos Pamahalaan ang iyong Google account / Seguridad at lumipat I-access ng mga hindi gaanong secure na app sa. Sa program na ginagamit mo ang iyong sariling address ng nagpadala at kaukulang password, smtp.gmail.com Pukyutan server_host at gate 465 Pukyutan server_port.

Code ng paliwanag

Nagsisimula ang code sa pamamagitan ng pag-embed ng dalawang library: ESP8266WiFi.h at sendemail.h. Ang una ay humahawak sa koneksyon sa wireless network at humahawak sa trapiko sa web. Salamat sa program na ito, maaaring ikonekta ang module sa network na may ilang linya ng code at magamit bilang web client. Kinokontrol ng pangalawang library ang koneksyon sa mail server, na nagpapahintulot sa programa na magpadala ng mga mensahe.

Ipinapahayag namin ang ilang mga pare-pareho at mga variable, ang pinakamahalaga sa mga ito ay napag-usapan na sa mga talata sa itaas. Sa Pagproseso ng data, ang mga LED ay naka-off at ang module ay kumokonekta sa WiFi. Kung matagumpay, i-on ang berdeng LED.

Pagproseso ng data

Ang function getinfo() ay ang puso ng programa. Dito kinukuha at sinusuri ang web page na naglalaman ng talahanayan. Ang variable alarma ng pollen nakakakuha ng halaga hindi totoo at i nakakakuha ng halaga 0. Hangga't mali ang alarma ng pollen, babasahin ang web page nang linya, na tinitingnan ang string nang sabay-sabay kabuuang pollen nangyayari sa loob nito. Iyon ang huling column ng talahanayan, na naglilista ng lahat ng pollen grain ng isang halaman na binilang sa nakaraang linggo. Variable i ay dinaragdagan ng isa at mayroon na ngayong halaga 1. Ang loop na ito ay dumadaan sa mga hilera ng talahanayan. Variable j ay ipinahayag at nakakakuha ng halaga 0. Ito ay bahagi ng pangalawang loop na kumukuha ng lahat ng elemento mula sa Flora[] at threshold[] matatapos na.

Ngayon ang mga elemento mula sa hilera Flora[] isa-isa kumpara sa i upang matukoy kung aling mga halaman ang kasangkot. At saka, flora[0] para sa unang elemento sa hilera, kaya kung mayroon 1 (Hazel sa talahanayan) lahat ng mga kondisyon ay natutugunan sa halimbawang ito. Pagkatapos ay basahin ang susunod na linya, na naglalaman ng mga numero. Ang function toInt() nagsisilbing salain ang mga espasyo at iba pang basura, na nag-iiwan lamang ng isang integer na itatalaga sa pollen variable. Kung ang numerong iyon ay mas malaki kaysa sa katumbas na halaga sa row threshold[] (sa kasong ito ang unang halaga sa hilera na iyon), ang alarma ng pollen ay nagiging totoo at huminto ang function. Kung hindi, kung gayon j nadagdagan ng isa at lumabas ang mga sumusunod na elemento Flora[] at threshold[] kumpara sa i hanggang sa wala nang mga elemento. Pagkatapos ay nagiging i incremented ng isa at ang mga sumusunod na row ay binabasa mula sa talahanayan. Kapag naproseso na ang buong talahanayan, matatanggap ng variable na data sa loob ang status true at mag-o-on ang berdeng LED.

Alerto o hindi?

Ang mga tampok alarm() at noalarm() nagsisilbi lamang upang magpadala ng mga mail, ginagawa ito ng una gamit ang isang bagong alarma. Ang function email.send() nagbibigay ng halaga totoo ibalik kung matagumpay ang pagpapadala at isang halaga hindi totoo kung may nangyaring mali. Gumamit ang konstruksiyon ng mga pagsubok para doon at ibinabalik ang variable ipinadala ang alarma ang katayuan totoo. Kapag na-clear ang alarma, ang function noalarm() ginanap sa parehong paraan. Kung ito ay matagumpay na tumakbo, ipinadala ang alarma ang katayuan hindi totoo. Bilang resulta, magpapadala lamang ng email kung magbabago ang status, gaano man kadalas pinapatakbo ang function na ito.

Tingnan mo bawat oras

Pagkatapos tumakbo getinfo() tinitingnan ng function na ito ang mga variable alarma ng pollen, datain at ipinadala ang alarma. Kung totoo ang unang dalawa, may alarma. Bukas ang pulang LED at kung hindi pa tapos, magpapadala ng alarm mail. Susundan ito ng pahinga ng isang oras. May datain ang halaga totoo at pollen alarma ang halaga hindi totoo, pagkatapos ay walang alarma at ang pulang LED ay lumabas. May ipinadala ang alarma ang halaga totoo (isang alarma na e-mail ay naipadala), pagkatapos ay isang e-mail ang susunod tungkol sa pagkansela ng alarma at ikaw ay makakatanggap ipinadala ang alarma ang katayuan hindi totoo. Mayroon ding isang oras na pahinga. May datain ang katayuan hindi totoo, pagkatapos ay nagkaroon ng problema habang kinukuha ang data. Ang berdeng LED ay lumabas upang ipahiwatig na ang system ay (pansamantalang) hindi gumagana at mayroong isang pag-pause ng isang oras, pagkatapos nito lakad() i-restart.

Mag-upload at subukan ang software

Kung ang file pollen_mail.ino na-customize sa Arduino development environment at nakakonekta ang NodeMCU module, maaaring magsimula ang pag-upload. Upang subukan kung gumagana ito, maaari kang pansamantalang magdagdag ng isang halaman (o puno) na tiyak na may pollen sa talahanayan sa sandaling iyon. Buksan ang serial monitor gamit ang Ctrl+Shift+M at i-upload ang program gamit ang Ctrl+U.

Pagkatapos makumpleto ang pag-upload, dapat mong makita kung paano unang kumokonekta ang module sa wireless network at pagkatapos ay sa web server. Pagkatapos ay susundan ang unang planta, ang naaangkop na halaga ng threshold at ang nasusukat na halaga. Pagkatapos ay ang mga halaga para sa mga sumusunod na halaman. Kung ang isa sa mga sinusukat na halaga ay lumampas sa threshold na itinakda para sa planta na iyon, lalabas ang mensahe Alerto ng pollen!, sinundan ng Mail na may pollen alert na ipinadala. Kung mananatili ang lahat ng value sa ibaba ng mga nakatakdang threshold, makikita mo lang Walang pollen alarm. Gumagana ba ang lahat sa ngayon? Pagkatapos ay maaari mong idiskonekta ang module.

Upang subukan maaari kang pansamantalang magdagdag ng isang halaman na ang pollen ay nasa talahanayan

Paghahanda

Una, mag-drill ng tatlong butas sa housing: dalawang 5 millimeters para sa LEDs at isang 10 millimeters para sa strain relief. Posible rin ang mas maliit, na may isang file na maaari mong gawin ang butas sa laki. I-install ang strain relief at tingnan kung magkasya ang mga LED. Idikit ang mga ito sa pabahay na may superglue. Ihinang din ang mga wire sa mga LED, upang maaari mong ihinang ang mga ito sa naka-print na circuit board sa ibang pagkakataon.

Pagbuo ng circuit

Tulad ng nabanggit, ang hardware ng proyektong ito ay limitado. Ang NodeMCU module, ang dalawang resistors at ang screw terminal ay nasa PCB. Magsimula sa pamamagitan ng pagbabarena ng 5 milimetro na mga butas sa mga sulok ng circuit board upang magkasya ang mga ito sa mga butas ng tornilyo ng pabahay.

Sa pamamagitan ng matalinong paglalagay ng mga bahagi, maaari silang maiugnay sa panghinang. Tandaan na (depende sa mga lane sa circuit board) ang module ay maaaring umupo nang crosswise sa housing at may maliit na margin! Samakatuwid, ilagay muna ang module sa circuit board at tingnan kung magkasya ito sa housing bago magpatuloy. Pagkatapos ay ayusin ang module sa pamamagitan ng pagyuko ng mga pin sa bawat sulok nang kaunti palabas sa ibaba, halimbawa sa patag na dulo ng isang distornilyador. Pagkatapos ay ilagay ang mga resistor malapit sa mga pin D5 at D6 at panghuli ang screw terminal sa kabilang panig ng module. Sa halimbawa, mayroon itong apat na koneksyon, ngunit dalawa lamang ang kailangan. Ang mga resistor at ang terminal ng tornilyo ay nananatili rin sa pinakamainam na lugar kung ibaluktot mo nang kaunti ang mga binti. Ngayon, gupitin ang lahat ng mga binti (kabilang ang mga nasa modyul) sa haba na humigit-kumulang dalawang milimetro gamit ang mga wire cutter at ihinang ang mga bahagi at pin na magkakabit. Ihinang din ang apat na sulok na pin ng module, kung saan isa lamang ang konektado sa terminal ng tornilyo. Para sa mga tip sa paghihinang, tingnan ang komprehensibong gabay na ito.

Kumonekta

Ang pagtatapos ay mas madali na ngayon kaysa dati, dahil salamat sa handa na pabahay, ang lahat ay nasa lugar na. Ang natitira na lang ay ikonekta ang mains adapter at ang mga LED. Upang magsimula, putulin ang bilog na plug mula sa cable. Kung gumagamit ka ng USB power adapter, putulin ang micro-USB connector sa USB cable. I-strip ang mga indibidwal na wire sa haba na humigit-kumulang kalahating sentimetro at lata ang mga dulo. Kung mayroon kang multimeter, maaari mong suriin ang polarity (plus at minus) ng mga koneksyon. Kung wala ka nito, makikita mo kung may imprint sa (isa sa) mga wire. Ang isa pang posibilidad ay upang ikonekta ang isang LED na may 220 ohm risistor sa isa sa mga binti. Ikonekta ang isa sa mga wire ng adapter sa risistor at ang isa pang wire sa libreng binti ng LED. Ang kawad na nakakonekta sa mahabang binti ng LED ay ang plus. Markahan ang thread na ito. Ipasok ang mga dulong nababalot ng lata sa pamamagitan ng strain relief mula sa labas at i-secure ang mga ito sa screw terminal sa PCB, nang naka-on ang positive wire. FIN dumating at ang mind board GND.

Panghuli, ikonekta ang mga LED gamit ang mga piraso ng wire, ang mga dulo nito ay iyong tint. Ikonekta ang mga cathode (maikling binti) ng parehong LED sa GND, ikonekta ang anode (mahabang binti) ng berdeng LED sa risistor sa pin D5 at ang anode ng pulang humantong sa risistor sa D6.

Commissioning

Ang circuit at ang programa ay nasubok na, kaya ang adaptor ay maaaring isaksak sa saksakan ng dingding. Walang serial monitor ngayon, kaya wala kang nakikitang anumang nangyayari sa simula. Ang berdeng LED ay dapat lumiwanag sa loob ng ilang segundo. Kung hindi matapos ang isang minuto, malamang na may problema sa Wi-Fi at kakailanganin mong ilipat ang circuit nang mas malapit sa isang access point.

Kung nalampasan ang pamantayan ng pollen na tinukoy sa code, mag-o-on din ang pulang LED at matatanggap mo ang email ng babala. Bagama't kinukuha ng programa ang data kada oras, magandang malaman na sa ngayon ay nire-refresh lang ito ng LUMC minsan sa isang linggo (sa Martes ng hapon). Ang katayuan ay nananatiling hindi nagbabago sa ibang mga araw, sa kasamaang-palad na ito ay hindi naiiba. Para sa kadahilanang iyon lamang, tiyak na inirerekomenda na huwag gawing masyadong mataas ang threshold, upang makatanggap ka ng babala sa tamang panahon.

Asahan natin ang isang taon na walang pollen na may kaunting mga email!

Kamakailang mga Post

$config[zx-auto] not found$config[zx-overlay] not found