Sisukord:

Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4: 15 sammuga (koos piltidega)
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4: 15 sammuga (koos piltidega)

Video: Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4: 15 sammuga (koos piltidega)

Video: Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4: 15 sammuga (koos piltidega)
Video: Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan 2024, Juuli
Anonim
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l
Odav IoT õhukvaliteedi monitor, mis põhineb RaspberryPi 4-l

Tšiilis Santiagos talvisel keskkonnahädaolukorral on eesõigus elada ühes maailma ilusamas riigis, kuid kahjuks pole see kõik roosid. Tšiili kannatab talvehooajal palju õhu saastumise all, peamiselt tahkete osakeste, näiteks tolmu ja sudu tõttu.

Külma ilma tõttu on lõunaosas õhu saastumine peamiselt tingitud puidupõhistest teguritest ja Santiagos (riigi pealinnas), mis on segatud erinevatest tööstusharudest, autodest ja selle ainulaadsest geograafilisest olukorrast kahe tohutu mäeketi vahel.

Tänapäeval on õhusaaste kogu maailmas suur probleem ja selles artiklis uurime, kuidas välja töötada odav kallis omatehtud õhukvaliteedi monitor, mis põhineb Raspberry Pi -l. Kui soovite õhukvaliteedist rohkem aru saada, külastage projekti „Maailma õhukvaliteedi indeks”.

Tarvikud

  • Vaarika Pi 4
  • 1SDS011 - ülitäpne laser pm2.5 õhukvaliteedi tuvastamise andur
  • Plastkarp

1. samm: tahkete osakeste aine (PM): mis see on? Kuidas see õhku satub?

Tahked osakesed (PM): mis see on? Kuidas see õhku satub?
Tahked osakesed (PM): mis see on? Kuidas see õhku satub?

Niisiis, et mõista reostust või õhu saastumist, peame uurima osakesi, mis on sellega seotud, mida tuntakse ka kui tahkeid osakesi. Vaadates eelmise jaotise graafikuid, võime täheldada, et need mainisid PM2.5 ja PM10. Teeme sellest kiire ülevaate.

PM tähistab tahkeid osakesi (mida nimetatakse ka osakeste reostuseks): see tähendab õhus leiduvate tahkete osakeste ja vedelate tilkade segu. Mõned osakesed, näiteks tolm, mustus, tahm või suits, on piisavalt suured või tumedad, et neid saaks palja silmaga näha. Teised on nii väikesed, et neid saab tuvastada ainult elektronmikroskoobi abil. Osakesi on laias valikus. Osakesed läbimõõduga kuni 10 mikromeetrit on nii väikesed, et võivad sattuda kopsudesse, põhjustades tõsiseid terviseprobleeme. Kümme mikromeetrit on väiksem kui ühe inimese juuste laius.

Osakeste reostus hõlmab jämedaid tolmuosakesi (PM10): sissehingatavaid osakesi, mille läbimõõt on tavaliselt 10 mikromeetrit ja väiksem. Allikate hulka kuuluvad purustamis- või lihvimistööd ning sõidukite poolt teedel segatud tolm. Peenosakesed (PM2.5): peened sissehingatavad osakesed, mille läbimõõt on tavaliselt 2,5 mikromeetrit ja väiksem. Peenosakesi tekitatakse igat tüüpi põletamisel, sealhulgas mootorsõidukites, elektrijaamades, puidupõletuses elamutes, metsatulekahjudes, põllumajanduses ja mõnedes tööstusprotsessides. Tahkete osakeste kohta leiate lisateavet EPA saidilt: Ameerika Ühendriikide keskkonnakaitseagentuur

2. samm: miks on oluline nende osakeste eest hoolitseda?

Miks on oluline nende osakeste eest hoolitseda?
Miks on oluline nende osakeste eest hoolitseda?

Nagu kirjeldas GERARDO ALVARADO Z. oma töös Tšiili ülikoolis, on kõrged õhusaaste episoodide uuringud Meuse orus (Belgia) 1930. aastal, Donora (Pennsylvania) 1948. aastal ja London 1952. aastal olnud esimesed dokumenteeritud allikad, mis seostasid suremust osakeste saastumisega (Préndez, 1993). Õhusaaste mõju inimeste tervisele uurimisel tehtud edusammud on kindlaks teinud, et terviseriskid on põhjustatud sissehingatavatest osakestest, sõltuvalt nende tungimisest ja sadestumisest hingamissüsteemi erinevatesse osadesse ning bioloogilisest reageerimisest ladestunud materjalidele.

Paksemad osakesed, umbes 5 μm, filtreeritakse ninakanali ripsmete ja ninaõõnde ja hingetoru katva limaskesta ühisel toimel. Osakesed läbimõõduga vahemikus 0,5 kuni 5 μm võivad ladestuda bronhidesse ja isegi kopsu alveoolidesse, kuid need kõrvaldatakse mõne tunni pärast bronhide ja bronhiilide ripsmete kaudu. Osakesed, mis on väiksemad kui 0,5 μm, võivad tungida sügavale, kuni need sadenevad kopsualveoolidesse, jäädes nädalateks aastateks, kuna puudub mukotsiliaarne transpordimehhanism, mis hõlbustaks elimineerimist. Järgmine joonis näitab osakeste tungimist hingamissüsteemi sõltuvalt nende suurusest.

Seega on mõlemat tüüpi osakeste (PM2.5 ja PM10) tuvastamine väga oluline ja hea uudis on see, et mõlemad on loetavad lihtsa ja mitte kalli anduri SDS011 abil.

3. samm: osakeste andur - SDS011

Osakeste andur - SDS011
Osakeste andur - SDS011
Osakeste andur - SDS011
Osakeste andur - SDS011

Õhukvaliteedi seire on hästi tuntud ja väljakujunenud teadus, mis sai alguse 80ndatel. Sel ajal oli tehnoloogia üsna piiratud ning lahendus, mida kasutati õhusaaste kompleksi kvantifitseerimiseks, tülikas ja tõeliselt kallis.

Õnneks on tänapäeval, kasutades uusimaid ja kaasaegseid tehnoloogiaid, õhukvaliteedi seireks kasutatavad lahendused mitte ainult täpsemaks, vaid ka mõõtmiseks kiiremaks. Seadmed muutuvad väiksemaks ja maksavad palju odavamalt kui kunagi varem.

Selles artiklis keskendume osakeste andurile, mis suudab tuvastada õhus oleva tolmu koguse. Kuigi esimene põlvkond suutis äsja läbipaistmatust tuvastada, saavad Jinan ülikooli (Shandongis) eraldatud INOVAFITi uusimad andurid nagu SDS011 nüüd tuvastada PM2.5 ja PM10.

Oma suurusega on SDS011 ilmselt üks parimaid andureid nii täpsuse kui ka hinna (alla 40,00 USD) poolest.

  • Mõõdetud väärtused: PM2,5, PM10
  • Vahemik: 0–999,9 μg /m³
  • Toitepinge: 5V (4,7–5,3V)
  • Energiatarve (töö): 70mA ± 10mA
  • Energiatarve (unerežiimis laser ja ventilaator): <4mA
  • Säilitustemperatuur: -20 kuni +60 ° C.
  • Töötemperatuur: -10 kuni +50C
  • Niiskus (ladustamine): max 90%
  • Niiskus (töö): max 70% (veeauru kondenseerumine väärib näitu)
  • Täpsus: 0,3 μm puhul 70% ja 0,5 μm puhul 98%
  • Suurus: 71x70x23 mm
  • Sertifikaat: CE, FCC, RoHS

SD011 kasutab PCB -d korpuse ühe küljena, mis võimaldab selle kulusid vähendada. Retseptori diood on paigaldatud trükkplaadi poolele (see on kohustuslik, kuna dioodi ja LNA vahelist müra tuleks vältida). Emitterlaser on paigaldatud plastkarbile ja ühendatud painduva juhtme kaudu trükkplaadiga.

Lühidalt, Nova Fitness SDS011 on professionaalne laseritolmuandur. Andurile paigaldatud ventilaator imeb automaatselt õhku. Andur kasutab õhus hõljuvate tolmuosakeste väärtuse mõõtmiseks laservalguse hajumise põhimõtet*. Andur tagab PM2.5 ja PM10 väärtuste suure täpsuse ja usaldusväärse näidu. Mis tahes muutusi keskkonnas võib täheldada peaaegu koheselt lühikest reageerimisaega alla 10 sekundi. Standardrežiimi andur teatab lugemisest 1-sekundilise intervalliga.

* Laserhajumise põhimõte: kui osakesed läbivad avastamispiirkonna, võib valguse hajumist esile kutsuda. Hajutatud valgus muundatakse elektrilisteks signaalideks ning neid signaale võimendatakse ja töödeldakse. Osakeste arvu ja läbimõõtu saab analüüsida, kuna signaali lainekujul on teatud osakeste läbimõõduga seos.

Samm: aga kuidas SDS011 suudab neid osakesi jäädvustada?

Aga kuidas SDS011 suudab neid osakesi jäädvustada?
Aga kuidas SDS011 suudab neid osakesi jäädvustada?
Aga kuidas SDS011 suudab neid osakesi jäädvustada?
Aga kuidas SDS011 suudab neid osakesi jäädvustada?

Nagu varem kommenteeritud, on SDS011 kasutatav põhimõte valguse hajumine või parem, dünaamiline valguse hajumine (DLS), mis on füüsika tehnika, mille abil saab määrata suspensioonis olevate väikeste osakeste või lahuses olevate polümeeride suuruse jaotusprofiili. DLS-i ulatuses analüüsitakse ajalisi kõikumisi tavaliselt intensiivsuse või footonite automaatkorrelatsiooni funktsiooni abil (tuntud ka kui footonite korrelatsioonispektroskoopia või kvaasielastse valguse hajumine). Aja domeeni analüüsis laguneb autokorrelatsioonifunktsioon (ACF) tavaliselt alates nullist viivitusajast ja väiksemate osakeste tõttu kiirem dünaamika viib hajutatud intensiivsuse jälje kiirema dekorelatsioonini. On näidatud, et intensiivsus ACF on võimsusspektri Fourier 'teisendus ja seetõttu saab DLS -i mõõtmisi spektrivaldkonnas võrdselt hästi teha.

Kahe proovi hüpoteetilise dünaamilise valguse hajumise kohal: suuremad osakesed (nagu PM10) peal ja väiksemad osakesed (nagu PM2,5) all. Ja meie anduri sisse vaadates näeme, kuidas valguse hajumise põhimõtet rakendatakse.

Dioodile salvestatud elektriline signaal läheb madala müratasemega võimendisse ja sellest muundatakse ADC kaudu digitaalseks signaaliks ning UART kaudu väljast.

Tõelise teadusliku kogemuse kohta SDS011 kohta lisateabe saamiseks vaadake palun Konstantinose jt 2018. aasta tööd „Madala hinnaga kaasaskantava süsteemi arendamine ja kohapealne testimine PM2.5 kontsentratsiooni jälgimiseks”.

Samm: esitusaeg

Showtime!
Showtime!
Showtime!
Showtime!

Teeme kogu selle teooria pausi ja keskendume sellele, kuidas mõõta tahkeid osakesi Raspberry Pi ja SDS011 anduri abil

HW ühendus on tegelikult väga lihtne. Andurit müüakse koos USB -adapteriga, et ühendada oma 7 -kontaktilise UART -i väljundandmed ühe RPi standardse USB -pistikuga.

SDS011 pinout:

  • Pin 1 - pole ühendatud
  • Tihvt 2 - PM2,5: 0–999μg/m³; PWM väljund
  • Pin 3–5V
  • Tihvt 4 - PM10: 0–999 μg/m³; PWM väljund
  • Tihvt 5 - GND
  • Pin 6 - RX UART (TTL) 3.3V
  • Pin 7 - TX UART (TTL) 3.3V

Selle õpetuse jaoks kasutan esmakordselt uhiuut Raspberry-Pi 4. Kuid loomulikult sobib ka iga eelmine mudel.

Niipea, kui ühendate anduri mõnele RPi USB -pordile, hakkate automaatselt kuulama selle ventilaatori heli. Müra on natuke tüütu, nii et võib -olla peaksite selle vooluvõrgust lahti ühendama ja ootama, kuni olete SW -ga kõik valmis seadnud.

Anduri ja RPi vaheline side toimub jadaprotokolli kaudu. Üksikasjad selle protokolli kohta leiate siit: Lasertolmuanduri juhtimisprotokoll V1.3. Kuid selle projekti jaoks on kõige parem kasutada arendatava koodi lihtsustamiseks pythoni liidest. Saate luua oma liidese või kasutada mõnda Internetis saadaolevat, näiteks Frank Heueri või Ivan Kalchevi oma. Kasutame viimast, mis on väga lihtne ja töötab hästi (sds011.py skripti saate alla laadida selle GitHubist või minu oma).

Fail sds011.py peab asuma samas kataloogis, kus skripti loote.

Arendusfaasis kasutan Jupyteri sülearvutit, kuid võite kasutada mis tahes IDE -d, mis teile meeldivad (näiteks Thonny või Geany, mis kuuluvad Raspberry Pi Debiani paketti, on mõlemad väga head).

Alustage sds011 importimist ja anduri eksemplari loomist. SDS011 pakub meetodit andurilt UART abil lugemiseks.

sds011 impordist *

andur = SDS011 ("/dev/ttyUSB0")

Anduri saate sisse või välja lülitada käsuga uni:

pmt_2_5, pmt_10 = sensor.query ()

Oodake enne mõõtmist vähemalt 10 sekundit ja uue mõõtmise alustamiseks vähemalt 2 sekundit (vt ülaltoodud koodi).

Ja see on kõik, mida peate anduri kasutamiseks SW osas teadma. Kuid läheme sügavamale õhukvaliteedi kontrollile! Kui olete selle artikli alguses uurinud saite, mis annavad teavet selle kohta, kui hea või halb on õhk, peaksite mõistma, et värvid on nende väärtustega seotud. Iga värv on indeks. Tuntuim neist on USA -s ja mitmetes teistes riikides kasutatav õhukvaliteedi indeks (AQI).

6. samm: õhukvaliteedi indeks - AQI

Õhukvaliteedi indeks - AQI
Õhukvaliteedi indeks - AQI
Õhukvaliteedi indeks - AQI
Õhukvaliteedi indeks - AQI
Õhukvaliteedi indeks - AQI
Õhukvaliteedi indeks - AQI

AQI on indeks igapäevase õhukvaliteedi kohta. See ütleb teile, kui puhas või saastatud on teie õhk ja millised sellega seotud tervisemõjud võivad teile muret valmistada. AQI keskendub tervisemõjudele, mis võivad tekkida mõne tunni või päeva jooksul pärast saastunud õhu sissehingamist.

Näiteks EPA (Ameerika Ühendriikide keskkonnakaitseagentuur) arvutab AQI mitte ainult osakeste reostuse (PM2.5 ja PM10), vaid ka muude puhta õhu seadusega reguleeritud peamiste õhusaasteainete puhul: maapinna osoon, vingugaas, vääveldioksiid ja lämmastikdioksiid. Kõigi nende saasteainete puhul on EPA kehtestanud riiklikud õhukvaliteedi standardid, et kaitsta rahvatervist. Vaadake ülaltoodud pilti koos AQI väärtuste, värvide ja tervisesõnumitega.

Nagu varem kommenteeritud, on need AQI väärtused ja värvid seotud iga saasteainega, kuid kuidas seostada anduritega loodud väärtusi nendega? Täiendav tabel ühendab need kõik ülaltoodud viisil.

Kuid muidugi pole mõtet sellist tabelit kasutada. Lõpuks on see lihtne matemaatiline algoritm, mis teeb arvutuse. Selleks impordime raamatukogu AQI väärtuse ja saasteaine kontsentratsiooni (µg/m³) vahel teisendamiseks: python-aqi.

Installige raamatukogu PIP abil ja tehke test (vt ülaltoodud koodi)

pip install python-aqi

Ja kuidas on Tšiiliga?

Tšiilis kasutatakse sarnast indeksit ICAP: õhukvaliteedi indeks hingavatele osakestele. Vabariigi Presidendi ministeeriumi peasekretäri 16. märtsi 1998. aasta ülemmäärus 59 sätestab oma artikli 1 punktis g, et tasemed, mis määratlevad hingava tahkete osakeste ICA, ICAP.

Väärtused varieeruvad lõikude lõikes lineaarselt, väärtus 500 vastaks piirväärtusele, mille ületamisel oleks nende kontsentratsioonidega kokku puutudes oht elanikkonnale. Vastavalt ICAP väärtustele on kehtestatud kategooriad, mis määravad MP10 kontsentratsioonitasemed, millega inimesed kokku puutusid.

Samm 7: andmete lokaalne logimine

Andmete kohalik registreerimine
Andmete kohalik registreerimine
Andmete kohalik registreerimine
Andmete kohalik registreerimine
Andmete kohalik registreerimine
Andmete kohalik registreerimine

Praegu on meil kõik tööriistad andurilt andmete kogumiseks ja nende „loetavamaks muutmiseks”, milleks on AQI indeks.

Loome funktsiooni nende väärtuste jäädvustamiseks. Jäädvustame järjestikku 3 väärtust, võttes nende hulgast keskmise:

def get_data (n = 3):

sensor.sleep (uni = vale) pmt_2_5 = 0 pmt_10 = 0 time.sleep (10) i jaoks vahemikus (n): x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1] time.sleep (2) pmt_2_5 = ümmargune (pmt_2_5/n, 1) pmt_10 = ümmargune (pmt_10/n, 1) sensor.sleep (uni = True) time.sleep (2) tagasi pmt_2_5, pmt_10 Eespool näete testi tulemust. Teeme ka funktsiooni PM arvväärtuste teisendamiseks AQI indeksis

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)) tagasta aqi_2_5, aqi_10 mõlema funktsiooniga testi tulemuse kohal. Aga mida nendega peale hakata? Kõige lihtsam vastus on luua funktsioon salvestatud andmete salvestamiseks, salvestades need kohalikku faili

def save_log ():

avatud ("YOUR PATH SIIN/air_quality.csv", "a") logina: dt = datetime.now () log.write ("{}, {}, {}, {}, {} n". formaat (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close () Ühe tsükliga saate andmeid iga minuti kohta regulaarselt logida, näiteks oma kohaliku faili kaudu

samas (tõsi):

pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) proovige: save_log () välja arvatud: print ("[INFO] Logimisandmete ebaõnnestumine") time.sleep (60) Iga 60 sekundi järel lisatakse sellele failile ajatempel pluss andmed, nagu näeme ülal.

Samm: andmete saatmine pilveteenusesse

Andmete saatmine pilveteenusesse
Andmete saatmine pilveteenusesse

Siinkohal oleme õppinud, kuidas andurilt andmeid jäädvustada, salvestades need kohalikku CSV -faili. Nüüd on aeg näha, kuidas need andmed IoT platvormile saata. Selles õpetuses kasutame ThingSpeak.com.

„ThingSpeak on avatud lähtekoodiga asjade Interneti (IoT) rakendus, mis võimaldab salvestada ja hankida asjadest andmeid, kasutades REST ja MQTT API-sid. ThingSpeak võimaldab luua olekuuuendustega andurite logimisrakendusi, asukoha jälgimise rakendusi ja asjade sotsiaalset võrgustikku.”

Esiteks peab teil olema konto aadressil ThinkSpeak.com. Järgmisena järgige juhiseid kanali loomiseks, võttes arvesse selle kanali ID -d ja Write API võtit.

Kanali loomisel peate ka määratlema, milline teave laaditakse igale 8 väljale, nagu ülal näidatud (meie puhul kasutatakse ainult 4 neist).

9. samm: MQTT -protokoll ja ThingSpeak -ühendus

MQTT protokoll ja ThingSpeak ühendus
MQTT protokoll ja ThingSpeak ühendus

MQTT on avaldamise/tellimise arhitektuur, mis töötati välja peamiselt ribalaiuse ja piiratud võimsusega seadmete ühendamiseks traadita võrkude kaudu. See on lihtne ja kerge protokoll, mis töötab üle TCP/IP -pesade või WebSocketide. MQTT -d WebSocketsi kaudu saab kaitsta SSL -iga. Avaldamise/tellimise arhitektuur võimaldab sõnumeid kliendiseadmetesse edastada, ilma et seade peaks serverit pidevalt küsitlema.

MQTT maakler on keskseks suhtluspunktiks ning see vastutab kõigi sõnumite saatmise eest saatjate ja õigustatud vastuvõtjate vahel. Klient on mis tahes seade, mis loob maakleriga ühenduse ja saab teabele juurdepääsemiseks teemasid avaldada või tellida. Teema sisaldab maakleri marsruutimisteavet. Iga klient, kes soovib sõnumeid saata, avaldab need teatud teemal ja iga klient, kes soovib sõnumeid saada, tellib teatud teema. Maakler edastab kõik vastava teemaga sõnumid vastavatele klientidele.

ThingSpeak ™ -l on MQTT maakler aadressil mqtt.thingspeak.com ja port 1883. ThingSpeak maakler toetab nii MQTT avaldamist kui ka MQTT tellimist.

Meie puhul kasutame MQTT avaldamist.

10. samm: avaldage MQTT

Avalda MQTT
Avalda MQTT

Alustuseks paigaldame Eclipse Paho MQTT Pythoni klienditeegi, mis rakendab MQTT protokolli versioone 3.1 ja 3.1.1

sudo pip install paho-mqtt

Järgmisena impordime paho raamatukogu:

impordi paho.mqtt.publish kui avaldada

ja käivitage asjade kõne kanal ja MQTT protokoll. See ühendusmeetod on kõige lihtsam ja nõuab kõige vähem süsteemiressursse:

channelID = "SINU KANALI ID"

apiKey = "SINU KIRJUTAMISVÕTT" teema = "kanalid/" + kanali ID + "/avalda/" + apiKey mqttHost = "mqtt.thingspeak.com" Nüüd peame määratlema oma "kasulikku koormust"

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

Ja see ongi kõik! oleme valmis alustama andmete pilve saatmist! Kirjutame eelmise silmuse funktsiooni ümber, et see hõlmaks ka ThingSpeaki osa.

# Kõikide andmete saatmine ThingSpeaki iga 1 minuti järel

samas (tõsi): 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 (pmt_10) + "& field4 =" + str (aqi_10) try: publis.single (topic, payload = tPayload, hostname = mqttHost, port = tPort, tls = tTLS, transport = tTransport) save_log () välja arvatud: print ("[INFO] Andmete saatmise ebaõnnestumine ") time.sleep (60) Kui kõik on korras, peate nägema, et andmed kuvatakse ka teie kanalil saidil thingspeak.com, nagu ülal näidatud.

11. samm: lõplik skript

Oluline on märkida, et Jupyteri sülearvuti on väga hea tööriist arendamiseks ja aruandluseks, kuid ei, et luua kood tootmiseks. Nüüd peaksite võtma koodi asjakohase osa ja looma.py skripti ning käivitama selle oma terminalis.

Näiteks “ts_air_quality_logger.py”, mida peaksite käivitama käsuga:

python 3 ts_air_quality_logger.py

Selle skripti, samuti Jupyteri sülearvuti ja sds011.py leiate minu hoidlast aadressil RPi_Air_Quality_Sensor.

Pange tähele, et see skript on teostatav ainult testimiseks. Parim on mitte kasutada viivitusi lõpptsüklis (mis paneb koodi "pausile"), vaid kasutada taimerit. Või tõelise rakenduse puhul pole parim kasutada tsüklit, kui Linux on programmeeritud skripti regulaarselt käivitama koos crontabiga.

12. samm: monitori väljapoole viimine

Monitori väljapoole viimine
Monitori väljapoole viimine
Monitori väljapoole viimine
Monitori väljapoole viimine
Monitori väljapoole viimine
Monitori väljapoole viimine
Monitori väljapoole viimine
Monitori väljapoole viimine

Kui mu Raspberry Pi õhukvaliteedi monitor töötas, panin RPi kokku plastkarbi sees, hoides andurit väljas ja panin selle oma kodust väljapoole.

Tehti kaks kogemust.

Samm: bensiinimootori põlemine

Bensiinimootori põlemine
Bensiinimootori põlemine
Bensiinimootori põlemine
Bensiinimootori põlemine

Andur paigutati umbes 1 meetri kaugusele Lambretta gaasiplatvormist ja selle mootor lülitati sisse. Mootor töötas paar minutit ja lülitus välja. Ülaltoodud logifailist sain tulemuse. Huvitav kinnitada, et PM2.5 oli mootorist kõige ohtlikum osake.

14. samm: puidu põletamine

Puidu põletamine
Puidu põletamine
Puidu põletamine
Puidu põletamine

Logifaili vaadates mõistame, et anduri andmed olid hetkelised "vahemikust väljas" ja AQI teisenditeek ei salvestanud neid hästi, nii et muudan selle haldamiseks eelmist koodi:

def conv_aqi (pmt_2_5, pmt_10):

proovige: aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, str (pmt_10)) tagasta aqi_2_5, aqi_10, va: 600, See olukord võib põllul juhtuda, mis on OK. Pidage meeles, et tegelikult peaksite AQI (vähemalt tunnis, kuid tavaliselt iga päev) saamiseks kasutama libisevat keskmist.

15. samm: järeldus

Järeldus
Järeldus

Nagu alati, loodan, et see projekt aitab teistel leida tee elektroonika ja andmeteaduse põnevasse maailma!

Üksikasjade ja lõpliku koodi saamiseks külastage minu GitHubi hoidlat: RPi_Air_Quality_Sensor.

Tervitused maailma lõunaosast!

Kohtumiseni minu järgmisel juhendamisel!

Aitäh, Marcelo

Soovitan: