Tartalomjegyzék:

Olcsó IoT levegőminőség-monitor a RaspberryPi 4: 15 lépésen (képekkel)
Olcsó IoT levegőminőség-monitor a RaspberryPi 4: 15 lépésen (képekkel)

Videó: Olcsó IoT levegőminőség-monitor a RaspberryPi 4: 15 lépésen (képekkel)

Videó: Olcsó IoT levegőminőség-monitor a RaspberryPi 4: 15 lépésen (képekkel)
Videó: Wi-Free az ország legnagyobb wifihálózata 2024, Július
Anonim
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján
Olcsó IoT levegőminőség-monitor a RaspberryPi 4 alapján

Santiago, Chile téli környezeti vészhelyzetben abban a kiváltságban él, hogy a világ egyik legszebb országában élhet, de sajnos nem minden rózsa. Chile a téli szezonban sokat szenved a levegőszennyeződéstől, főleg a poros és szmogos részecskék miatt.

A hideg időjárás miatt délen a levegőszennyezés elsősorban a faalapú kályhafaktoroknak és Santiagóban (az ország központjának fővárosában) az iparágakból, az autókból és a két hatalmas hegylánc közötti egyedi földrajzi helyzetből adódik.

Napjainkban a levegőszennyezés nagy probléma az egész világon, és ebben a cikkben megvizsgáljuk, hogyan lehet egy olcsó, házi készítésű levegőminőség -ellenőrzőt kifejleszteni egy Raspberry Pi alapon. Ha többet szeretne megtudni a levegő minőségéről, kérjük, látogasson el a „World Air Quality Index” projektbe.

Kellékek

  • Raspberry Pi 4
  • 1SDS011 - Nagy pontosságú lézer pm2.5 levegőminőség -érzékelő
  • Műanyag doboz

1. lépés: Részecske -anyag (PM): Mi ez? Hogyan kerül a levegőbe?

Részecske -anyag (PM): Mi ez? Hogyan kerül a levegőbe?
Részecske -anyag (PM): Mi ez? Hogyan kerül a levegőbe?

Tehát a környezetszennyezés vagy a levegőszennyezés megértéséhez meg kell vizsgálnunk az ehhez kapcsolódó részecskéket, amelyeket részecskéknek is neveznek. Az előző rész grafikonjait megnézve megfigyelhetjük, hogy a PM2.5 és PM10 elemeket említették. Adjunk erről egy gyors áttekintést.

A PM a részecskéket (részecske szennyezésnek is nevezik) jelenti: a szilárd részecskék és a levegőben található cseppek keverékének kifejezése. Néhány részecske, például por, szennyeződés, korom vagy füst, elég nagy vagy sötét ahhoz, hogy szabad szemmel is látható legyen. Mások olyan kicsik, hogy csak elektronmikroszkóppal észlelhetők. A részecskék széles méretválasztékban kaphatók. A 10 mikrométer vagy annál kisebb átmérőjű részecskék olyan kicsik, hogy a tüdőbe kerülhetnek, ami súlyos egészségügyi problémákat okozhat. Tíz mikrométer kevesebb, mint egyetlen emberi hajszélesség.

A részecskeszennyezés magában foglalja a durva porrészecskéket (PM10): belélegezhető részecskéket, átmérőjük általában 10 mikrométer vagy kisebb. A források közé tartoznak a zúzási vagy őrlési műveletek, valamint a járművek által az utakon felkavart por. Finom részecskék (PM2,5): finom, belélegzett részecskék, átmérőjük általában 2,5 mikrométer vagy kisebb. Finom részecskék keletkeznek mindenféle égésből, beleértve a gépjárműveket, erőműveket, lakossági fatüzelést, erdőtüzeket, mezőgazdasági égetést és néhány ipari folyamatot. A részecskékről az EPA webhelyén talál többet: Az Egyesült Államok Környezetvédelmi Ügynöksége

2. lépés: Miért fontos törődni ezekkel a részecskékkel?

Miért fontos törődni ezekkel a részecskékkel?
Miért fontos törődni ezekkel a részecskékkel?

Amint azt GERARDO ALVARADO Z. a chilei egyetemen végzett munkájában leírta, a Meuse -völgyben (Belgium) 1930 -ban, a Donora -ban (Pennsylvania) 1948 -ban és Londonban 1952 -ben a magas légszennyezettség epizódjainak tanulmányozása volt az első dokumentált forrás, amely összefüggésben állt a halálozással. részecskeszennyezéssel (Préndez, 1993). A légszennyezésnek az emberek egészségére gyakorolt hatásainak vizsgálata során elért eredmények azt mutatták, hogy az egészségügyi kockázatokat a belélegzett részecskék okozzák, attól függően, hogy behatolnak és lerakódnak a légzőrendszer különböző részein, valamint a biológiai válasz a lerakódott anyagokra.

A legvastagabb, körülbelül 5 μm -es részecskéket az orrjárat csillóinak és az orrüreget és a légcsövet borító nyálkahártya együttes hatása szűri. A 0,5 és 5 μm közötti átmérőjű részecskék lerakódhatnak a hörgőkben, sőt a pulmonalis alveolusokban is, azonban néhány óra múlva a hörgők és a hörgők csillói eltávolítják őket. A 0,5 μm -nél kisebb részecskék mélyen behatolhatnak mindaddig, amíg le nem rakódnak a pulmonalis alveolusokba, hetekről évekre maradva, mivel nincs nyálkahártya -szállító mechanizmus, amely megkönnyíti az eliminációt. Az alábbi ábra a részecskék behatolását mutatja a légzőrendszerben, méretüktől függően.

Tehát mindkét típusú részecske (PM2.5 és PM10) észlelése nagyon fontos, és a jó hír az, hogy mindkettő olvasható egy egyszerű és nem drága érzékelővel, az SDS011 -tel.

3. lépés: A részecskeérzékelő - SDS011

Részecskeérzékelő - SDS011
Részecskeérzékelő - SDS011
Részecskeérzékelő - SDS011
Részecskeérzékelő - SDS011

A levegőminőség -ellenőrzés jól ismert és megalapozott tudomány, amely a 80 -as években kezdődött. Abban az időben a technológia meglehetősen korlátozott volt, és a légszennyezési komplexum számszerűsítésére használt megoldás nehézkes és valóban drága.

Szerencsére manapság a legújabb és legmodernebb technológiák alkalmazásával a levegőminőség -ellenőrzéshez használt megoldások nemcsak pontosabbak, hanem gyorsabbak is a mérésben. Az eszközök egyre kisebbek, és sokkal olcsóbbak, mint valaha.

Ebben a cikkben egy részecske -érzékelőre összpontosítunk, amely képes érzékelni a levegőben lévő por mennyiségét. Míg az első generáció éppen képes volt észlelni az átlátszatlanságot, a legújabb érzékelők, mint az INOVAFIT SDS011, a Jinan Egyetem (Shandong) spin-offja, most már képesek a PM2.5 és a PM10 észlelésére.

Méretével az SDS011 valószínűleg az egyik legjobb érzékelő a pontosság és az ár tekintetében (kevesebb, mint 40,00 USD).

  • Mért értékek: PM2.5, PM10
  • Tartomány: 0–999,9 μg /m³
  • Tápfeszültség: 5V (4,7–5,3V)
  • Energiafogyasztás (munka): 70mA ± 10mA
  • Energiafogyasztás (alvó üzemmódú lézer és ventilátor): <4mA
  • Tárolási hőmérséklet: -20 és +60 ° C között
  • Működési hőmérséklet: -10 és +50 ° C között
  • Páratartalom (tárolás): max. 90%
  • Páratartalom (munka): Max. 70% (a vízgőz páralecsapódása meghamisítja a leolvasott értékeket)
  • Pontosság: 0,3μm esetén 70%, 0,5μm esetén 98%
  • Méret: 71x70x23 mm
  • Tanúsítvány: CE, FCC, RoHS

