Përmbajtje:

Një monitor i cilësisë së ajrit IoT me kosto të ulët bazuar në RaspberryPi 4: 15 hapa (me fotografi)
Një monitor i cilësisë së ajrit IoT me kosto të ulët bazuar në RaspberryPi 4: 15 hapa (me fotografi)

Video: Një monitor i cilësisë së ajrit IoT me kosto të ulët bazuar në RaspberryPi 4: 15 hapa (me fotografi)

Video: Një monitor i cilësisë së ajrit IoT me kosto të ulët bazuar në RaspberryPi 4: 15 hapa (me fotografi)
Video: The Choice is Ours (2016) Official Full Version 2024, Korrik
Anonim
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4
Një monitor i cilësisë së ajrit IoT me kosto të ulët i bazuar në RaspberryPi 4

Santiago, Kili gjatë një emergjence mjedisore dimërore kanë privilegjin të jetojnë në një nga vendet më të bukura në botë, por për fat të keq, nuk janë të gjitha trëndafila. Kili gjatë stinës së dimrit vuan shumë nga ndotja e ajrit, kryesisht për shkak të materialeve të grimcave si pluhuri dhe smogu.

Për shkak të motit të ftohtë, në jug, ndotja e ajrit është kryesisht për shkak të kalefaktorëve me bazë druri dhe në Santiago (kryeqyteti kryesor në qendër të vendit) të përzier nga industritë, makinat dhe situata e tij unike gjeografike midis 2 zinxhirëve të mëdhenj të maleve.

Në ditët e sotme, ndotja e ajrit është një problem i madh në të gjithë botën dhe në këtë artikull ne do të eksplorojmë se si të zhvillojmë një monitor të ulët të shtrenjtë të Cilësisë së Ajrit të bërë në shtëpi, bazuar në një Raspberry Pi. Nëse jeni të interesuar të kuptoni më shumë rreth cilësisë së ajrit, ju lutemi vizitoni Projektin "Indeksi i Cilësisë së Ajrit Botëror".

Furnizimet

  • Mjedër Pi 4
  • 1SDS011 - Sensor lazer me saktësi të lartë PM2.5 për zbulimin e cilësisë së ajrit
  • Kuti plastike

Hapi 1: Çështja e grimcuar (PM): Çfarë është ajo? Si del në ajër?

Çështja e grimcave (PM): Çfarë është ajo? Si del në ajër?
Çështja e grimcave (PM): Çfarë është ajo? Si del në ajër?

Pra, për të kuptuar ndotjen ose ndotjen e ajrit, ne duhet të studiojmë grimcat që lidhen me atë, e cila njihet edhe si grimca. Duke parë grafikët në pjesën e mëparshme, mund të vërejmë se ato përmendën PM2.5 dhe PM10. Le të bëjmë një përmbledhje të shpejtë të kësaj.

PM qëndron për grimcat (e quajtur edhe ndotja e grimcave): termi për një përzierje të grimcave të ngurta dhe pikave të lëngshme që gjenden në ajër. Disa grimca, të tilla si pluhuri, papastërtia, bloza ose tymi, janë mjaft të mëdha ose të errëta për tu parë me sy të lirë. Të tjerët janë aq të vegjël saqë mund të zbulohen vetëm duke përdorur një mikroskop elektronik. Grimcat vijnë në një gamë të gjerë madhësish. Grimcat më të vogla ose të barabarta me 10 mikrometra në diametër janë aq të vogla sa mund të futen në mushkëri, duke shkaktuar potencialisht probleme serioze shëndetësore. Dhjetë mikrometra është më pak se gjerësia e një qime të vetme njerëzore.

Ndotja e grimcave përfshin grimcat e pluhurit të trashë (PM10): grimca të thithshme, me diametër që janë përgjithësisht 10 mikrometra dhe më të vegjël. Burimet përfshijnë operacionet e shtypjes ose bluarjes dhe pluhurin e trazuar nga automjetet në rrugë. Grimcat e imëta (PM2.5): grimca të imëta për thithje, me diametra që janë përgjithësisht 2.5 mikrometra dhe më të vegjël. Grimcat e imta prodhohen nga të gjitha llojet e djegies, përfshirë automjetet motorike, termocentralet, djegia e drurit të banimit, zjarret në pyje, djegia bujqësore dhe disa procese industriale që mund të gjeni më shumë rreth grimcave në faqen e EPA: Agjencia e Shteteve të Bashkuara për Mbrojtjen e Mjedisit

