Orodha ya maudhui:

Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4: 15 Hatua (na Picha)
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4: 15 Hatua (na Picha)

Video: Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4: 15 Hatua (na Picha)

Video: Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4: 15 Hatua (na Picha)
Video: ДЕТИ ЛЕДИБАГ И СУПЕР-КОТА 😱 Сказки на ночь от Маринетт Miraculous Ladybug & Cat Noir in real life 2024, Julai
Anonim
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa Hewa wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa Hewa wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4
Ufuatiliaji wa Ubora wa IoT wa bei ya chini kulingana na RaspberryPi 4

Santiago, Chile wakati wa dharura ya mazingira ya msimu wa baridi wana fursa ya kuishi katika moja ya nchi nzuri zaidi ulimwenguni, lakini kwa bahati mbaya, sio waridi wote. Chile wakati wa msimu wa baridi inakabiliwa sana na uchafuzi wa hewa, haswa kwa sababu ya vifaa vya chembe kama vumbi na moshi.

Kwa sababu ya hali ya hewa ya baridi, kusini, uchafuzi wa hewa ni kwa sababu ya wachunguzi wa kuni na huko Santiago (mji mkuu katikati ya nchi) iliyochanganywa na viwanda, magari, na hali yake ya kipekee ya kijiografia kati ya minyororo 2 mikubwa ya milima.

Siku hizi, uchafuzi wa hewa ni shida kubwa ulimwenguni kote na katika nakala hii tutachunguza jinsi ya kukuza mfuatiliaji wa bei ya chini wa bei ya juu wa kienyeji, kulingana na Raspberry Pi. Ikiwa una nia ya kuelewa zaidi juu ya ubora wa hewa, tafadhali tembelea Mradi wa "Kiwango cha Ubora wa Hewa Duniani".

Vifaa

  • Raspberry Pi 4
  • 1SDS011 - sensorer ya juu ya kugundua ubora wa hewa laser pm2.5
  • Sanduku la Plastiki

Hatua ya 1: Suala la Particulate (PM): Ni nini? Je! Inaingiaje Hewani?

Jambo la maana (PM): Ni nini? Je! Inaingiaje Hewani?
Jambo la maana (PM): Ni nini? Je! Inaingiaje Hewani?

Kwa hivyo, kuelewa uchafuzi wa mazingira au uchafuzi wa hewa, lazima tuchunguze chembe ambazo zinahusiana na hiyo, ambayo pia inajulikana kama chembe chembe. Kuangalia grafu kwenye sehemu iliyopita tunaweza kuona kwamba walitaja PM2.5 na PM10. Wacha tupe muhtasari wa haraka wa hiyo.

PM inasimama kwa chembechembe (pia huitwa uchafuzi wa chembe): neno kwa mchanganyiko wa chembe ngumu na matone ya kioevu yanayopatikana hewani. Chembechembe zingine, kama vile vumbi, uchafu, masizi, au moshi, ni kubwa au nyeusi ya kutosha kuonekana kwa macho. Nyingine ni ndogo sana zinaweza kupatikana tu kwa kutumia darubini ya elektroni. Chembe huja kwa ukubwa anuwai. Chembe zilizo chini ya au sawa na kipenyo cha micrometer 10 ni ndogo sana hivi kwamba zinaweza kuingia kwenye mapafu, ambayo inaweza kusababisha shida kubwa za kiafya. Micrometer kumi ni chini ya upana wa nywele moja ya mwanadamu.

Uchafuzi wa chembe ni pamoja na chembechembe zenye vumbi (PM10): chembe zinazoweza kuvuta pumzi, na kipenyo ambacho kwa jumla ni micrometer 10 na ndogo. Vyanzo ni pamoja na shughuli za kusagwa au kusaga na vumbi lililosababishwa na magari barabarani. Chembe nzuri (PM2.5): chembechembe nzuri zinazoweza kuvuta pumzi, na kipenyo ambacho kwa jumla ni kipenyo cha micrometer 2.5 na ndogo. Chembe nzuri hutengenezwa kutoka kwa kila aina ya mwako, pamoja na magari, mitambo, umeme wa makazi, moto wa misitu, uchomaji wa kilimo, na michakato kadhaa ya viwandani unaweza kupata zaidi juu ya jambo la chembe kwenye tovuti ya EPA: Wakala wa Ulinzi wa Mazingira wa Merika

Hatua ya 2: Kwa nini ni Muhimu Kujali juu ya Mambo Hayo ya Sehemu?

Kwa nini ni muhimu kujali juu ya mambo haya ya chembechembe?
Kwa nini ni muhimu kujali juu ya mambo haya ya chembechembe?

Kama ilivyoelezewa na GERARDO ALVARADO Z. katika kazi yake katika Chuo Kikuu cha Chile, tafiti za vipindi vya uchafuzi mwingi wa hewa katika Bonde la Meuse (Ubelgiji) mnamo 1930, Donora (Pennsylvania) mnamo 1948 na London mnamo 1952 vimekuwa vyanzo vya kwanza vilivyoandikwa ambavyo vinahusiana na vifo na uchafuzi wa chembe (Préndez, 1993). Maendeleo katika uchunguzi wa athari za uchafuzi wa hewa kwa afya ya watu imeamua kuwa hatari za kiafya husababishwa na chembe zinazoweza kuvuta pumzi, kulingana na kupenya na kuwekwa kwao katika sehemu tofauti za mfumo wa kupumua, na majibu ya Baiolojia kwa vifaa vilivyowekwa.

Chembe nene zaidi, karibu 5 μm, huchujwa na hatua ya pamoja ya cilia ya kifungu cha pua na mucosa ambayo inashughulikia cavity ya pua na trachea. Chembe zenye kipenyo kati ya 0.5 na 5 μm zinaweza kuwekwa kwenye bronchi na hata kwenye alveoli ya mapafu, hata hivyo, zinaondolewa na cilia ya bronchi na bronchioles baada ya masaa machache. Chembe ndogo kuliko 0.5 μm zinaweza kupenya kwa undani mpaka ziweke kwenye alveoli ya mapafu, iliyobaki kutoka wiki hadi miaka, kwani hakuna utaratibu wa usafirishaji wa mucociliary ambao unawezesha kuondoa. Takwimu ifuatayo inaonyesha kupenya kwa chembe kwenye mfumo wa upumuaji kulingana na saizi yao.

Kwa hivyo, kugundua aina zote mbili za chembe (PM2.5 na PM10) ni muhimu sana na habari njema ni kwamba zote zinasomeka na sensa rahisi na sio ghali, SDS011.

Hatua ya 3: Sensor ya Particle - SDS011

Sensorer ya Chembe - SDS011
Sensorer ya Chembe - SDS011
Sensorer ya Chembe - SDS011
Sensorer ya Chembe - SDS011

Ufuatiliaji wa Ubora wa Hewa unajulikana na sayansi iliyoanzishwa ambayo ilianza nyuma katika miaka ya 80. Wakati huo, teknolojia ilikuwa ndogo sana, na suluhisho lilitumika kupima hali ngumu ya uchafuzi wa hewa, ngumu na ghali sana.

Kwa bahati nzuri, siku hizi, na teknolojia za hivi karibuni na za kisasa, suluhisho zinazotumiwa kwa ufuatiliaji wa Ubora wa Hewa hazizidi kuwa sahihi tu bali pia kwa kasi katika kupima. Vifaa vinakuwa vidogo, na vina gharama nafuu zaidi kuliko hapo awali.

Katika nakala hii tutazingatia sensa ya chembe, ambayo inaweza kugundua kiwango cha vumbi hewani. Wakati kizazi cha kwanza kilikuwa na uwezo wa kugundua kiwango cha mwangaza, sensorer za hivi karibuni kama SDS011 kutoka INOVAFIT, iliyotolewa kutoka Chuo Kikuu cha Jinan (huko Shandong), sasa inaweza kugundua PM2.5 na PM10.

Na saizi yake, SDS011 labda ni moja ya sensorer bora kwa usahihi na bei (chini ya USD40.00).

  • Thamani zilizopimwa: PM2.5, PM10
  • Masafa: 0-999.9 μg / m³
  • Voltage ya usambazaji: 5V (4.7-5.3V)
  • Matumizi ya nguvu (kazi): 70mA ± 10mA
  • Matumizi ya nguvu (laser mode ya kulala na shabiki): <4mA
  • Joto la kuhifadhi: -20 hadi + 60C
  • Joto la kazi: -10 hadi + 50C
  • Unyevu (uhifadhi): Max. 90%
  • Unyevu (kazi): Max. 70% (condensation ya mvuke wa maji inadanganya usomaji)
  • Usahihi: 70% kwa 0.3μm na 98% kwa 0.5μm
  • Ukubwa: 71x70x23 mm
  • Vyeti: CE, FCC, RoHS