Az SD011 a NYÁK -ot használja a burkolat egyik oldalán, így csökkentve annak költségeit. A receptor dióda a NYÁK oldalra van szerelve (ez kötelező, mivel el kell kerülni a zajokat a dióda és az LNA között). Az emitter lézer a műanyag dobozra van szerelve, és rugalmas vezetékkel csatlakozik a NYÁK -hoz.

Röviden, a Nova Fitness SDS011 egy professzionális lézeres porérzékelő. Az érzékelőre szerelt ventilátor automatikusan szívja a levegőt. Az érzékelő lézerfény szórási elve* alapján méri a levegőben lebegő porrészecskék értékét. Az érzékelő nagy pontosságot és megbízható leolvasást biztosít a PM2.5 és PM10 értékekhez. Bármilyen változás a környezetben szinte azonnal megfigyelhető, rövid válaszidő 10 másodperc alatt. A szenzor normál üzemmódban 1 másodperces időközönként jelenti a leolvasást.

* Lézerszórási elv: Fényszóródást lehet kiváltani, amikor a részecskék áthaladnak az érzékelési területen. A szórt fény elektromos jelekké alakul, és ezeket a jeleket felerősítik és feldolgozzák. A részecskék számát és átmérőjét elemzéssel lehet megállapítani, mivel a jel hullámforma bizonyos kapcsolatban áll a részecskék átmérőjével.

4. lépés: De hogyan tudja az SDS011 rögzíteni ezeket a részecskéket?

De hogyan tudja az SDS011 rögzíteni ezeket a részecskéket?
De hogyan tudja az SDS011 rögzíteni ezeket a részecskéket?
De hogyan tudja az SDS011 rögzíteni ezeket a részecskéket?
De hogyan tudja az SDS011 rögzíteni ezeket a részecskéket?

Amint azt korábban említettük, az SDS011 által alkalmazott elv a fényszórás vagy jobb, a dinamikus fényszórás (DLS), amely a fizika olyan technikája, amely alkalmas a szuszpenzióban lévő kis részecskék vagy az oldatban lévő polimerek méreteloszlási profiljának meghatározására. A DLS hatókörében az időbeli ingadozásokat általában az intenzitás vagy a foton automatikus korrelációs függvény segítségével elemzik (más néven fotonkorrelációs spektroszkópia vagy kvázi-rugalmas fényszórás). Az időtartomány -elemzés során az autokorrelációs funkció (ACF) általában a nulla késleltetési időből kiindulva bomlik le, és a kisebb részecskék miatt gyorsabb dinamika a szórt intenzitású nyom gyorsabb dekorrelációjához vezet. Kimutatták, hogy az ACF intenzitás a teljesítményspektrum Fourier -transzformációja, és ezért a DLS mérések ugyanolyan jól elvégezhetők a spektrális tartományban.

Két minta hipotetikus dinamikus fényszórása felett: nagyobb részecskék (mint a PM10) a tetején és kisebb részecskék (mint PM2,5) az alján. Az érzékelőnkbe nézve láthatjuk, hogyan valósul meg a fényszórási elv.

A diódán rögzített elektromos jel az alacsony zajszintű erősítőbe kerül, és ebből az ADC -n keresztül digitális jellé alakítható, míg az UART -on keresztül.

Ha többet szeretne megtudni az SDS011-ről egy valódi tudományos tapasztalatról, kérjük, tekintse meg Konstantinos és munkatársai 2018-as munkáját, a PM2.5-koncentrációk figyelésére szolgáló, alacsony költségű hordozható rendszer fejlesztése és helyszíni tesztelése.

5. lépés: Showtime

Showtime!
Showtime!
Showtime!
Showtime!

Tegyünk egy kis szünetet ezen elméleten, és összpontosítsunk a részecskék mérésére a Raspberry Pi és az SDS011 érzékelő segítségével

A HW csatlakozás valójában nagyon egyszerű. Az érzékelőt USB adapterrel együtt értékesítik, hogy a 7 tűs UART kimeneti adatait az RPi egyik szabványos USB -csatlakozójával illesszék össze.

SDS011 pinout:

  • 1. tű - nincs csatlakoztatva
  • 2. tű - PM2.5: 0–999μg/m³; PWM kimenet
  • Csap 3-5 V
  • 4. tű - PM10: 0–999 μg/m³; PWM kimenet
  • 5. tű - GND
  • 6. tű - RX UART (TTL) 3.3V
  • 7. tű - TX UART (TTL) 3.3V

Ehhez az oktatóanyaghoz most használok először egy vadonatúj Raspberry-Pi 4. De természetesen minden korábbi modell is jól fog működni.

Amint csatlakoztatja az érzékelőt az egyik RPi USB porthoz, automatikusan elkezdi hallgatni a ventilátor hangját. A zaj kissé bosszantó, ezért érdemes kihúzni a konnektorból, és várni, amíg minden készen áll az SW -vel.

Az érzékelő és az RPi közötti kommunikáció soros protokollon keresztül történik. A protokoll részletei itt találhatók: Lézeres porérzékelő vezérlő protokoll V1.3. Ehhez a projekthez azonban a legjobb, ha egy python felületet használunk a fejlesztendő kód egyszerűsítésére. Létrehozhat saját felületet, vagy használhat néhányat az interneten, például Frank Heuer vagy Ivan Kalchev. Az utolsót fogjuk használni, ami nagyon egyszerű és jól működik (az sds011.py szkriptet letöltheti a GitHub -ról vagy az enyémről).

Az sds011.py fájlnak ugyanabban a könyvtárban kell lennie, ahol a szkriptet létrehozta.

A fejlesztési szakaszban egy Jupyter Notebook -ot fogok használni, de bármilyen IDE -t használhat, ami tetszik (például a Thonny vagy a Geany, amelyek a Raspberry Pi Debian csomag részét képezik, mindkettő nagyon jó).

Kezdje el az sds011 importálását és az érzékelőpéldány létrehozását. Az SDS011 módszert biztosít az érzékelőből történő olvasáshoz UART használatával.

az sds011 importból *

érzékelő = SDS011 ("/dev/ttyUSB0")

Az alvás paranccsal be- vagy kikapcsolhatja az érzékelőt:

pmt_2_5, pmt_10 = sensor.query ()

Várjon legalább 10 másodpercet a stabilizációig a mérések előtt, és legalább 2 másodpercet az új mérés megkezdéséhez (lásd a fenti kódot).

És ez minden, amit tudnia kell az SW -ről az érzékelő használatához. De menjünk mélyebbre a levegőminőség -ellenőrzésről! A cikk elején, ha feltárta azokat a webhelyeket, amelyek információt nyújtanak arról, hogy jó vagy rossz a levegő, akkor tudnia kell, hogy a színek ezekhez az értékekhez kapcsolódnak. Minden szín index. Ezek közül a legismertebb az AQI (Air Quality Index), amelyet az Egyesült Államokban és számos más országban használnak.

6. lépés: Levegőminőségi index - AQI

Levegőminőségi index - AQI
Levegőminőségi index - AQI
Levegőminőségi index - AQI
Levegőminőségi index - AQI
Levegőminőségi index - AQI
Levegőminőségi index - AQI

Az AQI egy index a napi levegőminőségről. Elmondja, mennyire tiszta vagy szennyezett a levegője, és milyen egészségügyi hatások okozhatnak aggodalmat az Ön számára. Az AQI az egészségre gyakorolt hatásokra összpontosít, amelyeket néhány órán vagy napon belül tapasztalhat a szennyezett levegő belélegzése után.

Az EPA (az Egyesült Államok Környezetvédelmi Ügynöksége) például nemcsak a részecskeszennyezés (PM2.5 és PM10), hanem a tiszta levegőtörvény által szabályozott többi fő légszennyező anyag esetében is kiszámítja az AQI-t: talajszintű ózon, szén-monoxid, kén -dioxid és nitrogén -dioxid. E szennyező anyagok mindegyikére az EPA nemzeti levegőminőségi szabványokat állapított meg a közegészség védelme érdekében. Lásd a fenti képet az AQI értékekkel, színekkel és egészségügyi üzenettel.

Amint azt korábban említettük, ezek az AQI értékek és színek a szennyező anyagok mindegyikéhez kapcsolódnak, de hogyan lehet hozzájuk társítani az érzékelők által generált értékeket? Egy további táblázat összeköti őket a fentiek szerint.

De természetesen nincs értelme ilyen táblázatot használni. Végül ez egy egyszerű matematikai algoritmus, amely elvégzi a számítást. Ehhez importáljuk a könyvtárat az AQI érték és a szennyezőanyag-koncentráció (µg/m³) közötti konvertáláshoz: python-aqi.

Telepítse a könyvtárat a PIP segítségével, és végezzen tesztet (lásd a fenti kódot)

pip install python-aqi

És mi lesz Chilével?

Chilében hasonló indexet használnak, az ICAP: Air Quality Index for Breathable Particles. A Köztársasági Elnökség Minisztériumának főtitkárának 1998. március 16 -i 59. számú legfelsőbb rendelete 1. cikkének g) pontjában megállapítja, hogy a szellőző részecskék anyagára vonatkozó ICA -t meghatározó szintek.

Az értékek lineárisan változnak a szakaszok között, az 500 érték megfelel annak a határértéknek, amely felett a lakosság veszélye áll fenn ezen koncentrációknak kitéve. Az ICAP értékek szerint olyan kategóriák jönnek létre, amelyek minősítik az MP10 koncentrációszintjét, amelynek az emberek ki voltak téve.

7. lépés: Adatok naplózása helyben

Adatok naplózása helyben
Adatok naplózása helyben
Adatok naplózása helyben
Adatok naplózása helyben
Adatok naplózása helyben
Adatok naplózása helyben

Ezen a ponton minden eszközünk megvan arra, hogy adatokat rögzítsünk az érzékelőből, és átalakítsuk azokat egy „olvashatóbb értékre”, azaz az AQI indexre.

Hozzunk létre egy függvényt ezen értékek rögzítésére. Három értéket rögzítünk egymás után, figyelembe véve az átlagot:

def get_data (n = 3):

sensor.sleep (sleep = False) pmt_2_5 = 0 pmt_10 = 0 time.sleep (10) az i -nél a (n) tartományban: x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1] time.sleep (2) pmt_2_5 = kerek (pmt_2_5/n, 1) pmt_10 = round (pmt_10/n, 1) sensor.sleep (sleep = True) time.sleep (2) return pmt_2_5, pmt_10 Fent láthatja a teszt eredményét. Csináljunk egy funkciót a PM numerikus értékeinek konvertálására az AQI indexben

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)) return aqi_2_5, aqi_10 mindkét funkcióval végzett teszt eredménye felett. De mit kezdjünk velük? A legegyszerűbb válasz az, hogy létrehoz egy függvényt a rögzített adatok mentéséhez, és egy helyi fájlba menti őket

def save_log ():

nyitott ("AZ ÖN PATH ITT/air_quality.csv", "a") naplóként: dt = datetime.now () log.write ("{}, {}, {}, {}, {} n". formátum (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close () Egyetlen hurokkal rendszeresen naplózhat adatokat a helyi fájlban, például percenként

míg (igaz):

pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) try: save_log () kivéve: print ("[INFO] Failure in logging data") time.sleep (60) 60 másodpercenként az időbélyeg és az adatok „hozzáfűződnek” ehhez a fájlhoz, amint azt fent láthatjuk.

8. lépés: Adatok küldése felhőszolgáltatásba

Adatok küldése felhőszolgáltatásba
Adatok küldése felhőszolgáltatásba

Ezen a ponton megtanultuk, hogyan lehet adatokat rögzíteni az érzékelőből, és elmenteni őket egy helyi CSV -fájlba. Itt az ideje, hogy lássuk, hogyan lehet ezeket az adatokat IoT -platformra küldeni. Ezen az oktatóanyagon a ThingSpeak.com webhelyet fogjuk használni.

„A ThingSpeak egy nyílt forráskódú Internet of Things (IoT) alkalmazás, amellyel adatokat tárolhat és kérhet le a dolgokról, REST és MQTT API-k segítségével. A ThingSpeak lehetővé teszi az érzékelőnaplózó alkalmazások, a helykövető alkalmazások és a közösségi hálózatok létrehozását állapotfrissítésekkel.”

Először is rendelkeznie kell fiókkal a ThinkSpeak.com webhelyen. Ezután kövesse az utasításokat a csatorna létrehozásához, figyelembe véve annak csatornaazonosítóját és az Write API kulcsát.

A csatorna létrehozásakor meg kell határoznia azt is, hogy a 8 mező mindegyikére milyen adatokat kell feltölteni, amint az fent látható (esetünkben csak 4 -et fogunk használni).

9. lépés: MQTT protokoll és ThingSpeak kapcsolat

MQTT protokoll és ThingSpeak kapcsolat
MQTT protokoll és ThingSpeak kapcsolat

Az MQTT egy közzétételi/előfizetési architektúra, amelyet elsősorban a sávszélesség és a korlátozott teljesítményű eszközök vezeték nélküli hálózatokon keresztül történő összekapcsolására fejlesztettek ki. Ez egy egyszerű és könnyű protokoll, amely TCP/IP vagy WebSockets aljzatokon fut. Az MQTT a WebSockets -en keresztül SSL -sel védhető. A közzététel/előfizetés architektúra lehetővé teszi az üzenetek kliens eszközökre történő továbbítását anélkül, hogy az eszköznek folyamatosan le kellene kérdeznie a szervert.

Az MQTT bróker a kommunikáció központi pontja, és feladata az összes üzenet elküldése a feladók és a jogosultak között. Az ügyfél minden olyan eszköz, amely csatlakozik a brókerhez, és közzétehet vagy feliratkozhat témákra az információk eléréséhez. Egy témakör a bróker útválasztási információit tartalmazza. Minden ügyfél, amely üzeneteket szeretne küldeni, közzéteszi azokat egy bizonyos témában, és minden ügyfél, amely üzeneteket szeretne kapni, feliratkozik egy bizonyos témára. A bróker minden üzenetet a megfelelő témával eljuttat a megfelelő ügyfelekhez.

A ThingSpeak ™ rendelkezik MQTT brókerrel az mqtt.thingspeak.com és az 1883. URL címen. A ThingSpeak bróker támogatja mind az MQTT közzétételt, mind az MQTT előfizetést.

Esetünkben az MQTT Publish -t fogjuk használni.

10. lépés: MQTT közzététel

MQTT Közzététel
MQTT Közzététel

Kezdésként telepítsük az Eclipse Paho MQTT Python klienskönyvtárat, amely az MQTT protokoll 3.1 és 3.1.1 verzióit valósítja meg

sudo pip install paho-mqtt

Ezután importáljuk a paho könyvtárat:

importálja a paho.mqtt.publish -t közzétételként

és kezdeményezze a Thingspeak csatornát és az MQTT protokollt. Ez a csatlakozási módszer a legegyszerűbb és a legkevesebb rendszer -erőforrást igényli:

channelID = "YOUR CHANNEL ID"

apiKey = "YOUR WRITE GEY" topic = "csatornák/" + csatornaID + "/közzététel/" + apiKey mqttHost = "mqtt.thingspeak.com" Most meg kell határoznunk a „hasznos terhelésünket”

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

És ez az! készen állunk az adatok küldésére a felhőbe! Írjuk át az előző ciklusfüggvényt, hogy a ThingSpeak részét is tartalmazza.

# Minden adat elküldése a ThingSpeak -hez 1 percenként

míg (igaz): 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 () kivéve: print ("[INFO] Sikertelen adatküldés ") time.sleep (60) Ha minden rendben van, látnia kell, hogy az adatok a csatornán is megjelennek a thingspeak.com webhelyen, a fentiek szerint.

11. lépés: Az utolsó szkript

Fontos kiemelni, hogy a Jupyter Notebook egy nagyon jó eszköz a fejlesztéshez és a jelentésekhez, de nem, hogy létrehozzunk egy kódot a gyártáshoz. Most tegye meg a kód megfelelő részét, és hozzon létre egy.py szkriptet, és futtassa a terminálon.

Például: „ts_air_quality_logger.py”, amelyet a következő paranccsal kell futtatni:

python 3 ts_air_quality_logger.py

Ez a szkript, valamint a Jupyter Notebook és az sds011.py megtalálható az RPi_Air_Quality_Sensor tárhelyemen.

Vegye figyelembe, hogy ez a szkript csak tesztelésre alkalmas. A legjobb, ha nem használ késleltetést az utolsó cikluson belül (ami "szünet" -be helyezi a kódot), hanem időzítőt használ. Vagy egy valódi alkalmazás esetében a legjobb, ha nem használja a hurkot, ha a Linux programozva fut a szkriptnek rendszeresen a crontab segítségével.

12. lépés: A monitor kivitele kívülről

A monitor kivitele kívülről
A monitor kivitele kívülről
A monitor kivitele kívülről
A monitor kivitele kívülről
A monitor kivitele kívülről
A monitor kivitele kívülről
A monitor kivitele kívülről
A monitor kivitele kívülről

Miután a Raspberry Pi Air Quality monitorom működött, összeszereltem az RPi -t egy műanyag dobozba, kívül tartva az érzékelőt, és az otthonomon kívül.

Két tapasztalat született.

13. lépés: Benzinmotor égése

Benzinmotor égése
Benzinmotor égése
Benzinmotor égése
Benzinmotor égése

Az érzékelőt körülbelül 1 méterre helyezték el a Lambretta gáztől, és a motorja bekapcsolódott. A motor pár percig működött és leállt. A fenti naplófájlból az eredményt kaptam. Érdekes megerősíteni, hogy a PM2.5 volt a legveszélyesebb részecske a motorból.

14. lépés: Faégetés

Faégés
Faégés
Faégés
Faégés

A naplófájlt megnézve rájövünk, hogy az érzékelő adatai pillanatnyi "tartományon kívüliek" voltak, és az AQI konverziós könyvtár nem jól rögzítette őket, ezért módosítom a korábbi kódot annak kezelésére:

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 kivéve: 600, Ez a helyzet előfordulhat a terepen, ami rendben van. Ne feledje, hogy valójában a mozgóátlagot kell használnia, hogy valóban megkapja az AQI -t (legalább óránként, de általában naponta).

15. lépés: Következtetés

Következtetés
Következtetés

Mint mindig, remélem, hogy ez a projekt segíthet másoknak is eligazodni az elektronika és az adattudomány izgalmas világában!

A részletekért és a végső kódért keresse fel a GitHub letéteményemet: RPi_Air_Quality_Sensor.

Üdvözlet a világ déli részéről!

Találkozunk a következő tanításomnál!

Köszönöm, Marcelo

Ajánlott: