Útmutató: AIR RASPBERRY Pi
RASPBERRY PI 400-HOZ TERVEZVE. KOMPATIBILIS A RASPBERRY PI 2, 3 ÉS 4.
V1d
BEVEZETÉS
A Raspberry Pi-hez készült MonkMakes levegőminőség-készlet a MonkMakes levegőminőség-érzékelő táblán alapul. Ez a Raspberry Pi kiegészítő méri a helyiség levegőjének minőségét (mennyire áll a levegő), valamint a hőmérsékletet. A táblán hat LED-es kijelző (zöld, narancssárga és piros) található, amelyek a levegő minőségét jelzik, valamint egy hangjelzés. A hőmérséklet és a levegő minősége leolvasható a Raspberry Pi-vel, és a hangjelző és a LED-kijelző is vezérelhető a Raspberry Pi-ről.
A levegőminőség-érzékelő kártya közvetlenül a Raspberry Pi 400 hátuljához csatlakozik, de a készletben található áthidaló vezetékek és GPIO sablon segítségével más Raspberry Pi modellekkel is használható.
ALKATRÉSZEK
Kérjük, vegye figyelembe, hogy ez a készlet NEM tartalmazza a Raspberry Pi-t.
Mielőtt bármi mást tenne, ellenőrizze, hogy a készlet tartalmazza-e az alábbi elemeket.
LEVEGŐMINŐSÉG ÉS ÖKO2
A levegőminőség-érzékelő kártya CCS811 cikkszámú érzékelőt használ. Ez a kis chip valójában nem a CO2 (szén-dioxid) szintjét méri, hanem az illékony szerves vegyületek (VOC) nevű gázcsoport szintjét. Beltérben ezeknek a gázoknak a szintje a CO2 szintjéhez hasonló mértékben emelkedik, ezért felhasználható a CO2 (ezt egyenértékű CO2-nak vagy eCO2-nek) becsülik.
A belélegzett levegő CO2 szintje közvetlen hatással van közérzetünkre. A CO2-szintek közegészségügyi szempontból különösen érdekesek view leegyszerűsítve, ezek annak mértékegységei, hogy mennyire szívjuk be mások levegőjét. Mi, emberek kilélegezzük a CO2-t, így ha többen tartózkodnak egy rosszul szellőző helyiségben, a CO2 szintje fokozatosan emelkedni fog. Ez nagyjából ugyanaz, mint a vírusos aeroszolok, amelyek a megfázást, az influenzát és a koronavírust terjesztik, miközben az emberek együtt lélegeznek ki.
A CO2-szint másik fontos hatása a kognitív funkciókra vonatkozik – milyen jól tudsz gondolkodni. Ez a tanulmány (többek között) érdekes eredményeket tartalmaz. A következő idézet az Egyesült Államok Nemzeti Biotechnológiai Információs Központjától származik: „1,000 ppm CO2-nál mérsékelt és statisztikailag szignifikáns csökkenés következett be a döntéshozatali teljesítmény kilenc skálájából hatban. 2,500 ppm-nél jelentős és statisztikailag szignifikáns csökkenés következett be a döntéshozatali teljesítmény hét skálájában” Forrás: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3548274/
Az alábbi táblázat a következőtől származó információkon alapul https://www.kane.co.uk/knowledge-centre/whatare-safe-levels-of-co-and-co2-in-rooms
és megmutatja, hogy a CO2 milyen szinteken válhat egészségtelenné. A CO2-leolvasás ppm-ben (parts per million) van megadva.
CO2 szint (ppm) | Megjegyzések |
250-400 | Normál koncentráció a környezeti levegőben. |
400-1000 | Az elfoglalt beltéri, jó légcserével rendelkező terekre jellemző koncentrációk. |
1000-2000 | Álmosság és rossz levegő miatti panaszok. |
2000-5000 | Fejfájás, álmosság és stagnant, áporodott, fülledt levegő. Gyenge koncentráció, figyelemvesztés, fokozott pulzusszám és enyhe hányinger is előfordulhat. |
5000 | Munkahelyi expozíciós határérték a legtöbb országban. |
>40000 | Az expozíció súlyos oxigénhiányhoz vezethet, amely maradandó agykárosodást, kómát vagy akár halált is okozhat. |
BEÁLLÍTÁS
Akár Raspberry Pi 400-at, akár Raspberry Pi 2-t, 3-at vagy 4-et használ, a levegőminőség-érzékelő csatlakoztatása előtt győződjön meg arról, hogy a Raspberry Pi ki van kapcsolva, és ki van kapcsolva.
A levegőminőség-érzékelő azonnal megjeleníti az eCO2-értékeket, amint áramot kap a Raspberry Pi-től. Tehát, miután csatlakoztatta, a kijelzőnek az eCO2-szintet kell mutatnia. Ezután megtanulja, hogyan kommunikálhat a táblával, hogyan fogadhatja a leolvasásokat, és hogyan vezérelheti a LED-eket és a hangjelzést egy Python programból.
A levegőminőség-érzékelő csatlakoztatása (Raspberry Pi 400)
Nagyon fontos, hogy a csatlakozót ne nyomja be ferdén, vagy ne nyomja túl erősen, mert meghajlíthatja a GPIO csatlakozó tűit. Amikor a csapok sorakoznak
helyesen, könnyen a helyére kell nyomódnia.A csatlakozó a fent látható módon illeszkedik. Figyelje meg, hogy a tábla alsó széle egy vonalban van a Pi 400 házának aljával, és a tábla oldala éppen elég helyet hagy a mikro SD-kártya könnyű eléréséhez. Miután csatlakoztatta az alaplapot, kapcsolja be a Raspberry Pi-t. — a tápellátás LED-nek (a MonkMakes logóban) és az egyik eCO2 LED-nek is világítania kell.
A levegőminőség-érzékelő csatlakoztatása (Raspberry Pi 2/3/4)
Ha Raspberry Pi 2, 3, 4 készüléke van, akkor szüksége lesz a Raspberry Leafre és néhány anya-apa áthidaló vezetékre, hogy a levegőminőség-érzékelő kártyát a Raspberry Pi-hez csatlakoztassa.
FIGYELMEZTETÉS: A tápvezetékek megfordítása vagy a levegőminőség-érzékelő 5 V-ra történő csatlakoztatása a Raspberry Pi 3 V-os tűje helyett valószínűleg eltöri az érzékelőt, és károsíthatja a Raspberry Pi-t. Ezért kérjük, gondosan ellenőrizze a vezetékeket, mielőtt bekapcsolja a Raspberry Pi-t.
Kezdje azzal, hogy a Raspberry Leaf-et a Raspberry Pi GPIO tűire illeszti, így meg tudja állapítani, melyik tű melyik. A sablon mindkét irányba elfér, ezért ügyeljen arra, hogy kövesse az alábbi diagramot. Ezután négy vezetéket kell csatlakoztatni a Raspberry Pi GPIO érintkezői és az Air Quality kártya közé, így:
Raspberry Pi Pin (mint felcímkézve a levélen) | Levegőminőségi Tanács (mint felirattal a csatlakozón) | A vezeték javasolt színe. |
GND (bármelyik GND jelzésű tű megteszi) | GND | Fekete |
3.3V | 3V | Piros |
14 TXD | PI_TXD | Narancs |
15 RXD | PI_RXD | Sárga |
Miután minden csatlakoztatva van, így kell kinéznie:Gondosan ellenőrizze a vezetékeket, majd kapcsolja be a Raspberry Pi-t – a tápellátás LED-jének (a MonkMakes logóban) és az egyik LED-nek is világítania kell.
A levegőminőségi tábla kihúzása
Mielőtt eltávolítaná a táblát egy Raspberry Pi 400-ból.
- Kapcsolja ki a Raspberry Pi-t.
- Finoman húzza le a táblát a Pi 400 hátuljáról, mindkét oldalról egy kicsit szegélyezve, hogy ne hajlítsa meg a csapokat.
Ha Pi 2/3/4-ed van, egyszerűen távolítsa el az áthidaló vezetékeket a Raspberry Pi-ről.
A soros interfész engedélyezése
Annak ellenére, hogy a tábla minden programozás nélkül mutatja az eCO2 szintet, ez azt jelenti, hogy csak a Raspberry Pi-t használjuk áramforrásként. Ahhoz, hogy egy Python programból kommunikálhassunk a táblával a Raspberry Pi-n, még néhány lépést meg kell tennünk.
Az első a soros interfész engedélyezése a Raspberry Pi-n, mivel ezt az interfészt használja az Air Quality tábla.
Ehhez válassza a Beállítások, majd a Raspberry Pi konfigurációt a főmenüből.
Váltson az Interfészek fülre, és győződjön meg arról, hogy a soros port engedélyezve van, és a soros konzol le van tiltva.
Az Ex letöltéseample Programok
Az exampA készlethez tartozó programok letölthetők a GitHubról. A letöltéshez indítson el egy böngészőablakot Raspberry Pi készülékén, és lépjen erre a címre:
https://github.com/monkmakes/pi_aq Töltse le a projekt zip archívumát a Kód gombra, majd a ZIP letöltése lehetőségre kattintva.Miután a letöltés befejeződött, bontsa ki a files a ZIP archívumból a ZIP megkeresésével file a Letöltések mappában, majd kattintson rá a jobb gombbal, és válassza a Kicsomagolás lehetőséget.
Válasszon ki egy megfelelő könyvtárat (javaslom a saját könyvtárát – /home/pi), és bontsa ki a files. Ez létrehoz egy pi_aq-main nevű mappát. Nevezze át ezt csak pi_aq-ra.
Thonny
Miután letöltötte a programokat, egyszerűen futtathatja őket a parancssorból.
Azonban jó egy pillantást vetni a files, és a Thonny szerkesztő lehetővé teszi számunkra a files és futtatni őket.
A Thonny Python szerkesztő előre telepítve van a Raspberry Pi OS-ben. A főmenü Programozás részében találja meg. Ha bármilyen okból nincs telepítve az Ön számítógépére
Raspberry Pi, akkor telepítheti a Beállítások menü Szoftver hozzáadása/eltávolítása menüpontjával.A következő rész egy kicsit részletesebben elmagyarázza, hogy mit mér ez az érzékelő, mielőtt a Python és a Thonny használatával kapcsolatba lépnénk az Air Quality táblával.
KEZDÉSEK
Mielőtt elkezdenénk a Python programozást, vessünk egy pillantást a Levegőminőség-táblára.A bal felső sarokban lévő tápellátást jelző LED gyors ellenőrzést biztosít, hogy a kártya kap-e áramot. Ez alatt van egy hőmérséklet-érzékelő chip, mellette pedig maga az eCO2 érzékelő chip. Ha alaposan megnézi, látni fogja, hogy apró lyukak vannak rajta, hogy a levegő be- és kijusson. Közvetlenül az eCO2 szenzor alatt van egy berregő, amelyet a programokból ki- és bekapcsolhat. Ez hasznos riasztások biztosításához. A hat LED-ből álló oszlop (alulról felfelé) két zöld LED-ből, két narancssárga LED-ből és két piros LED-ből áll. Ezek akkor világítanak, ha az egyes LED-ek mellett jelölt eCO2 szintet túllépik. Amint a Raspberry Pi bekapcsol, azonnal megmutatják a szintet, de Python segítségével is vezérelheti őket.
Kezdjük azzal, hogy a parancssorból próbáljunk ki néhány kísérletet. Nyisson meg egy terminál-munkamenetet a képernyő tetején található Terminál ikonra vagy a Főmenü Tartozékok szakaszára kattintva. Amikor a terminál megnyílik, írja be a következő parancsokat a $ prompt után a könyvtárak (cd) megváltoztatásához és a Python megnyitásához
Nyissa meg a helyi aq modult a következő parancs beírásával: >>> from aq import AQ
>>> Ezután hozzon létre egy példányt az AQ osztályból a következő beírásával: >>> aq = AQ()
>>> Most már leolvashatjuk a CO2-szintet a következő parancs beírásával: >>> aq.get_eco2() 434.0
>>> Tehát ebben az esetben az eCO2 szint szép friss 434 ppm. Most nézzük meg a hőmérsékletet (Celcius-fokban). >>> aq.get_temp()
20.32 Megjegyzés: Ha hibaüzeneteket kap a fenti kód futtatásakor, előfordulhat, hogy nincs telepítve a GUIZero. Telepítési útmutató itt:
https://lawsie.github.io/guizero/#raspberry-pi
PROGRAM 1. ECO2 MÉRŐ
A program futtatásakor az alábbihoz hasonló ablak nyílik meg, amely a hőmérsékletet és az eCO2 szintet mutatja. Próbálja rátenni az ujját a hőmérséklet-érzékelőre, és a hőmérsékleti értékeknek emelkedniük kell. Finoman lélegezhet is az eCO2 érzékelőn, és a leolvasott értékeknek növekedniük kell.A program futtatásához töltse be a file 01_aq_meter.py a Thonnyban, majd kattintson a Futtatás gombra.
Itt van a projekt kódja. A kód a GUI Zero könyvtárat használja, amelyről bővebben a B függelékben olvashat.
Annak érdekében, hogy a hőmérséklet és a fény leolvasása a felhasználói felület működésének megszakítása nélkül történhessen, a szálfűzési könyvtár importálva van. Az update_readings függvény örökre ciklusban marad, fél másodpercenként leolvasva, és frissíti az ablak mezőit.
A kód többi része a hőmérséklet és az eCO2 szint megjelenítéséhez szükséges felhasználói felület mezőket tartalmazza. Ezek rácsként vannak elrendezve, hogy a mezők egy vonalban legyenek. Tehát minden mezőt egy rácsattribútum határoz meg, amely az oszlop- és sorpozíciót jelenti. Tehát a Temp (C) szöveget megjelenítő mező a 0. oszlop 0. sorában, a megfelelő hőmérsékleti érték (temp_c_field) pedig az 1. oszlop 0. sorában található.
2. PROGRAM. ECO2 MÉRŐ RIASZTÁSSAL
Ez a program kiterjeszti az 2. programot a berregő és néhány különleges felhasználói felület funkció használatával, hogy riasztást adjon, és az ablak pirosra vált, ha a beállított eCOXNUMX-szintet túllépik. Az ablak alján található csúszka beállítja azt az eCO2 szintet, amelynél a hangjelzésnek meg kell szólalnia, és az ablak pirosra vált. Próbálja meg a Riasztási szintet kicsit magasabbra állítani, mint a
az aktuális eCO2 szintet, majd lélegezzen rá az érzékelőre.Itt van a 2. program kódja, nagy része nagyon hasonlít az 1. programhoz. Az érdeklődési területek a bold.import szálfűzésben vannak kiemelve
behozatali idő
a guizero import alkalmazásból, szövegből, csúszkából
aq importból AQ
aq = AQ()
alkalmazás = Alkalmazás(cím=”Levegőminőség”, szélesség=550, magasság=400, elrendezés=”rács”)
def update_readings():
míg True: temp_c_field.value = str(aq.get_temp()) eco2 = aq.get_eco2() eco2_field.value = str(eco2)
if eco2 > slider.value: app.bg = "piros" app.text_color = "fehér" aq.buzzer_on()
else: app.bg = "fehér" app.text_color = "fekete" aq.buzzer_off() time.sleep(0.5)
t1 = szálfűzés.Thread(cél=frissítés_olvasások)
t1.start() # elindítja azt a szálat, amely frissíti a leolvasást aq.leds_automatic()
# határozza meg a felhasználói felületet
Szöveg(alkalmazás, szöveg=”Hőmérséklet (C)”, rács=[0,0], méret=20)
temp_c_field = Szöveg(alkalmazás, szöveg=”-“, rács=[1,0], méret=100)
Szöveg(alkalmazás, szöveg=”eCO2 (ppm)”, rács=[0,1], méret=20)
eco2_field = Szöveg(alkalmazás, szöveg=”-“, rács=[1,1], méret=100)
Szöveg(alkalmazás, szöveg=”Riasztás (ppm)”, rács=[0,2], méret=20)
csúszka = Slider(alkalmazás, kezdet=300, vége=2000, szélesség=300, magasság=40, rács=[1,2]) app.display()
Először is hozzá kell adnunk a Slider-t a guizero-ból importált dolgok listájához.
Ki kell terjesztenünk az update_readings funkciót is, hogy a hőmérséklet és az eCO2 szint kijelzése mellett azt is ellenőrizze, hogy a szint meghaladja-e a küszöbértéket. Ha igen, akkor az ablak hátterét pirosra, a szöveget fehérre állítja, és bekapcsolja a csengőt. Ha az eCO2 szint a csúszka által beállított küszöbérték alatt van, akkor ezt megfordítja, és kikapcsolja a hangjelzést.
PROGRAM 3. ADATLOGGER
Ez a program (03_data_logger.py) nem rendelkezik grafikus felülettel. Csak arra kéri, hogy adjon meg egy másodperces intervallumot a leolvasások között, majd írja be az a nevét file
amelyben elmentheti a leolvasott adatokat.Az example fent, sampling 5 másodpercre van állítva, és a file olvasmányok.txt. Ha befejezte az adatok naplózását, a CTRL-c leállítja a naplózást, és bezárja a file.
Az adatok a fenti képernyőfelvételen látható formátumban kerülnek mentésre. Ez azt jelenti, hogy az első sor határozza meg a címsorokat, és minden értéket TAB karakter választ el. Az file ugyanabban a könyvtárban van elmentve, mint a program. Az adatok rögzítése után importálhatja azokat egy táblázatba (például a LibreOffice-ba) a Raspberry Pi-n, majd diagramot készíthet az adatokból. Ha a LibreOffice nincs telepítve a Raspberry Pi-re, a Beállítások menü Szoftver hozzáadása/eltávolítása opciójával telepítheti.
Nyisson meg egy új táblázatot, és válassza a Megnyitás lehetőséget file menüt, és navigáljon az adatokhoz file meg akarod nézni. Ezzel megnyílik egy importálási párbeszédpanel (lásd a következő oldalon).
hogy a táblázat automatikusan felismerte az adatok oszlopait. Kattintson az OK gombra az adatok importálásához, majd válassza ki az eCO2-leolvasások oszlopát. Ezután megrajzolhatja ezeknek a leolvasásoknak a grafikonját, ha kiválasztja a Diagram elemet a Beszúrás menüből, majd kiválaszt egy diagramtípust a Vonal, majd a Csak vonal lehetőséget. Ez a következő oldalon látható grafikont kapja.
Kísérletként hagyja futni a naplózó programot 24 órán keresztül, hogy lássa, hogyan változik az eCO2 szint a nap folyamán.
FÜGGELÉK A. API DOKUMENTÁCIÓ
Komoly programozóknak – itt a műszaki dokumentáció. Az file A monkmakes_aq.py nem teljes Python-könyvtárként van telepítve, hanem ugyanabba a mappába kell másolni, mint bármely más kódot, amelynek használnia kell. aq.py
A monkmakes_aq.py modul egy olyan osztály, amely a Raspberry Pi és az Air Quality tábla közötti soros kommunikációt bonyolítja le.
Az AQ példányának létrehozása: aq = AQ()
Az eCO2 leolvasás olvasása
aq.get_eco2() # az eCO2-értéket adja vissza ppm-ben
A hőmérséklet leolvasása C fokban
aq.get_temp() # a hőmérsékletet adja vissza C-fokban
A LED kijelző
aq.leds_manual() # állítsa be a LED módot manuálisra
aq.leds_automatic() # állítsa a LED üzemmódot automatikusra
# hogy a LED-ek eCO2-t mutassanak
aq.set_led_level(level) # szint 0-LED ki,
# 1-6. szintű LED 1-6 világít
Berregő
aq.buzzer_on()
aq_buzzer_off()
Az osztály a Pi soros interfészén keresztül kommunikál az érzékelőkártyával. Ha szeretné látni a soros interfész részleteit, kérjük, tekintse meg a termék adatlapját. A terméknél találsz egy linket erre web oldal (http://monkmakes.com/pi_aq)
FÜGGELÉK B. GUI NULLA
Laura Sach és Martin O'Hanlon, a The Raspberry Pi Foundation munkatársa, létrehoztak egy Python-könyvtárat (GUI Zero), amely rendkívül egyszerűvé teszi a grafikus felhasználói felületek tervezését. Ez a készlet ezt a könyvtárat használja.
A könyvtár használata előtt importálnia kell a programban használni kívánt bitjeit.
Plample, ha csak egy üzenetet tartalmazó ablakot akartunk, itt az import parancs:
a guizero import alkalmazásból, szövegből
Az App osztály magát az alkalmazást képviseli, és minden guizero-t használó programnak importálnia kell ezt. Az egyetlen további osztály, amelyre itt van szükség, a Text, amely az üzenet megjelenítésére szolgál.
A következő parancs létrehozza az alkalmazás ablakát, megadva a címet és az ablak kezdő méreteit.
alkalmazás = Alkalmazás (cím = "Ablakom", szélesség = "400", magasság = "300")
Szöveg hozzáadásához az ablakhoz használhatjuk a következő sort: Text(app, text=”Hello World”, size=32)
Az ablak készen áll a megjelenítésre, de valójában csak akkor jelenik meg, amíg a program le nem futtatja a következő sort: app.display()Itt tudhat meg többet a guizero-ról: https://lawsie.github.io/guizero/start/
HIBAELHÁRÍTÁS
Probléma: A kártya csatlakoztatva van a Pi 400-hoz, de a tápellátás LED nem világít.
Megoldás: Ellenőrizze, hogy a GPIO érintkezők megfelelően illeszkednek-e az aljzathoz. Lásd a 4. oldalt.
Probléma: A kártya csatlakoztatva van a Pi 400-hoz, de a tápellátás LED gyorsan villog.
Megoldás: Ez az érzékelő problémáját jelzi. Néha csak az áramellátás visszaállítására van szükség a Raspberry Pi ki- és bekapcsolásával. Ha ezt teszi, és a villogás folytatódik, valószínűleg hibás a kártya, ezért kérjük, lépjen kapcsolatba support@monkmakes.com
Probléma: Most csatlakoztattam mindent, de az eCO2-leolvasások rossznak tűnnek.
Megoldás: A MonkMakes levegőminőség-érzékelőben használt érzékelő típusa már az első csatlakoztatáskor elkezd leolvasni. A leolvasások azonban idővel pontosabbak lesznek. Az érzékelő IC adatlapja azt sugallja, hogy a leolvasások csak 20 perc futási idő után kezdenek pontossá válni.
Probléma: hibaüzeneteket kapok, amikor megpróbálom futtatni az exampprogramokat.
Megoldás: Megjegyzés: Lehet, hogy nincs telepítve a GUIZero. Kérjük, kövesse az itt található utasításokat: https://lawsie.github.io/guizero/#raspberry-pi
Probléma: Összehasonlítom ennek az érzékelőnek a leolvasását egy valódi CO2-mérővel, és a leolvasások eltérőek.
Megoldás: ez várható is. A levegőminőség-érzékelő az illékony szerves vegyületek (VOC) szintjének mérésével megbecsüli a CO2-koncentrációt (ezt jelenti az „e” az eCO2-ben). A valódi CO2-érzékelők sokkal drágábbak.
TANULÁS
Programozás és elektronika
Ha többet szeretne megtudni a Raspberry Pi és az Electronics programozásáról, akkor a készlet tervezője (Simon Monk) számos könyvet írt, amelyek tetszeni fognak.
Simon Monk könyveiről többet tudhat meg: http://simonmonk.org vagy kövesse őt a Twitteren, ahol @simonmonk2
MONKMAKES
A készlettel kapcsolatos további információkért a termék honlapja itt található: https://monkmakes.com/pi_aq
Ezen a készleten kívül a MonkMakes mindenféle készletet és eszközt készít, hogy segítsen Önnek
készítő projektek. Tudjon meg többet, és hol vásárolhat: https://www.monkmakes.com/products
A MonkMakes-t a Twitter@monkmakes oldalon is követheti.
Dokumentumok / Források
![]() |
A MONK MAKES levegőminőségi készlet Raspberry Pi-hez [pdfUtasítások Levegőminőségi készlet Raspberry Pi-hez, minőségi készlet Raspberry Pi-hez, készlet Raspberry Pi-hez, Raspberry Pi, Pi-hez |