Hapi 2: Pse është e rëndësishme të kujdeseni për ato çështje të grimcuara?

Pse është e rëndësishme të kujdeseni për ato çështje të grimcuara?
Pse është e rëndësishme të kujdeseni për ato çështje të grimcuara?

Siç përshkruhet nga GERARDO ALVARADO Z. në punën e tij në Universitetin e Kilit, studimet e episodeve të ndotjes së lartë të ajrit në Luginën Meuse (Belgjikë) në 1930, Donora (Pensilvania) në 1948 dhe Londër në 1952 kanë qenë burimet e para të dokumentuara që lidheshin me vdekshmërinë me ndotje të grimcave (Préndez, 1993). Përparimet në hetimin e efekteve të ndotjes së ajrit në shëndetin e njerëzve kanë përcaktuar se rreziqet për shëndetin shkaktohen nga grimcat që thithin, në varësi të depërtimit dhe depozitimit të tyre në seksione të ndryshme të sistemit të frymëmarrjes dhe përgjigjes Biologjike ndaj materialeve të depozituara.

Grimcat më të trasha, rreth 5 μm, filtrohen nga veprimi i përbashkët i qerpikëve të kalimit të hundës dhe mukozës që mbulon zgavrën e hundës dhe trakenë. Grimcat me diametër midis 0.5 dhe 5 μm mund të depozitohen në bronke dhe madje edhe në alveolat pulmonare, megjithatë, ato eliminohen nga qerpikët e bronkeve dhe bronkiolave pas disa orësh. Grimcat më të vogla se 0.5 μm mund të depërtojnë thellë derisa të depozitohen në alveolat pulmonare, duke mbetur nga javë në vite, pasi nuk ka asnjë mekanizëm transporti mukociliar që lehtëson eliminimin. Figura e mëposhtme tregon depërtimin e grimcave në sistemin e frymëmarrjes në varësi të madhësisë së tyre.

Pra, të dallosh të dy llojet e grimcave (PM2.5 dhe PM10) janë shumë të rëndësishme dhe lajmi i mirë është se të dyja janë të lexueshme nga një sensor i thjeshtë dhe jo i shtrenjtë, SDS011.

Hapi 3: Sensori i grimcave - SDS011

Sensori i grimcave - SDS011
Sensori i grimcave - SDS011
Sensori i grimcave - SDS011
Sensori i grimcave - SDS011

Monitorimi i cilësisë së ajrit është një shkencë e mirënjohur dhe e vendosur e cila filloi që në vitet '80. Në atë kohë, teknologjia ishte mjaft e kufizuar dhe zgjidhja e përdorur për të përcaktuar sasinë e kompleksit të ndotjes së ajrit, e rëndë dhe me të vërtetë e shtrenjtë.

Për fat të mirë, në ditët e sotme, me teknologjitë më të fundit dhe moderne, zgjidhjet e përdorura për monitorimin e Cilësisë së Ajrit po bëhen jo vetëm më të sakta, por edhe më të shpejta në matje. Pajisjet po bëhen më të vogla dhe kushtojnë shumë më të përballueshme se kurrë më parë.

Në këtë artikull ne do të përqëndrohemi në një sensor grimcash, që mund të zbulojë sasinë e pluhurit në ajër. Ndërsa gjenerata e parë ishte në gjendje të zbulonte sasinë e errësirës, sensorët më të fundit si SDS011 nga INOVAFIT, një spin-off nga Universiteti i Jinan (në Shandong), tani mund të zbulojnë PM2.5 dhe PM10.

Me madhësinë e tij, SDS011 është ndoshta një nga sensorët më të mirë për sa i përket saktësisë dhe çmimit (më pak se 40.00 USD).

  • Vlerat e matura: PM2.5, PM10
  • Gama: 0–999.9 μg /m³
  • Tensioni i furnizimit: 5V (4.7-5.3V)
  • Konsumi i energjisë (punë): 70mA ± 10mA
  • Konsumi i energjisë (lazer dhe ventilator në modalitetin e gjumit): <4mA
  • Temperatura e ruajtjes: -20 deri +60C
  • Temperatura e punës: -10 deri +50C
  • Lagështia (ruajtja): Maks. 90%
  • Lagështia (puna): Maks. 70% (kondensimi i avullit të ujit falsifikon leximet)
  • Saktësia: 70% për 0.3μm dhe 98% për 0.5μm
  • Madhësia: 71x70x23 mm
  • Certifikimi: CE, FCC, RoHS

SD011 përdor PCB si njëra anë e zorrës, duke lejuar uljen e kostos së saj. Dioda e receptorit është montuar në anën e PCB (kjo është e detyrueshme pasi çdo zhurmë midis diodës dhe LNA duhet të shmanget). Lazeri emetues është montuar në kutinë plastike dhe lidhet me PCB nëpërmjet një teli fleksibël.

Me pak fjalë, Nova Fitness SDS011 është një sensor profesional pluhuri lazer. Tifozi i montuar në sensor thith automatikisht ajrin. Sensori përdor një parim të shpërndarjes së dritës lazer* për të matur vlerën e grimcave të pluhurit të pezulluara në ajër. Sensori siguron lexime të saktësisë së lartë dhe të besueshme të vlerave PM2.5 dhe PM10. Çdo ndryshim në mjedis mund të vërehet pothuajse menjëherë në një kohë të shkurtër përgjigjeje nën 10 sekonda. Sensori në modalitetin standard raporton leximin me një interval prej 1 sekondash.

* Parimi i Shpërndarjes me Laser: Shpërndarja e dritës mund të shkaktohet kur grimcat kalojnë nëpër zonën e zbulimit. Drita e shpërndarë shndërrohet në sinjale elektrike dhe këto sinjale do të amplifikohen dhe përpunohen. Numri dhe diametri i grimcave mund të merret me anë të analizës sepse forma e valës së sinjalit ka lidhje të caktuara me diametrin e grimcave.

Hapi 4: Por si SDS011 mund t'i kapë ato grimca?

Por si SDS011 mund t'i kapë ato grimca?
Por si SDS011 mund t'i kapë ato grimca?
Por si SDS011 mund t'i kapë ato grimca?
Por si SDS011 mund t'i kapë ato grimca?

Siç u komentua më parë, parimi i përdorur nga SDS011 është shpërndarja e dritës ose më mirë, Dynamic Light Scattering (DLS), e cila është një teknikë në fizikë që mund të përdoret për të përcaktuar profilin e shpërndarjes së madhësisë së grimcave të vogla në pezullim ose polimere në tretësirë. Në fushën e DLS, luhatjet kohore zakonisht analizohen me anë të intensitetit ose funksionit të auto-korrelacionit foton (i njohur gjithashtu si spektroskopia e korrelacionit foton ose shpërndarja thuajse-elastike e dritës). Në analizën e fushës kohore, funksioni i autokorrelacionit (ACF) zakonisht prishet duke filluar nga koha e vonesës zero, dhe dinamika më e shpejtë për shkak të grimcave më të vogla çon në dekorrelacion më të shpejtë të gjurmës së intensitetit të shpërndarë. Shtë treguar se intensiteti ACF është transformimi Fourier i spektrit të fuqisë, dhe për këtë arsye matjet DLS mund të kryhen njësoj mirë në fushën spektrale.

Mbi një shpërndarje hipotetike të dritës dinamike të dy mostrave: Grimca më të mëdha (si PM10) në krye dhe grimca më të vogla (si PM2.5) në pjesën e poshtme. Dhe duke parë brenda sensorit tonë, ne mund të shohim se si zbatohet parimi i shpërndarjes së dritës.

Sinjali elektrik i kapur në diodë shkon në Amplifikatorin e Zhurmës së Ulët dhe nga ai konvertohet në një sinjal dixhital përmes një ADC dhe në jashtë përmes një UART.

Për të ditur më shumë rreth SDS011 mbi një përvojë të vërtetë shkencore, ju lutemi hidhini një sy punës së Konstantinos et al në 2018, Zhvillimi dhe Testimi në terren i Sistemit Portativ me Kosto të Ulët për Monitorimin e Përqendrimeve PM2.5.

Hapi 5: Koha e shfaqjes

Koha e shfaqjes!
Koha e shfaqjes!
Koha e shfaqjes!
Koha e shfaqjes!

Le të bëjmë një pushim mbi të gjithë këtë teori dhe të përqëndrohemi në mënyrën e matjes së grimcave duke përdorur një Raspberry Pi dhe sensorin SDS011

Lidhja HW është në fakt shumë e thjeshtë. Sensori shitet me një përshtatës USB për të ndërlidhur të dhënat e daljes nga 7 kunjat e tij UART me një nga lidhësit standardë USB të RPi.

SDS011 pinout:

  • Pin 1 - nuk është e lidhur
  • Pin 2 - PM2.5: 0–999μg/m³; Dalja PWM
  • Pin 3–5V
  • Pin 4 - PM10: 0–999 μg/m³; Dalja PWM
  • Pin 5 - GND
  • Pin 6 - RX UART (TTL) 3.3V
  • Pin 7 - TX UART (TTL) 3.3V

Për këtë tutorial, unë jam duke përdorur për herë të parë, një Raspberry-Pi 4. të ri, por natyrisht, çdo model i mëparshëm gjithashtu do të funksionojë mirë.

Sapo të lidhni sensorin në një nga portat USB RPi, automatikisht do të filloni të dëgjoni tingullin e ventilatorit të tij. Zhurma është pak e bezdisshme, kështu që ndoshta duhet ta shkëputni nga priza dhe të prisni derisa të keni gati gjithçka me SW.

Komunikimi midis sensorit dhe RPi do të bëhet përmes një protokolli serik. Detajet në lidhje me këtë protokoll mund të gjenden këtu: Protokolli i Kontrollit të Sensorit të Pluhurit Laser V1.3. Por për këtë projekt, më e mira është të përdorni një ndërfaqe python për të thjeshtuar kodin që do të zhvillohet. Ju mund të krijoni ndërfaqen tuaj ose të përdorni disa që janë në dispozicion në internet, si të Frank Heuer ose Ivan Kalchev. Ne do të përdorim të fundit, i cili është shumë i thjeshtë dhe funksionon mirë (mund të shkarkoni skriptin sds011.py nga GitHub ose imi).

Skedari sds011.py duhet të jetë në të njëjtën drejtori ku krijoni skriptin tuaj.

Gjatë fazës së zhvillimit, unë do të përdor një Fletore Jupyter, por ju mund të përdorni çdo IDE që ju pëlqen (Thonny ose Geany, për shembull, që janë pjesë e paketës Raspberry Pi Debian janë të dyja shumë të mira).

Filloni të importoni sds011 dhe krijoni shembullin e sensorit tuaj. SDS011 siguron një metodë për të lexuar nga sensori duke përdorur një UART.

nga importi sds011 *

sensor = SDS011 ("/dev/ttyUSB0")

Mund të ndizni ose fikni sensorin tuaj me komandën e gjumit:

pmt_2_5, pmt_10 = sensor.query ()

Prisni të paktën 10 sekonda për stabilizim para matjeve dhe të paktën 2 sekonda për të filluar një të re (shihni kodin më lart).

Dhe kjo është gjithçka që duhet të dini për sa i përket SW për të përdorur sensorin. Por le të shkojmë më thellë në Kontrollin e Cilësisë së Ajrit! Në fillim të këtij artikulli, nëse keni eksploruar faqet që japin informacion se sa i mirë apo i keq është ajri, duhet të kuptoni që ngjyrat lidhen me ato vlera. Çdo ngjyrë është një Indeks. Më i njohuri prej tyre është AQI (Indeksi i Cilësisë së Ajrit), i përdorur në SHBA dhe disa vende të tjera.

Hapi 6: Indeksi i Cilësisë së Ajrit - AQI

Indeksi i Cilësisë së Ajrit - AQI
Indeksi i Cilësisë së Ajrit - AQI
Indeksi i Cilësisë së Ajrit - AQI
Indeksi i Cilësisë së Ajrit - AQI
Indeksi i Cilësisë së Ajrit - AQI
Indeksi i Cilësisë së Ajrit - AQI

AQI është një indeks për raportimin e cilësisë ditore të ajrit. Ai ju tregon se sa i pastër ose i ndotur është ajri juaj, dhe cilat efekte shoqëruese shëndetësore mund të jenë shqetësuese për ju. AQI fokusohet në efektet shëndetësore që mund të përjetoni brenda pak orësh ose ditësh pasi merrni frymë ajër të ndotur.

EPA (Agjencia e Shteteve të Bashkuara për Mbrojtjen e Mjedisit), për shembull, llogarit AQI jo vetëm për ndotjen e grimcave (PM2.5 dhe PM10), por edhe për ndotësit e tjerë kryesorë të ajrit të rregulluar nga Akti i Ajrit të Pastër: ozoni i nivelit tokësor, monoksidi i karbonit, dioksid squfuri dhe dioksid nitrogjeni. Për secilin prej këtyre ndotësve, EPA ka krijuar standarde kombëtare të cilësisë së ajrit për të mbrojtur shëndetin publik. Shikoni foton e mësipërme me vlerat AQI, ngjyrat dhe mesazhet shëndetësore të lidhura.

Siç u komentua më parë ato vlera dhe ngjyra AQI janë të lidhura me secilin prej agjentëve ndotës, por si të shoqërohen vlerat e krijuara nga sensorët me to? Një tabelë shtesë i lidh të gjitha siç tregohet më sipër.

Por sigurisht, nuk ka kuptim të përdorësh një tryezë të tillë. Në fund, është një algoritëm i thjeshtë matematikor që bën llogaritjen. Për këtë, ne do të importojmë bibliotekën për ta kthyer midis vlerës AQI dhe përqendrimit të ndotësve (µg/m³): python-aqi.

Instaloni bibliotekën duke përdorur PIP dhe bëni një test (shihni kodin më lart)

pip instaloni python-aqi

Po në lidhje me Kilin?

Në Kili përdoret një indeks i ngjashëm, ICAP: Indeksi i Cilësisë së Ajrit për Grimcat Frymëmarrëse. Një Dekret Suprem 59 i 16 marsit 1998, i Sekretarit të Përgjithshëm të Ministrisë së Presidencës së Republikës, përcakton në nenin e tij 1, shkronja g) që nivelet që përcaktojnë ICA për materialin e grimcave të frymëmarrjes, ICAP.

Vlerat do të ndryshojnë në mënyrë lineare midis seksioneve, vlera 500 do të korrespondonte me vlerën kufi mbi të cilën do të kishte një rrezik për popullatën kur ekspozohej ndaj këtyre përqendrimeve. Sipas vlerave të ICAP, janë krijuar kategori që kualifikojnë nivelet e përqendrimit të MP10, ndaj të cilëve njerëzit ishin të ekspozuar.

Hapi 7: Regjistrimi i të dhënave në nivel lokal

Regjistrimi i të dhënave në nivel lokal
Regjistrimi i të dhënave në nivel lokal
Regjistrimi i të dhënave në nivel lokal
Regjistrimi i të dhënave në nivel lokal
Regjistrimi i të dhënave në nivel lokal
Regjistrimi i të dhënave në nivel lokal

Në këtë pikë, ne kemi të gjitha mjetet për të kapur të dhëna nga sensori dhe gjithashtu t'i konvertojmë ato për një "vlerë më të lexueshme", se është indeksi AQI.

Le të krijojmë një funksion për të kapur ato vlera. Ne do të kapim 3 vlera në sekuencë duke marrë mesataren midis tyre:

def get_data (n = 3):

sensor.gjumë (gjumë = I rremë) pmt_2_5 = 0 pmt_10 = 0 kohë. gjumë (10) për i në rang (n): x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1] koha. gjumi (2) pmt_2_5 = rrumbullak (pmt_2_5/n, 1) pmt_10 = rrumbullak (pmt_10/n, 1) sensor. gjumi (gjumi = Vërtetë) koha. gjumi (2) kthimi pmt_2_5, pmt_10 Më sipër mund të shihni rezultatin e testit. Le të bëjmë gjithashtu një funksion për të kthyer vlerat numerike të PM në indeksin AQI

def conv_aqi (pmt_2_5, pmt_10):

aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, str (pmt_10)) kthehu aqi_2_5, aqi_10 mbi rezultatin e një testi me të dy funksionet. Por çfarë të bëni me ta? Përgjigja më e thjeshtë është krijimi i një funksioni për të ruajtur të dhënat e kapura, duke i ruajtur ato në një skedar lokal

def save_log ():

me hapur ("Rruga JUAJ K HTU/air_quality.csv", "a") si regjistër: dt = datetime.now () log.write ("{}, {}, {}, {}, {} n". format (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log. mbyll () Me një lak të vetëm, mund të regjistroni të dhëna në baza të rregullta në skedarin tuaj lokal, për shembull, çdo minutë

ndërsa (e vërtetë):

pmt_2_5, pmt_10 = marr_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) provo: save_log () përveç: print ("[INFO] Dështimi në regjistrimin e të dhënave") kohë. gjumë (60) Çdo 60 sekonda, afati kohor plus të dhënat do të "shtohen" në këtë skedar, siç mund ta shohim më lart.

Hapi 8: Dërgimi i të dhënave në një Shërbim Cloud

Dërgimi i të dhënave në një shërbim cloud
Dërgimi i të dhënave në një shërbim cloud

Në këtë pikë, ne kemi mësuar se si të kapim të dhëna nga sensori, duke i ruajtur ato në një skedar lokal CSV. Tani, është koha për të parë se si t'i dërgoni ato të dhëna në një platformë IoT. Në këtë tutorial, ne do të përdorim ThingSpeak.com.

"ThingSpeak është një aplikacion me burim të hapur të Internetit të Gjërave (IoT) për të ruajtur dhe marrë të dhëna nga gjërat, duke përdorur API-të REST dhe MQTT. ThingSpeak mundëson krijimin e aplikacioneve të regjistrimit të sensorëve, aplikacioneve për përcjelljen e vendndodhjes dhe një rrjeti social të gjërave me përditësime të statusit."

Së pari, duhet të keni një llogari në ThinkSpeak.com. Tjetra, ndiqni udhëzimet për të krijuar një kanal, duke marrë parasysh ID -në e tij dhe shkruani çelësin API.

Kur krijoni kanalin, duhet gjithashtu të përcaktoni se çfarë informacioni do të ngarkohet në secilën nga 8 fushat, siç tregohet më sipër (në rastin tonë vetëm 4 prej tyre do të përdoren).

Hapi 9: Protokolli MQTT dhe Lidhja ThingSpeak

Protokolli MQTT dhe ThingSpeak Connection
Protokolli MQTT dhe ThingSpeak Connection

MQTT është një arkitekturë publikimi/abonimi që u zhvillua kryesisht për të lidhur gjerësinë e brezit dhe pajisjet e kufizuara në energji përmes rrjeteve pa tel. Shtë një protokoll i thjeshtë dhe i lehtë që kalon nëpër bazat TCP/IP ose WebSockets. MQTT mbi WebSockets mund të sigurohet me SSL. Arkitektura e publikimit/regjistrimit mundëson që mesazhet të shtyhen në pajisjet e klientit pa pasur nevojë që pajisja të anketojë vazhdimisht serverin.

Ndërmjetësi MQTT është pika qendrore e komunikimit dhe është përgjegjëse për shpërndarjen e të gjitha mesazheve midis dërguesve dhe marrësve të ligjshëm. Një klient është çdo pajisje që lidhet me ndërmjetësin dhe mund të publikojë ose të regjistrohet në tema për të hyrë në informacion. Një temë përmban informacione për drejtimin për ndërmjetësin. Çdo klient që dëshiron të dërgojë mesazhe i publikon ato në një temë të caktuar, dhe secili klient që dëshiron të marrë mesazhe regjistrohet në një temë të caktuar. Ndërmjetësi i dërgon të gjithë mesazhet me temën që përputhet tek klientët përkatës.

ThingSpeak ™ ka një ndërmjetës MQTT në URL mqtt.thingspeak.com dhe portin 1883. Ndërmjetësi ThingSpeak mbështet të dy botimet MQTT dhe pajtimin MQTT.

Në rastin tonë, ne do të përdorim Publikimin MQTT.

Hapi 10: Publikimi i MQTT

Publikimi MQTT
Publikimi MQTT

Për të filluar, le të instalojmë bibliotekën e klientit Eclipse Paho MQTT Python, që zbaton versionet 3.1 dhe 3.1.1 të protokollit MQTT

sudo pip instaloni paho-mqtt

Tjetra, le të importojmë bibliotekën paho:

import paho.mqtt.publikoj si publikoj

dhe iniconi kanalin Thingspeak dhe protokollin MQTT. Kjo metodë e lidhjes është më e thjeshta dhe kërkon më pak burime të sistemit:

channelID = "ID -ja juaj e kanalit"

apiKey = "ÇELEYS TUAJ TR SHKRUAR" temë = "kanale/" + channelID + "/publikoj/" + apiKey mqttHost = "mqtt.thingspeak.com" Tani ne duhet të përcaktojmë "ngarkesën" tonë

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

Dhe kjo eshte! ne jemi gati të fillojmë të dërgojmë të dhëna në re! Le të rishkruajmë funksionin e mëparshëm të lakut për të përfshirë edhe pjesën ThingSpeak të tij.

# Dërgimi i të gjitha të dhënave në ThingSpeak çdo 1 minutë

ndërsa (E vërtetë): pmt_2_5, pmt_10 = merrni_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 (pmt_10) + "& field4 =" + str (aqi_10) provoni: botoni.single (temë, ngarkesë = tPayload, hostname = mqttHost, port = tPort, tls = tTLS, transport = tTransport) save_log () përveç: print ("[INFO] Dështimi në dërgimin e të dhënave ") koha. Gjumi (60) Nëse gjithçka është në rregull, duhet të shihni që të dhënat gjithashtu shfaqen në kanalin tuaj në thingspeak.com siç tregohet më sipër.

Hapi 11: Skenari përfundimtar

Importantshtë e rëndësishme të theksohet se Jupyter Notebook është një mjet shumë i mirë për zhvillim dhe raportim, por jo për të krijuar një kod për ta vënë në prodhim. Ajo që duhet të bëni tani është të merrni pjesën përkatëse të kodit dhe të krijoni një skript.py dhe ta ekzekutoni atë në terminalin tuaj.

Për shembull, "ts_air_quality_logger.py", që duhet të ekzekutoni me komandën:

python 3 ts_air_quality_logger.py

Ky skenar, si dhe Fletorja Jupyter dhe sds011.py mund të gjenden në depon time në RPi_Air_Quality_Sensor.

Vini re se ky skenar është i realizueshëm vetëm për testim. Më e mira është të mos përdorni vonesa brenda lakut përfundimtar (që vendos kodin në "pauzë"), në vend të kësaj përdorni kohëmatës. Ose për një aplikim të vërtetë, më e mira është të mos përdorni lak, duke pasur Linux të programuar për të ekzekutuar skriptin në baza të rregullta me crontab.

Hapi 12: Marrja e monitorit jashtë

Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë
Marrja e Monitorit Jashtë

Pasi monitori im i Raspberry Pi Quality Air po punonte, unë mblodha RPi brenda një kutie plastike, duke e mbajtur sensorin jashtë dhe e vendosa jashtë shtëpisë sime.

U bënë dy përvoja.

Hapi 13: Djegia e motorit të benzinës

Djegia e motorit të benzinës
Djegia e motorit të benzinës
Djegia e motorit të benzinës
Djegia e motorit të benzinës

Sensori u vendos rreth 1m nga gazi i Lambretta dhe motori i tij u ndez. Motori po punonte për disa minuta dhe u fik. Nga skedari i mësipërm i regjistrit, rezultati që mora. Interesante për të konfirmuar se PM2.5 ishte grimca më e rrezikshme që rezultoi nga motori.

Hapi 14: Djegia e drurit

Djegia e drurit
Djegia e drurit
Djegia e drurit
Djegia e drurit

Duke parë skedarin e regjistrit, ne kuptojmë se të dhënat e sensorit ishin momentale "jashtë rrezes" dhe nuk ishin kapur mirë nga Biblioteka e konvertimit AQI, kështu që unë ndryshoj kodin e mëparshëm për ta trajtuar atë:

def conv_aqi (pmt_2_5, pmt_10):

provo: aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, str (pmt_10)) kthehu aqi_2_5, aqi_10 përveç: kthimit 600, 600 Kjo situatë mund të ndodhë në terren, gjë që është në rregull. Mos harroni se në fakt, duhet të përdorni mesataren lëvizëse për të marrë vërtet AQI (të paktën për orë, por zakonisht çdo ditë).

Hapi 15: Përfundimi

Përfundim
Përfundim

Si gjithmonë, shpresoj se ky projekt mund të ndihmojë të tjerët të gjejnë rrugën e tyre në botën emocionuese të Elektronikës dhe Shkencës së të Dhënave!

Për detaje dhe kodin përfundimtar, ju lutemi vizitoni depozitimin tim GitHub: RPi_Air_Quality_Sensor.

Saludos nga jugu i botës!

Shihemi në udhëzimin tim të ardhshëm!

Faleminderit, Marcelo

Recommended: