Obsah:
- Zásoby
- Krok 1: Potřebný software
- Krok 2: Přeneste data senzoru na Raspberry Pi pomocí Simulink
- Krok 3: Zobrazte data senzoru na matici LED 8x8
- Krok 4: Navrhněte algoritmus v Simulink, který rozhodne, zda je vnitřní vlhkost „dobrá“, „špatná“nebo „ošklivá“
- Krok 5: Zaznamenejte vnitřní klimatická data a kategorizovaná data do cloudu
- Krok 6: Závěr
Video: Systém monitorování vnitřního klimatu na bázi Raspberry Pi: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Přečtěte si tento blog a vytvořte si vlastní systém, abyste mohli dostávat upozornění na příliš suchý nebo vlhký pokoj.
Co je to systém monitorování vnitřního klimatu a proč ho potřebujeme?
Systémy monitorování vnitřního klimatu poskytují rychlý pohled na klíčové statistiky související s klimatem, jako je teplota a relativní vlhkost. Může být velmi užitečné vidět tyto statistiky a přijímat upozornění na telefon, když je místnost příliš vlhká nebo suchá. Pomocí výstrah můžete rychle provést nezbytné kroky k dosažení maximálního pohodlí v místnosti zapnutím topení nebo otevřením oken. V tomto projektu uvidíme, jak použít Simulink k:
1) přineste klimatické statistiky (teplota, relativní vlhkost a tlak) ze Sense HAT do Raspberry Pi
2) zobrazte naměřená data na LED matici 8x8 senzoru HAT
3) navrhněte algoritmus, který rozhodne, zda je vnitřní vlhkost „dobrá“, „špatná“nebo „ošklivá“.
4) Zaznamenejte data do cloudu a pošlete upozornění, pokud jsou data zařazena do kategorie „Ošklivé“(příliš vlhké nebo suché).
Zásoby
Raspberry Pi 3 Model B
Raspberry Pi Sense Klobouk
Krok 1: Potřebný software
K následování a vybudování vlastního systému monitorování vnitřního klimatu potřebujete MATLAB, Simulink a vyberte doplňky.
Otevřete MATLAB s přístupem správce (klikněte pravým tlačítkem na ikonu MATLAB a vyberte Spustit jako správce). Vyberte Doplňky z pruhu nástrojů MATLAB a klikněte na Získat doplňky.
Zde vyhledejte balíčky podpory s níže uvedenými názvy a ‘Přidat’ je.
A. Balíček podpory MATLAB pro hardware Raspberry Pi: Získejte vstupy a odesílejte výstupy na desky Raspberry Pi a připojená zařízení
b. Balíček podpory Simulink pro hardware Raspberry Pi: Spouštějte modely Simulink na deskách Raspberry Pi
C. RPi_Indoor_Climate_Monitoring_System: Ukázkové modely potřebné pro tento projekt
Poznámka - Během instalace postupujte podle pokynů na obrazovce a nastavte Pi tak, aby fungovalo s MATLAB a Simulink.
Krok 2: Přeneste data senzoru na Raspberry Pi pomocí Simulink
Pro ty, kteří neznají Simulink, je to grafické programovací prostředí, které se používá k modelování a simulaci dynamických systémů. Jakmile v Simulinku navrhnete svůj algoritmus, můžete automaticky generovat kód a vložit jej na Raspberry Pi nebo jiný hardware.
Do příkazového okna MATLAB zadejte následující příklad a otevřete první ukázkový model. Tento model použijeme k přenesení údajů o teplotě, tlaku a relativní vlhkosti do Raspberry Pi.
> rpiSenseHatBringSensorData
Bloky tlakového senzoru LPS25H a vlhkostního senzoru HTS221 pocházejí z knihovny Sense HAT pod balíčkem Simulink Support Package pro hardwarové knihovny Raspberry Pi.
Bloky rozsahu jsou z knihovny Sinks pod knihovnami Simulink. Chcete -li zajistit správnou konfiguraci modelu, klikněte na ikonu ozubeného kola v modelu Simulink. Přejděte na Implementace hardwaru> Nastavení hardwarové desky> Cílové hardwarové prostředky.
Poznámka - Pokud jste při instalaci balíčku podpory Simulink pro Raspberry Pi postupovali podle pokynů k nastavení, nemusíte je konfigurovat. Adresa zařízení se automaticky vyplní na adresu vašeho Pi.
Zajistěte, aby se adresa zařízení zde shodovala s adresou IP, kterou slyšíte při spuštění Pi. Abyste slyšeli adresu zařízení, možná budete muset znovu zapnout Pi pomocí sluchátka připojeného ke konektoru.
Klikněte na OK a stiskněte tlačítko Spustit, jak je uvedeno níže. Ujistěte se, že je váš Pi fyzicky připojen k počítači pomocí kabelu USB nebo je ve stejné síti Wi-Fi jako váš počítač.
Když v externím režimu stisknete tlačítko Spustit, Simulink automaticky vygeneruje kód C ekvivalentní vašemu modelu a stáhne spustitelný soubor do Raspberry Pi. Oba bloky oboru jsou nakonfigurovány tak, aby se otevřely, jakmile se model spustí. Když Simulink dokončí nasazení kódu na Raspberry Pi, uvidíte údaje o tlaku, teplotě a relativní vlhkosti v oborech, jak je uvedeno níže.
Poznámka - Kód běží na Raspberry Pi a vy si prohlížíte skutečné signály přes bloky oboru Simulink, stejně jako byste měli osciloskop připojený k samotnému hardwaru. Hodnota teploty ze dvou senzorů je od sebe mírně vzdálená. Neváhejte si vybrat ten, který odráží skutečnou teplotu ve vaší místnosti, a použijte to v následujících částech. Ve všech testech s Sense HAT, které jsme měli, byly hodnoty teploty snímače vlhkosti HTS221 blíže skutečné teplotě v místnosti. Díky tomu jsme viděli základy toho, jak vnést data senzorů ze Sense HAT do Raspberry Pi.
Krok 3: Zobrazte data senzoru na matici LED 8x8
V této části uvidíme, jak byla část vizuálního zobrazení tohoto projektu přidána do posledního modelu. Prvky Sense HAT, které se používají v této části, jsou snímač vlhkosti (pro získání relativní vlhkosti a teploty), snímač tlaku, matice LED a joystick. Joystick slouží k výběru senzoru, který chceme zobrazit.
Chcete -li otevřít další ukázkový model, zadejte do příkazového okna MATLAB následující.
> rpiSenseHatDisplay
Blok Joysticku je z knihovny Sense HAT. Pomáhá nám přenést data joysticku na Raspberry Pi, stejně jako bloky senzoru tlaku a vlhkosti v předchozím příkladu. Prozatím používáme blok Test Comfort k zobrazení „dobrého“(když je hodnota bloku 1) na LED matici. Zobrazí se „špatný“, když je hodnota bloku 2 nebo „ošklivá“, když je hodnota buď 3 nebo 4. V další části uvidíme skutečný algoritmus, který rozhodne, zda je vnitřní vlhkost dobrá, špatná nebo ošklivá. Prozkoumejme blok Selector dvojitým kliknutím na něj. Funkční bloky MATLAB se používají k integraci kódu MATLAB do vašeho modelu Simulink. V tomto případě přinášíme SelectorFcn uvedený níže.
funkce [hodnota, stav] = SelectorFcn (JoyStickIn, tlak, vlhkost, teplota, ihval)
vytrvalý JoyStickCount
if isempty (JoyStickCount)
JoyStickCount = 1;
konec
pokud JoyStickIn == 1
JoyStickCount = JoyStickCount + 1;
pokud JoyStickCount == 6
JoyStickCount = 1;
konec
konec
přepněte JoyStickCount
případ 1 % Zobrazení teploty v C
hodnota = teplota;
Stav = 1;
případ 2 % Zobrazený tlak v atm
hodnota = tlak/1013,25;
Stav = 2;
případ 3 % Zobrazení relativní vlhkosti v %
hodnota = vlhkost;
Stav = 3;
případ 4 % Zobrazení teploty ve F
hodnota = teplota*(9/5) +32;
Stav = 4;
případ 5 % Zobrazení Dobrý/Špatný/Ošklivý
hodnota = ihval;
Stav = 5;
jinak % nezobrazovat/zobrazovat 0
hodnota = 0;
Stav = 6;
konec
Příkazy přepínače se obecně používají jako mechanismus řízení výběru. V našem případě chceme, aby vstup joysticku byl ovládací prvek výběru a vybral další data, která se zobrazí při každém stisknutí tlačítka joysticku. Za tímto účelem jsme nastavili smyčku if, která zvyšuje proměnnou JoyStickCount každým stisknutím tlačítka (hodnota JoyStickIn je 1, pokud dojde k stisknutí tlačítka). Ve stejné smyčce, abychom zajistili, že budeme pouze cyklovat mezi pěti výše uvedenými možnostmi, jsme přidali další podmínku, která resetuje hodnotu proměnné na 1. Pomocí toho vybereme, která hodnota se zobrazí na matici LED. Případ 1 bude výchozí, protože definujeme JoyStickCount od 1, což znamená, že LED matice bude zobrazovat teplotu ve stupních Celsia. Proměnnou State používá datový blok Scroll k pochopení, která hodnota senzoru se aktuálně zobrazuje a jaká jednotka by se měla zobrazovat. Nyní, když víme, jak vybrat správný senzor k zobrazení, podívejme se, jak funguje skutečné zobrazení.
Zobrazení znaků a čísel
Pro zobrazení na matici Sense HAT LED jsme vytvořili matice 8x8 pro:
1) všechna čísla (0-9)
2) všechny jednotky (° C, A, % a ° F)
3) desetinná čárka
4) abecedy od slov dobrý, špatný a ošklivý.
Tyto matice 8x8 byly použity jako vstup do bloku 8x8 RGB LED Matrix. Tento blok rozsvítí diody LED odpovídající těm prvkům na matici, které mají hodnotu 1, jak je uvedeno níže.
Posouvání textu
Datový blok posouvání v našem modelu posouvá řetězce, které mohou mít až 6 znaků. Byla zvolena hodnota 6, což je nejdelší řetězec, který v tomto projektu vydáme, například 23,8 ° C nebo 99,1 ° F. Zde je ° C považován za jeden znak. Stejnou myšlenku lze rozšířit i na posouvající řetězce jiných délek.
Zde je GIF, který ukazuje, jak to funguje -
www.element14.com/community/videos/29400/l/gif
K zobrazení řetězce po 6 znacích na matici 8x8 potřebujeme obrázek celkem 8x48. Chcete -li zobrazit řetězec, který je dlouhý maximálně 4 znaky, budeme muset vytvořit matici 8x32. Nyní se podívejme na celou nečinnost stisknutím tlačítka Spustit. Výchozí zobrazení na matici LED je hodnota teploty ve ° C. Blok Rozsah zobrazí stav a hodnotu z bloku Výběr. Stiskněte tlačítko joysticku na Sense HAT a na sekundu podržte, abyste ověřili, že se hodnota změní na další výstup senzoru, a opakujte tento proces, dokud nedosáhne stavové hodnoty 5. Chcete -li pozorovat přepínání algoritmu ve všech případech kategorizace vnitřní vlhkosti, změňte hodnotu bloku Test Comfort na libovolné číslo mezi 1 až 4. Všimněte si, jak změna hodnoty bloku na modelu Simulink okamžitě změní způsob, jakým se kód chová na hardwaru. To může být užitečné v situacích, kdy je třeba změnit chování kódu ze vzdáleného umístění. Díky tomu jsme viděli klíčové prvky vizualizačního aspektu systému monitorování klimatu. V další části se naučíme, jak dokončit náš systém monitorování vnitřního klimatu.
Krok 4: Navrhněte algoritmus v Simulink, který rozhodne, zda je vnitřní vlhkost „dobrá“, „špatná“nebo „ošklivá“
Chcete -li pochopit, zda je váš pokoj příliš vlhký/suchý, nebo zjistit, jaká úroveň vnitřní vlhkosti je považována za příjemnou, existuje několik metod. Pomocí tohoto článku jsme vytvořili plošnou křivku pro propojení vnitřní relativní vlhkosti a venkovních teplot, jak je uvedeno výše.
Jakákoli hodnota relativní vlhkosti v této oblasti znamená, že je váš pokoj v příjemném prostředí. Pokud je například venkovní teplota -30 ° F, pak je přijatelná jakákoli hodnota relativní vlhkosti pod 15%. Podobně, pokud je venkovní teplota 60 ° F, pak je přijatelná jakákoli relativní vlhkost nižší než 50%. Chcete -li kategorizovat vnitřní vlhkost na maximální komfort (dobrý), průměrný komfort (špatný) nebo příliš vlhký/suchý (ošklivý), potřebujete venkovní teplotu a relativní vlhkost. Viděli jsme, jak do Raspberry Pi vnést relativní vlhkost. Zaměřme se tedy na zvýšení venkovní teploty. Pro otevření modelu zadejte do příkazového okna MATLAB následující:
> rpiOutdoorWeatherData
Blok WeatherData slouží k získání vnější teploty vašeho města (v K) pomocí https://openweathermap.org/. Ke konfiguraci tohoto bloku potřebujete klíč API z webu. Po vytvoření bezplatného účtu na tomto webu přejděte na stránku svého účtu. Níže uvedená karta API klíčů vám poskytne klíč.
Blok WeatherData potřebuje zadat název vašeho města v konkrétním formátu. Navštivte tuto stránku a zadejte název města, poté symbol čárky a za ním 2 písmena označující zemi. Příklady - Natick, USA a Chennai, IN. Pokud vyhledávání vrátí výsledek pro vaše město, použijte jej v bloku WeatherData v tomto konkrétním formátu. Pokud vaše město není k dispozici, použijte sousední město, jehož povětrnostní podmínky jsou vám bližší. Nyní dvakrát klikněte na blok WeatherData a z webu zadejte název města a klíč API.
Stisknutím tlačítka Spustit na tomto modelu Simulink zkontrolujte, zda blok může do Raspberry Pi přenést teplotu vašeho města. Nyní se podívejme na algoritmus, který rozhoduje, zda je vnitřní vlhkost dobrá, špatná nebo ošklivá. Chcete -li otevřít další příklad, zadejte do příkazového okna MATLAB následující:
> rpisenseHatIHval
Možná jste si všimli, že chybí blok Test Comfort z předchozího modelu a nový blok s názvem FindRoom Comfort poskytuje blok ihval to Selector. Poklepáním na tento blok otevřete a prozkoumejte.
Ke zvýšení venkovní teploty používáme blok WeatherData. Subsystém Vlhkostní limity představuje graf relativní vlhkosti vs. venkovní teploty, který jsme viděli výše. V závislosti na venkovní teplotě vydá maximální mezní hodnotu vlhkosti. Otevřeme funkční blok DecideIH MATLAB dvojitým kliknutím na něj.
Pokud hodnota relativní vlhkosti překročí maximální limit vlhkosti, bude znaménko kladné na základě způsobu, jakým odečítáme data, což znamená, že je místnost příliš vlhká. Pro tento scénář vytváříme výstup 3 (ošklivý). Důvodem použití čísel místo řetězců je snadné zobrazení na grafech a vytváření upozornění z nich. Zbývající klasifikace ve funkci MATLAB jsou založeny na libovolných kritériích, se kterými jsme přišli. Když je rozdíl menší než 10, je kategorizován maximální komfort, a když je menší než 20, je to průměrný komfort a nad to je příliš suchý. Neváhejte spustit tento model a zkontrolovat úroveň pohodlí vašeho pokoje.
Krok 5: Zaznamenejte vnitřní klimatická data a kategorizovaná data do cloudu
V této další části uvidíme, jak protokolovat data v cloudu. Chcete -li otevřít tento příklad, zadejte do příkazového okna MATLAB následující.
> rpiSenseHatLogData
V tomto modelu je část zobrazení předchozího vzorového modelu záměrně odstraněna, protože nepotřebujeme, aby monitorovací systém zobrazoval statistiky při protokolování dat a odesílání výstrah. Pro aspekt protokolování dat používáme ThingSpeak, bezplatnou open-source platformu IoT, která obsahuje analytiku MATLAB. Vybrali jsme si ThingSpeak, protože existují přímé způsoby programování Raspberry Pi a dalších levných hardwarových desek pro odesílání dat do ThingSpeak pomocí Simulink. Blok ThingSpeak Write je z balíčku Simulink Support Package pro hardwarovou knihovnu Raspberry Pi a lze jej konfigurovat pomocí klíče API pro zápis z vašeho kanálu ThingSpeak. Podrobné pokyny k vytvoření kanálu jsou uvedeny níže. Chcete -li nepřetržitě zaznamenávat data do cloudu, chcete, aby váš Pi fungoval nezávisle na Simulink. Za tímto účelem můžete u modelu Simulink stisknout tlačítko „Nasadit na hardware“.
Vytvořte si vlastní kanál ThingSpeak
Ti, kteří nemají účet, se mohou zaregistrovat na webu ThingSpeak. Pokud máte účet MathWorks, automaticky máte účet ThingSpeak.
- Jakmile jste přihlášeni, můžete vytvořit kanál tak, že přejdete na Kanály> Moje kanály a kliknete na Nový kanál.
- Vše, co potřebujete, je název kanálu a názvy polí, která budete protokolovat, jak je uvedeno níže.
- Možnost Zobrazit umístění kanálu vyžaduje jako vstup zeměpisnou šířku a délku vašeho města a může zobrazit polohu uvnitř kanálu na mapě. (Zde použité příklady platí pro Natick, MA)
- Potom stisknutím Uložit kanál dokončete vytváření kanálu.
4a. Upozornit, pokud jsou data zařazena do kategorie „Ošklivé“
Abychom mohli dokončit náš systém monitorování vnitřního klimatu, musíme vidět, jak přijímat upozornění na základě cloudových dat. To je zásadní, protože bez toho nebudete schopni provést nezbytná opatření ke změně úrovně pohodlí v místnosti. V této části se podíváme na to, jak přijímat oznámení na váš telefon, kdykoli data cloudu naznačují, že je místnost příliš vlhká nebo suchá. Toho dosáhneme pomocí dvou služeb: IFTTT Webhooks a ThingSpeak TimeControl. IFTTT (zkratka If this, then that) je online služba, která dokáže zpracovávat události a spouštět akce na základě událostí.
Kroky k nastavení webhooků IFTTT
Poznámka: Nejlepší výsledky vyzkoušejte na počítači.
1) Vytvořte si účet na ifttt.com (pokud ho nemáte) a vytvořte nový aplet ze stránky Moje aplety.
2) Kliknutím na modré tlačítko „toto“vyberte spouštěcí službu.
3) Vyhledejte a vyberte službu Webhooks.
4) Vyberte možnost Přijmout webový požadavek a zadejte název události.
5) Vyberte vytvořit spouštěč.
6) Na další stránce vyberte „to“a vyhledejte oznámení.
7) Vyberte odeslat oznámení z aplikace IFTTT.
8) Zadejte název události, kterou jste vytvořili v kroku 2 IFTTT, a vyberte vytvořit akci.
9) Pokračujte, dokud nedosáhnete posledního kroku, zkontrolujte a stiskněte Dokončit.
10) Přejděte na https://ifttt.com/maker_webhooks a klikněte na tlačítko Nastavení v horní části stránky.
11) Přejděte na adresu URL v části Informace o účtu.
12) Sem zadejte název své události a klikněte na „Otestovat“.
13) Zkopírujte adresu URL na posledním řádku pro budoucí použití (pomocí klíče).
Kroky k nastavení ThingSpeak TimeControl
1) Vyberte Aplikace> MATLAB Analysis
2) Na další stránce klikněte na Nový, zvolte Spouštěcí e -mail z IFTTT a klikněte na Vytvořit.
Důležitými částmi zde v kódu šablony jsou:
ID kanálu - Zadejte svůj kanál ThingSpeak, který obsahuje informace „vnitřní vlhkost vzduchu“.
IFTTTURL - Zadejte adresu URL zkopírovanou z předchozí části, krok 13.
readAPIKey - Zadejte klíč sekce ThingSpeak Channel. Action - ta, která působí na poslední hodnotu. Chcete -li spustit upozornění, změňte jej na následující.
3) Na webu ThingSpeak klikněte na Aplikace> TimeControl.
4) Vyberte Opakující se a vyberte časovou frekvenci.
5) Klikněte na Save TimeControl.
Analýza MATLAB nyní běží automaticky každou půl hodinu a odešle spoušť službě IFTTT Webhooks, pokud je hodnota větší nebo rovna 3. Poté telefonní aplikace IFTTT upozorní uživatele oznámením, jak je uvedeno na začátku této části.
Krok 6: Závěr
Díky tomu jsme viděli všechny důležité aspekty toho, jak vybudovat vlastní systém monitorování klimatu. V tomto projektu jsme viděli, jak lze Simulink použít -
- naprogramujte Raspberry Pi tak, aby přinášelo data ze Sense HAT. Zvýraznění - Vizualizace dat v Simulinku, protože kód stále běží na Raspberry Pi.
- vybudovat vizuální zobrazení systému monitorování vnitřního klimatu. Highlight - Změňte způsob, jakým se váš kód chová na hardwaru od Simulink.
- navrhněte algoritmus systému monitorování vnitřního klimatu.
- přihlaste data z Raspberry Pi do cloudu a vytvořte upozornění z přihlášených dat.
Jaké jsou některé změny, které byste provedli v tomto systému monitorování vnitřního klimatu? Podělte se o své návrhy prostřednictvím komentářů.
Doporučuje:
Systém vizuálního monitorování na bázi LoRa pro zemědělství Iot - Navrhování přední aplikace pomocí Firebase & Angular: 10 kroků
Systém vizuálního monitorování na bázi LoRa pro zemědělství Iot | Navrhování frontové aplikace pomocí Firebase & Angular: V předchozí kapitole hovoříme o tom, jak senzory pracují s modulem loRa pro naplnění databáze Firebase Realtime, a viděli jsme diagram velmi vysoké úrovně, jak celý náš projekt funguje. V této kapitole si povíme, jak můžeme
Systém monitorování a řízení vnitřního klimatu Raspberry Pi: 6 kroků
Systém monitorování a řízení vnitřního klimatu Raspberry Pi: Lidé chtějí mít ve svém domě pohodlí. Protože klima v naší oblasti nám nemusí vyhovovat, používáme k udržování zdravého vnitřního prostředí mnoho spotřebičů: ohřívač, chladič vzduchu, zvlhčovač, odvlhčovač, čistička atd. V dnešní době je
Postavte zařízení pro snímání vnitřního prostředí: 4 kroky
Vybudujte zařízení pro snímání vnitřního prostředí: V dnešní době se lidé více zajímají o kvalitu vnitřního prostředí v místě, kde žijí, protože je v těsném vztahu k jejich zdraví. K důležitosti lepší kvality života patří vědomí, že máte zlepšené životní podmínky. I já jsem velmi součástí
Sada pro monitorování pacienta na bázi IOT: 7 kroků
Sada pro sledování pacientů na bázi IOT: ÚVOD: V dnešním světě jsou lidé náchylnější k nemocem kvůli svému životnímu stylu a stravovacím návykům. V takovém případě hraje hlavní roli monitorování zdraví pacientů. Zdravotní péče je zásadní a rychle se rozvíjející oblastí. Reklama
Pool Pi Guy - poplašný systém řízený AI a monitorování bazénu pomocí Raspberry Pi: 12 kroků (s obrázky)
Pool Pi Guy - poplašný systém řízený AI a monitorování bazénu pomocí Raspberry Pi: Mít doma bazén je zábava, ale přichází s velkou zodpovědností. Mojí největší starostí je sledování, jestli je někdo poblíž bazénu bez dozoru (zejména mladší děti). Mojí největší nepříjemností je zajistit, aby potrubí vody v bazénu nikdy nekleslo pod vstup čerpadla