SD011 hutumia PCB kama upande mmoja wa kabati, ikiruhusu kupunguza gharama zake. Diode ya kupokea imewekwa upande wa PCB (hii ni lazima kwani kelele yoyote kati ya diode na LNA inapaswa kuepukwa). Laser ya emitter imewekwa kwenye sanduku la plastiki na imeunganishwa na PCB kupitia waya rahisi.

Kwa kifupi, Nova Fitness SDS011 ni sensor ya vumbi ya kitaalam ya laser. Shabiki aliyewekwa kwenye sensor huvuta hewa moja kwa moja. Sensorer hutumia kanuni ya kutawanya taa ya laser * kupima thamani ya chembe za vumbi zilizosimamishwa hewani. Sensor hutoa usahihi wa juu na usomaji wa kuaminika wa maadili ya PM2.5 na PM10. Mabadiliko yoyote katika mazingira yanaweza kuzingatiwa karibu wakati mfupi wa kujibu muda chini ya sekunde 10. Kitambuzi katika hali ya kawaida huripoti kusoma kwa muda wa sekunde 1.

* Kanuni ya Kutawanya Laser: Kueneza kwa nuru kunaweza kusababishwa wakati chembe zinapitia eneo la kugundua. Taa iliyotawanyika hubadilishwa kuwa ishara za umeme na ishara hizi zitapanuliwa na kusindika. Idadi na kipenyo cha chembe zinaweza kupatikana kwa uchambuzi kwa sababu muundo wa mawimbi ya ishara una uhusiano fulani na kipenyo cha chembe.

Hatua ya 4: Lakini Jinsi SDS011 Inaweza Kukamata Chembe hizo?

Lakini Jinsi SDS011 Inaweza Kukamata Chembe Hizo?
Lakini Jinsi SDS011 Inaweza Kukamata Chembe Hizo?
Lakini Jinsi SDS011 Inaweza Kukamata Chembe Hizo?
Lakini Jinsi SDS011 Inaweza Kukamata Chembe Hizo?

Kama ilivyosemwa hapo awali, kanuni inayotumiwa na SDS011 ni kutawanya nuru au bora, Dynamic Light Scattering (DLS), ambayo ni mbinu katika fizikia ambayo inaweza kutumika kuamua saizi ya usambazaji wa chembe ndogo katika kusimamishwa au polima katika suluhisho. Katika upeo wa DLS, kushuka kwa thamani kwa kawaida kunachambuliwa kwa njia ya nguvu au kazi ya upatanisho wa kiotomatiki (pia inajulikana kama utazamaji wa uunganishaji wa picha au kutawanyika kwa nuru). Katika uchambuzi wa kikoa cha wakati, kazi ya autocorrelation (ACF) kawaida huoza kuanzia wakati wa kuchelewa kwa sifuri, na mienendo ya haraka kwa sababu ya chembe ndogo husababisha upangaji wa haraka wa athari iliyotawanyika. Imeonyeshwa kuwa nguvu ya ACF ni mabadiliko ya Fourier ya wigo wa nguvu, na kwa hivyo vipimo vya DLS vinaweza kutekelezwa vizuri katika uwanja wa wigo.

Juu ya kutawanyika kwa nuru ya nguvu ya sampuli mbili: chembe kubwa (kama PM10) juu na chembe ndogo (kama PM2.5) chini. Na kuangalia ndani ya sensa yetu, tunaweza kuona jinsi kanuni ya kutawanya mwanga inatekelezwa.

Ishara ya umeme iliyonaswa kwenye diode huenda kwa Amplifier ya Kelele ya Chini na kutoka hapo kugeuzwa kuwa ishara ya dijiti kupitia ADC na kwenda nje kupitia UART.

Ili kujua zaidi juu ya SDS011 juu ya uzoefu halisi wa kisayansi, tafadhali angalia kazi ya 2018 ya Konstantinos et al, Maendeleo na Jaribio la Uwanjani la Mfumo wa Bei ya Bei ya Chini ya Ufuatiliaji Mkusanyiko wa PM2.5.

Hatua ya 5: Wakati wa maonyesho

Wakati wa maonyesho!
Wakati wa maonyesho!
Wakati wa maonyesho!
Wakati wa maonyesho!

Wacha tupumzike juu ya nadharia hii yote na tuangalie jinsi ya kupima maswala ya chembe kutumia Raspberry Pi na sensorer ya SDS011

Uunganisho wa HW kwa kweli ni rahisi sana. Sensor inauzwa na adapta ya USB ili kusanikisha data ya pato kutoka kwa pini zake 7 za UART na moja ya viunganisho vya kawaida vya USB vya RPi.

Mchoro wa SDS011:

  • Bandika 1 - haijaunganishwa
  • Bandika 2 - PM2.5: 0-999μg / m³; Pato la PWM
  • Bandika 3-5-5
  • Pini 4 - PM10: 0-999 μg / m³; Pato la PWM
  • Bandika 5 - GND
  • Bandika 6 - RX UART (TTL) 3.3V
  • Bandika 7 - TX UART (TTL) 3.3V

Kwa mafunzo haya, ninatumia kwa mara ya kwanza, Raspberry-Pi mpya kabisa 4. Lakini kwa kweli, mtindo wowote uliopita pia utafanya kazi vizuri.

Mara tu ukiunganisha sensa kwenye moja ya bandari za USB za RPi, moja kwa moja utaanza kusikiliza sauti ya shabiki wake. Kelele hiyo inakera kidogo, kwa hivyo labda unapaswa kuichomoa na kungojea hadi uwe umeweka na SW.

Mawasiliano kati ya sensa na RPi itakuwa kupitia itifaki ya serial. Maelezo juu ya itifaki hii yanaweza kupatikana hapa: Itifaki ya Udhibiti wa Sensor ya Vumbi ya Laser V1.3. Lakini kwa mradi huu, bora ni kutumia kiwambo cha chatu ili kurahisisha nambari itakayotengenezwa. Unaweza kuunda kiolesura chako au kutumia zingine ambazo zinapatikana kwenye wavuti, kama ya Frank Heuer au ya Ivan Kalchev. Tutatumia ya mwisho, ambayo ni rahisi sana na inafanya kazi vizuri (unaweza kupakua hati ya sds011.py kutoka kwa GitHub au mgodi).

Faili sds011.py lazima iwe kwenye saraka ile ile ambapo unaunda hati yako.

Wakati wa awamu ya maendeleo, nitatumia Jupyter Notebook, lakini unaweza kutumia IDE yoyote unayopenda (Thonny au Geany, kwa mfano, ambazo ni sehemu ya kifurushi cha Raspberry Pi Debian zote ni nzuri sana).

Anza kuagiza sds011, na uunda mfano wako wa sensa. SDS011 hutoa njia ya kusoma kutoka kwa sensor kutumia UART.

kutoka kuagiza sds011 *

sensor = SDS011 ("/ dev / ttyUSB0")

Unaweza kuwasha au kuzima sensor yako na amri ya kulala:

pmt_2_5, pmt_10 = swala ya sensa ()

Subiri angalau sekunde 10 kwa utulivu kabla ya vipimo na angalau sekunde 2 ili kuanza mpya (angalia nambari hapo juu).

Na hii ndio yote unayohitaji kujua kwa suala la SW kutumia sensor. Lakini hebu tuende zaidi juu ya Udhibiti wa Ubora wa Hewa! Mwanzoni mwa nakala hii, ikiwa umechunguza tovuti ambazo zinatoa habari juu ya jinsi hewa ilivyo nzuri au mbaya, unapaswa kutambua kwamba rangi zinahusishwa na maadili hayo. Kila rangi ni Kielelezo. Inayojulikana zaidi ni AQI (Kiwango cha Ubora wa Hewa), inayotumika Amerika na nchi zingine kadhaa.

Hatua ya 6: Kielelezo cha Ubora wa Hewa - AQI

Kiwango cha Ubora wa Hewa - AQI
Kiwango cha Ubora wa Hewa - AQI
Kiwango cha Ubora wa Hewa - AQI
Kiwango cha Ubora wa Hewa - AQI
Kiwango cha Ubora wa Hewa - AQI
Kiwango cha Ubora wa Hewa - AQI

AQI ni faharisi ya kuripoti ubora wa hewa wa kila siku. Inakuambia jinsi hewa yako ilivyo safi au iliyochafuliwa, na ni athari gani zinazohusiana za kiafya zinaweza kuwa wasiwasi kwako. AQI inazingatia athari za kiafya unazoweza kupata ndani ya masaa machache au siku chache baada ya kupumua hewa iliyochafuliwa.

EPA (Wakala wa Ulinzi wa Mazingira wa Merika), kwa mfano, huhesabu AQI sio tu kwa uchafuzi wa chembe (PM2.5 na PM10) lakini pia kwa vichafuzi vingine vikuu vya hewa vilivyodhibitiwa na Sheria ya Hewa Safi: ozoni ya kiwango cha chini, kaboni monoksidi, dioksidi ya sulfuri, na dioksidi ya nitrojeni. Kwa kila moja ya vichafuzi hivi, EPA imeanzisha viwango vya kitaifa vya ubora wa hewa kulinda afya ya umma. Tazama picha hapo juu na maadili ya AQI, rangi na ujumbe wa afya unaohusishwa.

Kama ilivyoonyeshwa kabla ya maadili na rangi hizo za AQI zinahusiana na kila moja ya mawakala vichafu, lakini jinsi ya kuhusisha maadili yanayotokana na sensorer nao? Jedwali la ziada linawaunganisha wote kama ilivyoonyeshwa hapo juu.

Lakini kwa kweli, haina maana kutumia meza kama hiyo. Mwishowe, ni hesabu rahisi ya hesabu ambayo hufanya hesabu. Kwa hilo, tutaingiza maktaba kubadilisha kati ya thamani ya AQI na mkusanyiko unaochafua (µg / m³): python-aqi.

Sakinisha maktaba ukitumia PIP na ujaribu (angalia nambari hapo juu)

pip kufunga python-aqi

Na vipi Chile?

Nchini Chile fahirisi kama hiyo inatumiwa, ICAP: Kiwango cha Ubora wa Hewa kwa Chembe zinazoweza kupumua. Amri Kuu 59 ya Machi 16, 1998, ya Katibu Mkuu Wizara ya Urais wa Jamhuri, inaanzisha katika kifungu chake cha 1, barua g) kwamba viwango vinavyoelezea ICA ya nyenzo inayoweza kupumua, ICAP.

Maadili yatatofautiana sawasawa kati ya sehemu, thamani 500 italingana na thamani ya kikomo ambayo kutakuwa na hatari kwa idadi ya watu ikifunuliwa na viwango hivi. Kulingana na maadili ya ICAP, vikundi vimeanzisha ambavyo vinahitimu viwango vya mkusanyiko wa MP10 ambao watu walifunuliwa.

Hatua ya 7: Ingia Takwimu Kijijini

Takwimu za Kuhifadhi Magogo Kijijini
Takwimu za Kuhifadhi Magogo Kijijini
Takwimu za Kuhifadhi Magogo Kijijini
Takwimu za Kuhifadhi Magogo Kijijini
Takwimu za Kuhifadhi Magogo Kijijini
Takwimu za Kuhifadhi Magogo Kijijini

Kwa wakati huu, tuna zana zote za kukamata data kutoka kwa sensa na pia kuzigeuza kwa "thamani inayoweza kusomeka" zaidi, kwamba ni faharisi ya AQI.

Wacha tuunde kazi ya kukamata maadili hayo. Tutachukua maadili 3 kwa mlolongo tukichukua wastani kati yao:

def get_data (n = 3):

sensa. lala (lala = Uongo) pmt_2_5 = 0 pmt_10 = saa 0. lala (10) kwa i katika anuwai (n): x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1 kulala) (saa 2 jioni Hapo juu unaweza kuona matokeo ya mtihani. Wacha pia tufanye kazi ya kubadilisha maadili ya nambari ya PM katika faharisi ya AQI

def conv_aqi (pmt_2_5, pmt_10):

aqi_2_5 = aqi.to_iaqi (a. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. juu ya matokeo ya mtihani na kazi zote mbili. Lakini nini cha kufanya nao? Jibu rahisi zaidi ni kuunda kazi ya kuhifadhi data zilizonaswa, kuzihifadhi kwenye faili ya hapa

def save_log ():

na wazi ("NJIA YAKO HAPA / air_quality.csv", "a") kama logi: dt = datetime.now () log.write ("{}, {}, {}, {}, {} n". fomati (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close () Kwa kitanzi kimoja, unaweza kuingia data kwenye besi za kawaida kwenye faili yako ya karibu, kwa mfano, kila dakika

wakati (Kweli):

pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) jaribu: save_log () isipokuwa: chapa ("[INFO] Kukosa data ya ukataji magogo") muda. kulala (60) Kila sekunde 60, muhuri wa muda pamoja na data "zitaambatishwa" kwa faili hii, kama tunaweza kuona hapo juu.

Hatua ya 8: Kutuma Takwimu kwa Huduma ya Wingu

Kutuma Takwimu kwa Huduma ya Wingu
Kutuma Takwimu kwa Huduma ya Wingu

Kwa wakati huu, tumejifunza jinsi ya kunasa data kutoka kwa sensorer, kuwaokoa kwenye faili ya CSV ya hapa. Sasa, ni wakati wa kuona jinsi ya kutuma data hizo kwenye jukwaa la IoT. Kwenye mafunzo haya, tutatumia ThingSpeak.com.

"ThingSpeak ni programu wazi ya Wavuti ya Vitu (IoT) ya kuhifadhi na kupata data kutoka kwa vitu, kwa kutumia REST na API za MQTT. ThingSpeak inawezesha uundaji wa matumizi ya uvunaji wa sensa, programu za ufuatiliaji wa eneo, na mtandao wa kijamii wa vitu na sasisho za hali."

Kwanza, lazima uwe na akaunti kwenye ThinkSpeak.com. Ifuatayo, fuata maagizo ya kuunda Kituo, ukizingatia Kitambulisho cha Kituo na Andika Kitufe cha API.

Wakati wa kuunda kituo, lazima pia ufafanue ni maelezo gani yatapakiwa kwa kila uwanja 8, kama inavyoonyeshwa hapo juu (kwa upande wetu ni 4 tu ndio zitatumika).

Hatua ya 9: Itifaki ya MQTT na Uunganisho wa ThingSpeak

Itifaki ya MQTT na Uunganisho wa ThingSpeak
Itifaki ya MQTT na Uunganisho wa ThingSpeak

MQTT ni usanifu wa kuchapisha / kujisajili ambao ulibuniwa haswa kuunganisha upelekaji na vifaa vyenye nguvu kwa nguvu kwenye mitandao isiyo na waya. Ni itifaki rahisi na nyepesi inayoendesha soketi za TCP / IP au Soketi za Wavuti. MQTT juu ya Wavuti inaweza kulindwa na SSL. Usanifu wa kuchapisha / usajili unawezesha ujumbe kusukumwa kwa vifaa vya mteja bila kifaa kuhitaji kuendelea kuchafua seva.

Dalali wa MQTT ndiye kituo kikuu cha mawasiliano, na inasimamia kupeleka ujumbe wote kati ya watumaji na wapokeaji halali. Mteja ni kifaa chochote kinachounganisha na broker na anaweza kuchapisha au kujisajili kwenye mada kupata habari. Mada ina habari ya uelekezaji kwa broker. Kila mteja anayetaka kutuma ujumbe anazichapisha kwenye mada fulani, na kila mteja anayetaka kupokea ujumbe anajiunga na mada fulani. Dalali hutoa ujumbe wote na mada inayofanana kwa wateja wanaofaa.

ThingSpeak ™ ina broker ya MQTT kwenye URL mqtt.thingspeak.com na bandari 1883. Dalali ya ThingSpeak inasaidia MQTT kuchapisha na MQTT kujisajili.

Kwa upande wetu, tutatumia MQTT Chapisha.

Hatua ya 10: MQTT Chapisha

MQTT Chapisha
MQTT Chapisha

Kwa kuanzia, wacha tuweke Eclipse Paho MQTT Python maktaba ya mteja, ambayo hutumia matoleo ya 3.1 na 3.1.1 ya itifaki ya MQTT

Sudo pip kufunga paho-mqtt

Ifuatayo, wacha tuingize maktaba ya paho:

kuagiza paho.mqtt.chapisha kama chapisha

na kuanzisha kituo cha Thingspeak na itifaki ya MQTT. Njia hii ya unganisho ni rahisi na inahitaji rasilimali za mfumo mdogo.

channelID = "ID YAKO YA CHANNEL"

apiKey = "MUHIMU WAKO WA KUANDIKA" mada = "vituo /" + channelID + "/ chapisha /" + apiKey mqttHost = "mqtt.thingspeak.com" Sasa lazima tufafanue "mzigo wetu wa malipo"

tPayload = "shamba1 =" + str (pmt_2_5) + "& field2 =" + str (aqi_2_5) + "& field3 =" + str (pmt_10) + "& field4 =" + str (aqi_10)

Na ndio hivyo! tuko tayari kuanza kutuma data kwenye wingu! Wacha tuandike kazi ya kitanzi kilichotangulia pia kujumuisha sehemu yake ya ThingSpeak.

# Kutuma data zote kwa ThingSpeak kila dakika 1

wakati (Kweli): pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) tPayload = "field1 =" + str (pmt_2_5) + "& field2 =" + str (aqi_2_5) + "& field3 =" + str + INFO] Kushindwa kutuma data ") saa. Kulala (60) Ikiwa kila kitu ni sawa, lazima uone data pia ikionekana kwenye kituo chako kwenye thingspeak.com kama inavyoonyeshwa hapo juu.

Hatua ya 11: Hati ya Mwisho

Ni muhimu kusema kwamba Jupyter Notebook ni zana nzuri sana kwa maendeleo na ripoti, lakini hapana kuunda nambari ya kuweka katika uzalishaji. Kile unapaswa kufanya sasa ni kuchukua sehemu inayofaa ya nambari na uunda.py script na uiendeshe kwenye terminal yako.

Kwa mfano, "ts_air_quality_logger.py", kwamba unapaswa kukimbia na amri:

chatu 3 ts_air_quality_logger.py

Hati hii pamoja na Jarida ya Jupyter na sds011.py zinaweza kupatikana katika hazina yangu huko RPi_Air_Quality_Sensor.

Kumbuka kuwa hati hii inawezekana kwa majaribio tu. Bora sio kutumia ucheleweshaji ndani ya kitanzi cha mwisho (ambacho kiliweka nambari katika "pause"), badala yake tumia vipima muda. Au kwa matumizi halisi, bora sio kutumia kitanzi, kuwa na Linux iliyowekwa kutekeleza script mara kwa mara na crontab.

Hatua ya 12: Kuchukua Monitor nje

Kuchukua Monitor nje
Kuchukua Monitor nje
Kuchukua Monitor nje
Kuchukua Monitor nje
Kuchukua Monitor nje
Kuchukua Monitor nje
Kuchukua Monitor nje
Kuchukua Monitor nje

Mara tu mfuatiliaji wangu wa Ubora wa Raspberry Pi Air ulipokuwa ukifanya kazi, nilikusanya RPi ndani ya sanduku la plastiki, nikiweka sensorer nje na kuiweka nje ya nyumba yangu.

Uzoefu wawili ulifanywa.

Hatua ya 13: Mwako wa Magari ya Petroli

Mwako wa Magari ya Petroli
Mwako wa Magari ya Petroli
Mwako wa Magari ya Petroli
Mwako wa Magari ya Petroli

Sensor iliwekwa karibu 1m kutoka upeo wa gesi wa Lambretta, na gari lake likawashwa. Pikipiki ilikuwa ikikimbia kwa dakika kadhaa na kuzima. Kutoka kwa faili ya logi hapo juu, matokeo ambayo nilipata. Kuvutia kudhibitisha kuwa PM2.5 ilikuwa chembe hatari zaidi ambayo ilitokana na motor.

Hatua ya 14: Kuungua kwa kuni

Kuungua kwa kuni
Kuungua kwa kuni
Kuungua kwa kuni
Kuungua kwa kuni

Kuangalia faili ya logi, tunatambua kuwa data ya sensorer ilikuwa ya muda mfupi "nje ya Range" na haikunaswa vizuri na Maktaba ya uongofu ya AQI, kwa hivyo nilibadilisha nambari ya awali kuishughulikia:

def conv_aqi (pmt_2_5, pmt_10):

jaribu: aqi_2_5 = aqi.to_iaqi (a. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. Hali hii inaweza kutokea kwenye uwanja, ambayo ni sawa. Kumbuka kwamba kwa kweli, unapaswa kutumia wastani wa kusonga kupata AQI (angalau kila saa, lakini kawaida kila siku).

Hatua ya 15: Hitimisho

Hitimisho
Hitimisho

Kama kawaida, natumahi mradi huu unaweza kusaidia wengine kupata njia yao katika ulimwengu wa kusisimua wa Sayansi ya Elektroniki na Takwimu!

Kwa maelezo na nambari ya mwisho, tafadhali tembelea duka langu la GitHub: RPi_Air_Quality_Sensor.

Saludos kutoka kusini mwa ulimwengu!

Tukutane kwenye mafunzo yangu yafuatayo!

Asante, Marcelo

Ilipendekeza: