Sisällysluettelo:

Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: 15-vaiheisiin (kuvilla)
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: 15-vaiheisiin (kuvilla)

Video: Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: 15-vaiheisiin (kuvilla)

Video: Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: 15-vaiheisiin (kuvilla)
Video: Высокая плотность 2022 2024, Heinäkuu
Anonim
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een
Halpa IoT-ilmanlaadun valvonta, joka perustuu RaspberryPi 4: een

Santiagossa, Chilessä talvisen ympäristötilanteen aikana, on etuoikeus asua yhdessä maailman kauneimmista maista, mutta valitettavasti se ei ole kaikki ruusuja. Chile kärsii talvikaudella paljon ilmansaasteista, pääasiassa hiukkasmaisten aineiden, kuten pölyn ja savusumu, vuoksi.

Kylmän sään vuoksi etelässä ilmansaasteet johtuvat pääasiassa puupohjaisista tekijöistä ja Santiagossa (maan pääkaupunki), joka on sekoitettu teollisuudesta, autoista ja sen ainutlaatuisesta maantieteellisestä tilanteesta kahden valtavan vuoristoketjun välillä.

Nykyään ilmansaasteet ovat suuri ongelma kaikkialla maailmassa, ja tässä artikkelissa tutkimme, kuinka kehittää halpa kotitekoinen ilmanlaadun valvonta, joka perustuu Raspberry Pi: hen. Jos haluat tietää enemmän ilmanlaadusta, käy”World Air Quality Index” -projektissa.

Tarvikkeet

  • Raspberry Pi 4
  • 1SDS011 - Tarkka laser PM2.5 -ilmanlaadun tunnistin
  • Muovilaatikko

Vaihe 1: Hiukkasaine (PM): mikä se on? Miten se pääsee ilmaan?

Hiukkasaine (PM): mikä se on? Miten se pääsee ilmaan?
Hiukkasaine (PM): mikä se on? Miten se pääsee ilmaan?

Joten saastumisen tai ilman saastumisen ymmärtämiseksi meidän on tutkittava hiukkasia, jotka liittyvät siihen, joka tunnetaan myös hiukkasina. Tarkasteltaessa edellisen osan kaavioita voimme havaita, että ne mainitsivat PM2.5 ja PM10. Annetaan siitä nopea katsaus.

PM tarkoittaa hiukkasia (kutsutaan myös hiukkassaasteeksi): termi ilmassa olevien kiinteiden hiukkasten ja nestepisaroiden seokselle. Jotkut hiukkaset, kuten pöly, lika, noki tai savu, ovat riittävän suuria tai tummia, jotta ne voidaan nähdä paljaalla silmällä. Muut ovat niin pieniä, että ne voidaan havaita vain elektronimikroskoopilla. Hiukkasia on monenlaisia kokoja. Hiukkaset, joiden halkaisija on alle 10 mikrometriä, ovat niin pieniä, että ne voivat päästä keuhkoihin aiheuttaen vakavia terveysongelmia. Kymmenen mikrometriä on pienempi kuin yksittäisten ihokarvojen leveys.

Hiukkassaaste sisältää karkeita pölyhiukkasia (PM10): hengitettäviä hiukkasia, joiden halkaisija on yleensä 10 mikrometriä tai pienempi. Lähteitä ovat murskaus- tai jauhatustoimenpiteet ja ajoneuvojen teillä sekoittama pöly. Hienojakoisia hiukkasia (PM2.5): hienoja hengitettäviä hiukkasia, joiden halkaisija on yleensä 2,5 mikrometriä tai pienempi. Hienojakoisia hiukkasia syntyy kaikentyyppisistä palamistyypeistä, mukaan lukien moottoriajoneuvot, voimalaitokset, asuinpuun polttaminen, metsäpalot, maatalouden polttaminen ja jotkin teollisuusprosessit. Lisätietoja hiukkasista on EPA -sivustolla:

Vaihe 2: Miksi on tärkeää välittää näistä hiukkasasioista?

Miksi on tärkeää välittää näistä hiukkasasioista?
Miksi on tärkeää välittää näistä hiukkasasioista?

Kuten GERARDO ALVARADO Z. on kuvannut Chilen yliopistossa tekemässään työssä, tutkimukset korkean ilmansaasteen episodeista Meuse Valleyssä (Belgia) vuonna 1930, Donora (Pennsylvania) vuonna 1948 ja Lontoo vuonna 1952 ovat olleet ensimmäiset kuolleisuuteen liittyvät dokumentoidut lähteet. hiukkasten kontaminaatiolla (Préndez, 1993). Ilmansaasteiden vaikutusten tutkiminen ihmisten terveydelle on osoittanut, että terveysriskit johtuvat hengitettävistä hiukkasista riippuen niiden tunkeutumisesta ja laskeutumisesta hengityselinten eri osiin sekä biologisesta vasteesta saostuneille materiaaleille.

Paksimmat hiukkaset, noin 5 μm, suodatetaan nenän kautta kulkevien silmien ja nenän ontelon ja henkitorven peittävän limakalvon yhteisvaikutuksella. Hiukkaset, joiden halkaisija on 0,5–5 μm, voivat kerääntyä keuhkoputkiin ja jopa keuhkoalveoleihin, mutta keuhkoputkien ja keuhkoputkien silmät poistavat ne muutaman tunnin kuluttua. Alle 0,5 μm: n hiukkaset voivat tunkeutua syvälle, kunnes ne laskeutuvat keuhkoalveoleihin. Seuraava kuva näyttää hiukkasten tunkeutumisen hengityselimiin niiden koon mukaan.

Molempien hiukkastyyppien (PM2.5 ja PM10) havaitseminen on siis erittäin tärkeää, ja hyvä uutinen on, että molemmat ovat luettavissa yksinkertaisella ja kalliilla anturilla, SDS011: llä.

Vaihe 3: Hiukkasanturi - SDS011

Hiukkasanturi - SDS011
Hiukkasanturi - SDS011
Hiukkasanturi - SDS011
Hiukkasanturi - SDS011

Ilmanlaadun seuranta on tunnettu ja vakiintunut tiede, joka alkoi 80 -luvulla. Tuolloin tekniikka oli varsin rajallista, ja ratkaisu, jolla mitattiin ilmansaasteiden monimutkaisuus, oli hankala ja todella kallis.

Onneksi nykyään uusimman ja nykyaikaisen tekniikan avulla ilmanlaadun seurantaan käytettävät ratkaisut ovat entistä tarkempia, mutta myös nopeampia mittaamaan. Laitteet pienenevät ja maksavat paljon edullisemmin kuin koskaan ennen.

Tässä artikkelissa keskitymme hiukkasanturiin, joka voi havaita pölyn määrän ilmassa. Vaikka ensimmäinen sukupolvi pystyi vain havaitsemaan sameuden määrän, viimeisimmät anturit, kuten INOVAFITin SDS011, Jinanin yliopiston (Shandongissa) spin-off, voivat nyt havaita PM2.5: n ja PM10: n.

SDS011 on kooltaan kooltaan yksi parhaista antureista tarkkuuden ja hinnan suhteen (alle 40,00 USD).

  • Mitatut arvot: PM2.5, PM10
  • Alue: 0–999,9 μg /m³
  • Syöttöjännite: 5V (4,7-5,3V)
  • Virrankulutus (työ): 70mA ± 10mA
  • Virrankulutus (lepotilassa laser ja tuuletin): <4mA
  • Varastointilämpötila: -20 - +60C
  • Työlämpötila: -10 - +50C
  • Kosteus (varastointi): Max. 90%
  • Kosteus (työ): Max. 70% (vesihöyryn tiivistyminen väärentää lukemat)
  • Tarkkuus: 70% 0,3 μm ja 98% 0,5 μm
  • Koko: 71x70x23 mm
  • Sertifiointi: CE, FCC, RoHS

SD011 käyttää piirilevyä kotelon toisena puolena, mikä vähentää sen kustannuksia. Reseptoridiodi on asennettu PCB -puolelle (tämä on pakollista, koska melua diodin ja LNA: n välillä on vältettävä). Lähetinlaser on asennettu muovilaatikkoon ja kytketty piirilevyyn joustavalla johdolla.

Lyhyesti sanottuna Nova Fitness SDS011 on ammattimainen laserpölyanturi. Anturiin asennettu tuuletin imee automaattisesti ilmaa. Anturi mittaa ilmassa suspendoituneiden pölyhiukkasten arvon laservalon hajautusperiaatteella*. Anturi tarjoaa erittäin tarkat ja luotettavat PM2.5- ja PM10 -arvojen lukemat. Kaikki muutokset ympäristössä voidaan havaita lähes välittömästi lyhyen alle 10 sekunnin vasteajan. Vakiotilan anturi raportoi lukemasta 1 sekunnin välein.

* Lasersirontaperiaate: Valon sirontaa voidaan aiheuttaa, kun hiukkaset kulkevat havaintoalueen läpi. Hajallaan oleva valo muuttuu sähköisiksi signaaleiksi ja näitä signaaleja vahvistetaan ja käsitellään. Hiukkasten lukumäärä ja halkaisija voidaan saada analyysillä, koska signaalin aaltomuodolla on tietty yhteys hiukkasten halkaisijaan.

Vaihe 4: Mutta miten SDS011 voi kaapata nämä hiukkaset?

Mutta miten SDS011 voi kaapata nämä hiukkaset?
Mutta miten SDS011 voi kaapata nämä hiukkaset?
Mutta miten SDS011 voi kaapata nämä hiukkaset?
Mutta miten SDS011 voi kaapata nämä hiukkaset?

Kuten aiemmin kommentoitiin, SDS011: n käyttämä periaate on valonsironta tai parempi, dynaaminen valonsironta (DLS), joka on fysiikan tekniikka, jolla voidaan määrittää suspensiossa olevien tai liuoksessa olevien polymeerien pienhiukkasten kokojakautumisprofiili. DLS: n laajuudessa ajalliset vaihtelut analysoidaan yleensä intensiteetin tai fotonin automaattisen korrelaatiofunktion avulla (tunnetaan myös nimellä fotonikorrelaatiospektroskopia tai kvasielastinen valonsironta). Aika -alueen analyysissä automaattinen korrelaatiotoiminto (ACF) yleensä hajoaa nollasta viiveajasta lähtien, ja pienemmistä hiukkasista johtuva nopeampi dynamiikka johtaa hajaantuneen intensiteetin jäljen nopeampaan dekorelaatioon. On osoitettu, että intensiteetti ACF on tehospektrin Fourier -muunnos, ja siksi DLS -mittaukset voidaan suorittaa yhtä hyvin spektrialalla.

Kahden näytteen hypoteettisen dynaamisen valonsironnan yläpuolella: suurempia hiukkasia (kuten PM10) yläosassa ja pienempiä hiukkasia (kuten PM2.5) pohjassa. Ja kun katsomme anturimme sisälle, voimme nähdä, miten valon sirontaperiaate toteutetaan.

Diodiin tallennettu sähköinen signaali menee matalakohinaiseen vahvistimeen ja siitä muunnetaan digitaaliseksi signaaliksi ADC: n kautta ja ulos UART: n kautta.

Jos haluat tietää enemmän SDS011: stä todellisesta tieteellisestä kokemuksesta, tutustu Konstantinosin et al.

Vaihe 5: Showtime

Esitysaika!
Esitysaika!
Esitysaika!
Esitysaika!

Pidämme tauon kaikesta tästä teoriasta ja keskitymme hiukkasten mittaamiseen Raspberry Pi: n ja SDS011 -anturin avulla

HW -liitäntä on itse asiassa hyvin yksinkertainen. Anturi myydään USB -sovittimen kanssa 7 -nastaisen UART -lähtötiedon liittämiseksi yhteen RPi: n vakio -USB -liittimistä.

SDS011 -pistoke:

  • Nasta 1 - ei kytketty
  • Nasta 2 - PM2.5: 0–999 μg/m³; PWM -lähtö
  • Nasta 3–5 V
  • Nasta 4 - PM10: 0–999 μg/m³; PWM -lähtö
  • Nasta 5 - GND
  • Nasta 6 - RX UART (TTL) 3.3V
  • Nasta 7 - TX UART (TTL) 3.3V

Tässä opetusohjelmassa käytän ensimmäistä kertaa aivan uutta Raspberry-Pi 4. Mutta tietysti kaikki aiemmat mallit toimivat myös hyvin.

Heti kun liität anturin johonkin RPi USB -porttiin, alat automaattisesti kuunnella tuulettimen ääntä. Melu on hieman ärsyttävää, joten ehkä sinun pitäisi irrottaa se virtalähteestä ja odottaa, kunnes olet asettanut SW: n.

Tiedonsiirto anturin ja RPi: n välillä tapahtuu sarjaprotokollan kautta. Lisätietoja tästä protokollasta löytyy täältä: Laserpölyanturin ohjausprotokolla V1.3. Mutta tässä projektissa on parasta käyttää python -käyttöliittymää kehitettävän koodin yksinkertaistamiseksi. Voit luoda oman käyttöliittymän tai käyttää joitain Internetistä saatavia, kuten Frank Heuerin tai Ivan Kalchevin. Käytämme viimeistä, joka on hyvin yksinkertainen ja toimii hyvin (voit ladata sds011.py -komentosarjan sen GitHubista tai minun).

Tiedoston sds011.py on oltava samassa hakemistossa, johon luot komentosarjasi.

Kehitysvaiheessa käytän Jupyter -muistikirjaa, mutta voit käyttää mitä tahansa haluamaasi IDE: tä (esimerkiksi Thonny tai Geany, jotka ovat osa Raspberry Pi Debian -pakettia, ovat molemmat erittäin hyviä).

Aloita sds011: n tuonti ja sensori -ilmentymän luominen. SDS011 tarjoaa menetelmän lukea anturista UART: n avulla.

sds011 -tuonnista *

anturi = SDS011 ("/dev/ttyUSB0")

Voit kytkeä anturin päälle tai pois päältä komennolla uni:

pmt_2_5, pmt_10 = sensor.query ()

Odota vähintään 10 sekuntia vakautumista ennen mittauksia ja vähintään 2 sekuntia uuden mittauksen aloittamiseksi (katso yllä oleva koodi).

Ja tämä on kaikki mitä sinun tarvitsee tietää SW: n suhteen anturin käyttämiseksi. Mutta mennään syvemmälle ilmanlaadun valvonnassa! Jos olet tämän artikkelin alussa tutustunut sivustoihin, jotka antavat tietoa siitä, kuinka hyvä tai huono ilma on, sinun on ymmärrettävä, että värit liittyvät näihin arvoihin. Jokainen väri on indeksi. Tunnetuin niistä on AQI (Air Quality Index), jota käytetään Yhdysvalloissa ja useissa muissa maissa.

Vaihe 6: Ilmanlaatuindeksi - AQI

Ilmanlaatuindeksi - AQI
Ilmanlaatuindeksi - AQI
Ilmanlaatuindeksi - AQI
Ilmanlaatuindeksi - AQI
Ilmanlaatuindeksi - AQI
Ilmanlaatuindeksi - AQI

AQI on indeksi päivittäisen ilmanlaadun raportointiin. Se kertoo, kuinka puhdas tai saastunut ilma on ja mitkä siihen liittyvät terveysvaikutukset voivat huolestuttaa sinua. AQI keskittyy terveysvaikutuksiin, joita saatat kokea muutaman tunnin tai päivän kuluttua saastuneen ilman hengittämisestä.

Esimerkiksi EPA (Yhdysvaltain ympäristönsuojeluvirasto) laskee AQI-arvon hiukkassaasteiden (PM2.5 ja PM10) lisäksi myös muille puhtaan ilman lailla säänneltyille suurille ilmansaasteille: maanpäällinen otsoni, hiilimonoksidi, rikkidioksidi ja typpidioksidi. Jokaiselle näistä epäpuhtauksista EPA on vahvistanut kansalliset ilmanlaatustandardit kansanterveyden suojelemiseksi. Katso yllä oleva kuva AQI -arvoista, väreistä ja terveysviestistä.

Kuten edellä kommentoitiin, nämä AQI -arvot ja -värit liittyvät jokaiseen saasteaineeseen, mutta miten yhdistää anturien tuottamat arvot niihin? Ylimääräinen taulukko yhdistää ne kaikki yllä olevan kuvan mukaisesti.

Mutta tietysti ei ole mitään järkeä käyttää tällaista taulukkoa. Lopulta se on yksinkertainen matemaattinen algoritmi, joka tekee laskelman. Tätä varten tuomme kirjaston, joka muuntaa AQI-arvon ja epäpuhtauspitoisuuden (µg/m³) välillä: python-aqi.

Asenna kirjasto PIP: llä ja testaa (katso yllä oleva koodi)

pip asenna python-aqi

Entä Chile?

Chilessä käytetään vastaavaa indeksiä, ICAP: Air Quality Index for Breathable Particles. Tasavallan presidentin ministeriön pääsihteeristön 16. maaliskuuta 1998 antamassa korkeimmassa asetuksessa 59 vahvistetaan 1 artiklan g alakohdassa, että tasot, jotka määrittävät hengittävän hiukkasmateriaalin ICA: n, ICAP.

Arvot vaihtelevat lineaarisesti osien välillä, arvo 500 vastaisi raja -arvoa, jonka ylittyessä väestölle aiheutuisi riski altistua näille pitoisuuksille. ICAP -arvojen mukaan on määritetty luokkia, jotka määrittävät MP10 -pitoisuudet, joille ihmiset altistuivat.

Vaihe 7: Tietojen kirjaaminen paikallisesti

Tietojen kirjaaminen paikallisesti
Tietojen kirjaaminen paikallisesti
Tietojen kirjaaminen paikallisesti
Tietojen kirjaaminen paikallisesti
Tietojen kirjaaminen paikallisesti
Tietojen kirjaaminen paikallisesti

Tässä vaiheessa meillä on kaikki työkalut tietojen keräämiseen anturista ja myös niiden muuntaminen "luettavammaksi arvoksi", joka on AQI -indeksi.

Luodaan funktio näiden arvojen kaappaamiseksi. Otamme kolme arvoa peräkkäin ottaen niiden keskiarvon:

def get_data (n = 3):

sensor.sleep (sleep = False) pmt_2_5 = 0 pmt_10 = 0 time.sleep (10) i: lle alueella (n): x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1] time.sleep (2) pmt_2_5 = pyöreä (pmt_2_5/n, 1) pmt_10 = pyöreä (pmt_10/n, 1) sensor.sleep (sleep = True) time.sleep (2) paluu pmt_2_5, pmt_10 Yllä näet testituloksen. Tehdään myös toiminto, joka muuntaa PM: n numeeriset arvot AQI -indeksissä

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)) palauta aqi_2_5, aqi_10 molempien toimintojen testin tuloksen yläpuolella. Mutta mitä tehdä heidän kanssaan? Yksinkertaisin vastaus on luoda toiminto, joka tallentaa kaapatut tiedot ja tallentaa ne paikalliseen tiedostoon

def save_log ():

avoimena ("PATH HERE/air_quality.csv", "a") lokina: dt = datetime.now () log.write ("{}, {}, {}, {}, {} n". muodossa (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close () Yhdellä silmukalla voit kirjata tietoja säännöllisesti paikalliseen tiedostoosi, esimerkiksi joka minuutti

kun taas (totta):

pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) kokeile: save_log () paitsi: print ("[INFO] Virhe lokitiedoissa") time.sleep (60) Aikaleima ja tiedot "liitetään" tähän tiedostoon 60 sekunnin välein, kuten yllä näemme.

Vaihe 8: Tietojen lähettäminen pilvipalveluun

Tietojen lähettäminen pilvipalveluun
Tietojen lähettäminen pilvipalveluun

Tässä vaiheessa olemme oppineet keräämään tietoja anturista ja tallentamaan ne paikalliseen CSV -tiedostoon. Nyt on aika nähdä, miten nämä tiedot lähetetään IoT -alustalle. Tässä opetusohjelmassa käytämme ThingSpeak.com -sivustoa.

ThingSpeak on avoimen lähdekoodin esineiden Internet (IoT) -sovellus, joka tallentaa ja hakee tietoja asioista REST- ja MQTT-sovellusliittymien avulla. ThingSpeak mahdollistaa anturien kirjaussovellusten, sijaintiseurantaohjelmien ja sosiaalisen verkoston luomisen tilan päivityksillä.”

Ensinnäkin sinulla on oltava tili osoitteessa ThinkSpeak.com. Noudata seuraavaksi ohjeita kanavan luomiseksi ottaen huomioon sen kanavatunnus ja Write API -avain.

Kun luot kanavaa, sinun on myös määritettävä, mitä tietoja ladataan kullekin kahdeksasta kentästä, kuten yllä on esitetty (tässä tapauksessa vain 4 niistä käytetään).

Vaihe 9: MQTT -protokolla ja ThingSpeak -yhteys

MQTT -protokolla ja ThingSpeak -yhteys
MQTT -protokolla ja ThingSpeak -yhteys

MQTT on julkaisu/tilausarkkitehtuuri, joka on kehitetty ensisijaisesti kaistanleveyden ja tehonrajoitteisten laitteiden yhdistämiseksi langattomien verkkojen kautta. Se on yksinkertainen ja kevyt protokolla, joka toimii TCP/IP -pistorasioiden tai WebSockets -kanavien yli. MQTT WebSocketsin kautta voidaan suojata SSL: llä. Julkaise/tilaa tilausarkkitehtuuri mahdollistaa viestien siirtämisen asiakaslaitteisiin ilman, että laitteen tarvitsee jatkuvasti kysyä palvelinta.

MQTT -välittäjä on viestinnän keskeinen kohde, ja se vastaa kaikkien viestien lähettämisestä lähettäjien ja oikeiden vastaanottajien välillä. Asiakas on mikä tahansa laite, joka muodostaa yhteyden välittäjään ja voi julkaista tai tilata aiheita päästäkseen käsiksi tietoihin. Aihe sisältää välittäjän reititystietoja. Jokainen asiakas, joka haluaa lähettää viestejä, julkaisee ne tiettyyn aiheeseen, ja jokainen asiakas, joka haluaa vastaanottaa viestejä, tilaa tietyn aiheen. Välittäjä toimittaa kaikki vastaavan aiheen viestit sopiville asiakkaille.

ThingSpeakilla on MQTT -välittäjä osoitteessa mqtt.thingspeak.com ja portti 1883. ThingSpeak -välittäjä tukee sekä MQTT -julkaisua että MQTT -tilausta.

Meidän tapauksessamme käytämme MQTT -julkaisua.

Vaihe 10: MQTT -julkaisu

Julkaise MQTT
Julkaise MQTT

Asennetaan aluksi Eclipse Paho MQTT Python -asiakirjakirjasto, joka toteuttaa MQTT -protokollan versiot 3.1 ja 3.1.1

sudo pip asenna paho-mqtt

Tuodaan seuraavaksi paho -kirjasto:

tuo paho.mqtt.publish julkaisemisena

ja aloita Thingspeak -kanava ja MQTT -protokolla. Tämä yhteysmenetelmä on yksinkertaisin ja vaatii vähiten järjestelmäresursseja:

channelID = "YOUR CHANNEL ID"

apiKey = "SINUN KIRJOITETTU AVAIN" topic = "kanavat/" + kanavatunnus + "/julkaise/" + apiKey mqttHost = "mqtt.thingspeak.com" Nyt meidän on määriteltävä "hyötykuormamme"

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

Ja siinä se! olemme valmiita aloittamaan tietojen lähettämisen pilveen! Kirjoitetaan edellinen silmukkafunktio uudelleen sisältämään myös sen ThingSpeak -osa.

# Kaikki tiedot lähetetään ThingSpeakiin minuutin välein

kun taas (tosi): 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 () paitsi: print ("[INFO] Tietojen lähettäminen epäonnistui ") time.sleep (60) Jos kaikki on kunnossa, sinun on myös nähtävä tiedot kanavallasi osoitteessa thingspeak.com yllä kuvatulla tavalla.

Vaihe 11: Lopullinen käsikirjoitus

On tärkeää huomata, että Jupyter -muistikirja on erittäin hyvä työkalu kehitykseen ja raportointiin, mutta ei koodin luomiseen tuotantoon. Sinun pitäisi nyt ottaa asianmukainen osa koodista ja luoda.py -komentosarja ja suorittaa se päätelaitteellasi.

Esimerkiksi “ts_air_quality_logger.py”, joka kannattaa suorittaa komennolla:

python 3 ts_air_quality_logger.py

Tämä skripti sekä Jupyter -muistikirja ja sds011.py löytyvät arkistostani osoitteessa RPi_Air_Quality_Sensor.

Huomaa, että tämä skripti on mahdollista vain testausta varten. Parasta on olla käyttämättä viiveitä lopullisen silmukan sisällä (joka asettaa koodin "taukoon"), vaan käytä ajastimia. Tai oikeassa sovelluksessa paras ei ole käyttää silmukkaa, kun Linux on ohjelmoitu suorittamaan komentosarja säännöllisesti crontabin avulla.

Vaihe 12: Näytön vieminen ulkopuolelle

Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle
Näytön vieminen ulkopuolelle

Kun Raspberry Pi Air Quality -monitorini toimi, kokosin RPi: n muovilaatikkoon pitäen anturin ulkona ja asensin sen kotini ulkopuolelle.

Kokemuksia syntyi kaksi.

Vaihe 13: Bensiinimoottorin polttaminen

Bensiinimoottorin polttaminen
Bensiinimoottorin polttaminen
Bensiinimoottorin polttaminen
Bensiinimoottorin polttaminen

Anturi sijoitettiin noin 1 metrin päähän Lambretta -kaasupaneelista ja sen moottori käynnistyi. Moottori kävi pari minuuttia ja sammui. Yllä olevasta lokitiedostosta sain tuloksen. Mielenkiintoista vahvistaa, että PM2.5 oli vaarallisin hiukkanen, joka johtui moottorista.

Vaihe 14: Puun polttaminen

Puun polttaminen
Puun polttaminen
Puun polttaminen
Puun polttaminen

Lokitiedostoa tarkasteltaessa ymmärrämme, että anturitiedot olivat hetkellisiä "alueen ulkopuolella", eikä AQI -muunnoskirjasto tallentanut niitä hyvin, joten vaihdan edellisen koodin käsittelemään sitä:

def conv_aqi (pmt_2_5, pmt_10):

try: aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, str (pmt_10)) return aqi_2_5, aqi_10 paitsi: 600, Tämä tilanne voi tapahtua kentällä, mikä on OK. Muista, että itse asiassa sinun pitäisi käyttää liukuvaa keskiarvoa todella saadaksesi AQI (vähintään tunneittain, mutta yleensä päivittäin).

Vaihe 15: Johtopäätös

Johtopäätös
Johtopäätös

Kuten aina, toivon, että tämä projekti voi auttaa muita löytämään tiensä elektroniikan ja datatieteen jännittävään maailmaan!

Lisätietoja ja lopullinen koodi on GitHub -varastossani: RPi_Air_Quality_Sensor.

Terveisiä etelästä maailmasta!

Nähdään seuraavassa ohjeessani!

Kiitos, Marcelo

Suositeltava: