Návod: AIR RASPBERRY Pi
NAVRŽENO PRO RASPBERRY PI 400. KOMPATIBILNÍ S RASPBERRY PI 2, 3 A 4.
V1d
ZAVEDENÍ
Sada MonkMakes Air Quality Kit pro Raspberry Pi je založena na desce MonkMakes Air Quality Sensor. Tento doplněk pro Raspberry Pi měří kvalitu vzduchu v místnosti (jak je vzduch zatuchlý) a také teplotu. Deska má displej šesti LED (zelená, oranžová a červená), které zobrazují kvalitu vzduchu a bzučák. Údaje o teplotě a kvalitě vzduchu lze odečíst na vašem Raspberry Pi a bzučák a LED displej lze také ovládat z vašeho Raspberry Pi.
Deska senzoru kvality vzduchu se zapojuje přímo do zadní části Raspberry Pi 400, ale lze ji použít také s jinými modely Raspberry Pi pomocí propojovacích vodičů a šablony GPIO, které jsou součástí sady.
DÍLY
Vezměte prosím na vědomí, že Raspberry Pi NENÍ součástí této sady.
Než uděláte cokoliv jiného, zkontrolujte, zda vaše sada obsahuje níže uvedené položky.
KVALITA VZDUCHU A EKO2
Deska snímače kvality vzduchu používá snímač s číslem dílu CCS811. Tento malý čip ve skutečnosti neměří hladinu CO2 (oxidu uhličitého), ale místo toho hladinu skupiny plynů nazývaných těkavé organické sloučeniny (VOC). V interiéru stoupá hladina těchto plynů poměrně podobnou rychlostí jako CO2, a lze je proto použít k odhadu úrovně CO2 (nazývané ekvivalentní CO2 nebo eCO2).
Úroveň CO2 ve vzduchu, který dýcháme, má přímý vliv na naši pohodu. Úrovně CO2 jsou zvláště zajímavé z hlediska veřejného zdraví view jednoduše řečeno, jsou měřítkem toho, jak moc dýcháme vzduch jiných lidí. My lidé dýcháme CO2 a tak, pokud je ve špatně větrané místnosti více lidí, hladina CO2 se bude postupně zvyšovat. To je v podstatě stejné jako virové aerosoly, které šíří nachlazení, chřipku a koronavirus, když lidé vydechují oba společně.
Dalším důležitým dopadem hladiny CO2 je kognitivní funkce – jak dobře dokážete myslet. Tato studie (mezi mnoha dalšími) má některá zajímavá zjištění. Následující citát pochází z Národního centra pro biotechnologické informace v USA: „Při 1,000 2 ppm CO2,500 došlo k mírnému a statisticky významnému poklesu v šesti z devíti škál výkonu rozhodování. Při XNUMX XNUMX ppm došlo k velkému a statisticky významnému snížení v sedmi škálách výkonu rozhodování“ Zdroj: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3548274/
Níže uvedená tabulka je založena na informacích z https://www.kane.co.uk/knowledge-centre/whatare-safe-levels-of-co-and-co2-in-rooms
a ukazuje úrovně, při kterých se CO2 může stát nezdravým. Hodnoty CO2 jsou v ppm (částic na milion).
Úroveň CO2 (ppm) | Poznámky |
250-400 | Normální koncentrace v okolním vzduchu. |
400-1000 | Koncentrace typické pro obsazené vnitřní prostory s dobrou výměnou vzduchu. |
1000-2000 | Stížnosti na ospalost a špatný vzduch. |
2000-5000 | Bolesti hlavy, ospalost a stagnant, zatuchlý, dusný vzduch. Přítomna může být i špatná koncentrace, ztráta pozornosti, zrychlený tep a mírná nevolnost. |
5000 | Limit expozice na pracovišti ve většině zemí. |
>40000 | Expozice může vést k vážnému nedostatku kyslíku s následkem trvalého poškození mozku, kómatu nebo dokonce smrti. |
NASTAVENÍ
Ať už používáte Raspberry Pi 400 nebo Raspberry Pi 2, 3 nebo 4, před připojením senzoru kvality vzduchu se ujistěte, že je Raspberry Pi vypnuté a vypnuté.
Senzor kvality vzduchu zobrazí naměřené hodnoty eCO2, jakmile bude napájen z vašeho Raspberry Pi. Jakmile jej tedy připojíte, na displeji by se měla zobrazit úroveň eCO2. Poté se naučíte, jak komunikovat s deskou, přijímat údaje a ovládat LED a bzučák z programu Python.
Připojení senzoru kvality vzduchu (Raspberry Pi 400)
Je velmi důležité, abyste konektor nezasunovali šikmo nebo příliš silně, protože byste mohli ohnout kolíky na konektoru GPIO. Když jsou kolíky seřazené
správně, měla by snadno zatlačit na místo.Konektor pasuje podle obrázku výše. Všimněte si, že spodní okraj desky je zarovnaný se spodní částí pouzdra Pi 400 a boční strana desky ponechává dostatek místa pro snadný přístup ke kartě micro SD. Jakmile desku připojíte, zapněte Raspberry Pi. — měla by se rozsvítit i kontrolka napájení (v logu MonkMakes) a jedna z kontrolek eCO2.
Připojení senzoru kvality vzduchu (Raspberry Pi 2/3/4)
Pokud máte Raspberry Pi 2, 3, 4, pak budete potřebovat Raspberry Leaf a nějaké propojovací kabely ze samice na samec pro připojení desky senzoru kvality vzduchu k vašemu Raspberry Pi.
VAROVÁNÍ: Přepólování napájecích kabelů nebo připojení snímače kvality vzduchu k 5V namísto 3V kolíku Raspberry Pi pravděpodobně rozbije snímač a může poškodit vaše Raspberry Pi. Před zapnutím Raspberry Pi proto pečlivě zkontrolujte kabeláž.
Začněte tím, že Raspberry Leaf nasadíte na GPIO kolíky Raspberry Pi, abyste věděli, který kolík je který. Šablona se může vejít do obou stran, takže se řiďte níže uvedeným schématem. Dále zapojíte čtyři vodiče mezi kolíky GPIO Raspberry Pi a desku Air Quality takto:
Raspberry Pi Pin (as označeno na listu) | Rada pro kvalitu ovzduší (as označeno na konektoru) | Doporučená barva drátu. |
GND (vyhovuje jakýkoli pin označený GND) | GND | Černý |
3.3V | 3V | Červený |
14 TXD | PI_TXD | Pomerančový |
15 RXD | PI_RXD | Žluť |
Jakmile je vše připojeno, mělo by to vypadat takto:Pečlivě zkontrolujte kabeláž a poté zapněte Raspberry Pi – měla by se rozsvítit i LED napájení (v logu MonkMakes) a jedna z LED.
Odpojení desky kvality vzduchu
Před vyjmutím desky z Raspberry Pi 400.
- Vypněte Raspberry Pi.
- Jemně uvolněte desku ze zadní části Pi 400 a postupně ji olemujte z každé strany, abyste neohnuli kolíky.
Pokud máte Pi 2/3/4, jednoduše odstraňte propojovací kabely z Raspberry Pi.
Povolení sériového rozhraní
I když deska zobrazuje úroveň eCO2 bez jakéhokoli programování, znamená to, že jako zdroj energie používáme pouze Raspberry Pi. Abychom mohli komunikovat s deskou z programu Python na našem Raspberry Pi, musíme udělat ještě několik kroků.
Prvním je povolení sériového rozhraní na Raspberry Pi, protože právě toto rozhraní používá deska Air Quality.
Chcete-li to provést, vyberte Preferences a poté Raspberry Pi Configuration z hlavní nabídky.
Přejděte na kartu Rozhraní a ujistěte se, že je povolen sériový port a zakázána sériová konzola.
Stažení souboru Example Programy
BývalýampProgramy pro tuto sadu jsou k dispozici ke stažení z GitHubu. Chcete-li je načíst, spusťte na svém Raspberry Pi okno prohlížeče a přejděte na tuto adresu:
https://github.com/monkmakes/pi_aq Stáhněte si zip archiv projektu kliknutím na tlačítko Kód a poté na možnost Stáhnout ZIP.Po dokončení stahování rozbalte soubor filez archivu ZIP vyhledáním souboru ZIP file ve složce Stažené soubory a poté na něj klepněte pravým tlačítkem myši a vyberte možnost Extrahovat do.
Vyberte vhodný adresář (doporučil bych váš domovský adresář – /home/pi) a rozbalte jej files. Tím se vytvoří složka s názvem pi_aq-main. Přejmenujte to na pouze pi_aq.
Thonny
Po stažení programů je stačí spustit z příkazového řádku.
Nicméně je dobré se na to podívat files a editor Thonny nám umožní upravit soubor files a provozovat je.
Editor Thonny Python je předinstalován v OS Raspberry Pi. Najdete jej v hlavní nabídce v části Programování. Pokud z nějakého důvodu není na vašem počítači nainstalován
Raspberry Pi, poté jej můžete nainstalovat pomocí možnosti nabídky Přidat / Odebrat software v položce Nabídka předvoleb.Další část vysvětluje trochu více o tom, co tento senzor měří, než přejdeme k interakci s deskou kvality vzduchu pomocí Pythonu a Thonny.
ZAČÍNÁME
Než se pustíme do programování Pythonu, podívejme se na tabuli kvality vzduchu.LED indikátor napájení v levém horním rohu poskytuje rychlou kontrolu, zda je deska napájena. Pod ním je čip snímače teploty a vedle něj samotný čip snímače eCO2. Když se na něj podíváte pozorně, uvidíte, že má malé otvory, kterými se vzduch dostává dovnitř a ven. Přímo pod senzorem eCO2 je bzučák, který můžete zapnout a vypnout ze svých programů. To je užitečné pro poskytování alarmů. Sloupec šesti LED je tvořen (zdola nahoru) ze dvou zelených LED, dvou oranžových LED a dvou červených LED. Ty se rozsvítí, když je překročena úroveň eCO2 vyznačená u každé LED. Jakmile se Raspberry Pi zapne, ukáží úroveň, ale můžete je ovládat také pomocí Pythonu.
Začněme vyzkoušením několika experimentů z příkazového řádku. Otevřete relaci Terminálu kliknutím na ikonu Terminál v horní části obrazovky nebo na sekci Příslušenství v hlavní nabídce. Když se terminál otevře, zadejte po výzvě $ následující příkazy, abyste změnili adresáře (cd) a otevřeli Python
Otevřete místní modul aq zadáním příkazu: >>> z aq import AQ
>>> Poté vytvořte instanci třídy AQ zadáním: >>> aq = AQ()
>>> Nyní můžeme přečíst hladinu CO2 zadáním příkazu: >>> aq.get_eco2() 434.0
>>> Takže v tomto případě je hladina eCO2 pěkných čerstvých 434 ppm. Nyní zjistíme teplotu (ve stupních Celsia). >>> aq.get_temp()
20.32 Poznámka: Pokud se při spuštění výše uvedeného kódu zobrazí chybové zprávy, možná nemáte nainstalovaný GUIZero. Návod k instalaci zde:
https://lawsie.github.io/guizero/#raspberry-pi
PROGRAM 1. METR ECO2
Po spuštění tohoto programu se otevře okno podobné tomu, které je zobrazeno níže, s teplotou a úrovní eCO2. Zkuste položit prst na teplotní senzor a naměřená teplota by se měla zvýšit. Můžete také jemně dýchat na senzor eCO2 a hodnoty by se měly zvýšit.Chcete-li spustit program, načtěte soubor file 01_aq_meter.py v Thonny a poté klikněte na tlačítko Spustit.
Zde je kód projektu. Kód využívá knihovnu GUI Zero, o které si můžete přečíst více v příloze B.
Aby bylo možné odečítat teplotu a světlo bez přerušení fungování uživatelského rozhraní, je importována knihovna vláken. Funkce update_readings se bude věčně opakovat, odečítat každou půl sekundu a aktualizovat pole v okně.
Zbytek kódu poskytuje pole uživatelského rozhraní potřebná k zobrazení teploty a úrovně eCO2. Ty jsou rozloženy jako mřížka, takže pole jsou zarovnaná. Každé pole je tedy definováno atributem mřížky, který představuje pozice sloupců a řádků. Takže pole, které zobrazuje text Temp (C), je ve sloupci 0, řádek 0 a odpovídající hodnota teploty (temp_c_field) je ve sloupci 1, řádek 0.
PROGRAM 2. ECO2 METR S ALARMEM
Tento program rozšiřuje program jedna tím, že využívá bzučák a některé efektní funkce uživatelského rozhraní, aby při překročení nastavené úrovně eCO2 vydal zvuk alarmu a okno zčervenalo. Posuvník ve spodní části okna nastavuje úroveň eCO2, při které se má rozeznít bzučák a okno zčervená. Zkuste nastavit úroveň alarmu o něco vyšší než je
aktuální úroveň eCO2 a poté dýchejte na senzor.Zde je kód pro Program 2, z velké části je velmi podobný Programu 1. Oblasti zájmu byly zvýrazněny bold.import threading
čas importu
z aplikace guizero import App, Text, Slider
z aq import AQ
aq = AQ()
app = App(title=”Air Quality”, width=550, height=400, layout=”grid”)
def update_readings():
while True: temp_c_field.value = str(aq.get_temp()) eco2 = aq.get_eco2() eco2_field.value = str(eco2)
if eco2 > slider.value: app.bg = “červená” app.text_color = “bílá” aq.buzzer_on()
else: app.bg = “bílá” app.text_color = “černá” aq.buzzer_off() time.sleep(0.5)
t1 = threading.Thread(target=update_readings)
t1.start() # spuštění vlákna, které aktualizuje hodnoty aq.leds_automatic()
# definovat uživatelské rozhraní
Text(app, text=”Teplota (C)”, mřížka=[0,0], velikost=20)
temp_c_field = Text(app, text=”-”, grid=[1,0], size=100)
Text(app, text=”eCO2 (ppm)”, grid=[0,1], size=20)
eco2_field = Text(app, text=”-”, grid=[1,1], size=100)
Text(app, text=”Alarm (ppm)”, grid=[0,2], size=20)
posuvník = Posuvník(aplikace, začátek=300, konec=2000, šířka=300, výška=40, mřížka=[1,2]) app.display()
Nejprve musíme přidat Slider do seznamu věcí, které importujeme z guizero.
Potřebujeme také rozšířit funkci update_readings, aby kromě zobrazení teploty a úrovně eCO2 také kontrolovala, zda je úroveň nad prahovou hodnotou. Pokud ano, nastaví pozadí okna na červené, text na bílý a zapne bzučák. Pokud je úroveň eCO2 pod prahovou hodnotou nastavenou posuvníkem, obrátí to a vypne bzučák.
PROGRAM 3. DATOVÝ LOGGER
Tento program (03_data_logger.py) nemá grafické rozhraní. Pouze vás vyzve k zadání intervalu v sekundách mezi čteními, za kterým následuje název a file
do kterého se uloží naměřené hodnoty.V example výše, sampling je nastaven na 5 sekund a file se nazývá reads.txt. Když dokončíte protokolování dat, CTRL-c ukončí protokolování a zavře file.
Data jsou uložena ve stejném formátu, jako jsou zobrazena na snímku obrazovky výše. To znamená, že první řádek určuje nadpisy, přičemž každá hodnota je oddělena znakem TAB. The file je uložen ve stejném adresáři jako program. Po zachycení dat je můžete importovat do tabulky (jako LibreOffice) na Raspberry Pi a poté z dat vykreslit graf. Pokud LibreOffice není na vašem Raspberry Pi nainstalován, můžete jej nainstalovat pomocí možnosti Přidat/Odebrat software v nabídce Předvolby.
Otevřete novou tabulku, v nabídce vyberte Otevřít file a přejděte na data file chcete se podívat. Otevře se dialogové okno importu (viz další stránka).
že tabulka automaticky detekovala sloupce dat. Klepnutím na tlačítko OK importujte data a poté vyberte sloupec pro hodnoty eCO2. Potom můžete vykreslit graf těchto naměřených hodnot výběrem položky Graf z nabídky Vložit a výběrem typu grafu čára a následně pouze čára. Tím získáte graf zobrazený na další stránce.
Jako experiment zkuste nechat program záznamníku spuštěný po dobu 24 hodin, abyste viděli, jak se mění úroveň eCO2 v průběhu dne.
PŘÍLOHA A. DOKUMENTACE API
Pro seriózní programátory – zde je technická dokumentace. The file monkmakes_aq.py není nainstalována jako úplná knihovna Pythonu, ale měla by být zkopírována do stejné složky jako jakýkoli jiný kód, který ji potřebuje používat. aq.py
Modul monkmakes_aq.py je třída, která obaluje sériovou komunikaci mezi vaším Raspberry Pi a deskou Air Quality.
Vytvoření instance AQ: aq = AQ()
Čtení hodnoty eCO2
aq.get_eco2() # vrací hodnotu eCO2 v ppm
Odečítání teploty ve stupních C
aq.get_temp() # vrací teplotu ve stupních C
LED displej
aq.leds_manual() # nastavte režim LED na ruční
aq.leds_automatic() # nastaví režim LED na automatický
# tak, aby LED zobrazovaly eCO2
aq.set_led_level(level) # úroveň 0-LED nesvítí,
# úroveň 1-6 LED 1 až 6 svítí
Bzučák
aq.buzzer_on()
aq_buzzer_off()
Třída komunikuje s deskou senzoru pomocí sériového rozhraní Pi. Pokud chcete vidět podrobnosti o sériovém rozhraní, podívejte se prosím na katalogový list tohoto produktu. Odkaz na to najdete u produktu web stránka (http://monkmakes.com/pi_aq)
PŘÍLOHA B. GUI ZERO
Laura Sach a Martin O'Hanlon z The Raspberry Pi Foundation vytvořili knihovnu Python (GUI Zero), která velmi usnadňuje navrhování GUI. Tato sada používá tuto knihovnu.
Než budete moci používat knihovnu, musíte importovat její části, které chcete použít ve svém programu.
Napřample, pokud bychom chtěli okno obsahující zprávu, zde je příkaz import:
z aplikace guizero import, text
Třída App představuje samotnou aplikaci a každý napsaný program, který používá guizero, ji musí importovat. Jedinou další potřebnou třídou je Text, která se používá k zobrazení zprávy.
Následující příkaz vytvoří okno aplikace s uvedením nadpisu a počátečních rozměrů okna.
app = App(title = “Moje okno”, šířka=”400″, výška=”300″)
Chcete-li do okna přidat nějaký text, můžeme použít řádek: Text(app, text=”Hello World”, size=32)
Okno je nyní připraveno k zobrazení, ale ve skutečnosti se nezobrazí, dokud program nespustí řádek: app.display()Více o guizero se můžete dozvědět zde: https://lawsie.github.io/guizero/start/
ŘEŠENÍ PROBLÉMŮ
Problém: Deska je zapojena do mého Pi 400, ale kontrolka napájení nesvítí.
Řešení: Zkontrolujte, zda jsou piny GPIO správně zarovnány se zásuvkou. Viz strana 4.
Problém: Deska je zapojena do mého Pi 400, ale kontrolka napájení rychle bliká.
Řešení: To znamená problém se snímačem. Někdy stačí jen resetovat napájení vypnutím a opětovným zapnutím Raspberry Pi. Pokud to uděláte a blikání bude pokračovat, pravděpodobně máte vadnou desku, kontaktujte nás support@monkmakers.com
Problém: Právě jsem vše připojil, ale hodnoty eCO2 se zdají špatné.
Řešení: Typ senzoru použitý v senzoru kvality vzduchu MonkMakes začne produkovat údaje od prvního připojení. Údaje však budou časem přesnější. Datasheet pro senzor IC naznačuje, že naměřené hodnoty začnou být přesné až po 20 minutách provozu.
Problém: Při pokusu o spuštění example programy.
Řešení: Poznámka: Možná nemáte nainstalovaný GUIZero. Postupujte podle pokynů zde: https://lawsie.github.io/guizero/#raspberry-pi
Problém: Porovnávám hodnoty z tohoto senzoru se skutečným měřičem CO2 a hodnoty se liší.
Řešení: To se dalo čekat. Senzor kvality vzduchu odhaduje koncentraci CO2 (to je to, co znamená „e“ v eCO2) měřením úrovně těkavých organických sloučenin (VOC). Skutečné senzory CO2 jsou mnohem dražší.
UČENÍ
Programování a elektronika
Pokud se chcete dozvědět více o programování Raspberry Pi a elektroniky, pak designér této stavebnice (Simon Monk) napsal řadu knih, které by se vám mohly líbit.
Více o knihách Simona Monka najdete na: http://simonmonk.org nebo ho sledujte na Twitteru, kde je @simonmonk2
MONKMAKES
Další informace o této sadě naleznete na domovské stránce produktu zde: https://monkmakes.com/pi_aq
Kromě této sady vyrábí MonkMakes nejrůznější sady a pomůcky, které vám pomohou
tvůrce projektů. Zjistěte více a také kde koupit na: https://www.monkmakes.com/products
MonkMakes můžete také sledovat na Twitteru@monkmakes.
Dokumenty / zdroje
![]() |
MONK MAKES Sada kvality vzduchu pro Raspberry Pi [pdfPokyny Sada kvality vzduchu pro Raspberry Pi, sada kvality pro Raspberry Pi, sada pro Raspberry Pi, Raspberry Pi, Pi |