Obsah:

Vnútorný monitorovací systém klímy na báze maliny Pi: 6 krokov
Vnútorný monitorovací systém klímy na báze maliny Pi: 6 krokov

Video: Vnútorný monitorovací systém klímy na báze maliny Pi: 6 krokov

Video: Vnútorný monitorovací systém klímy na báze maliny Pi: 6 krokov
Video: Nový Peugeot 3008 GT (2021-2022) detailní video návod (interiér / exteriér / kufr / rozměry) 2024, November
Anonim
Vnútorný monitorovací systém klímy na báze maliny Pi
Vnútorný monitorovací systém klímy na báze maliny Pi

Prečítajte si tento blog a vytvorte si vlastný systém, aby ste mohli dostávať upozornenia na príliš suchú alebo vlhkú miestnosť.

Čo je to systém monitorovania vnútornej klímy a prečo ho potrebujeme?

Systémy monitorovania vnútornej klímy poskytujú rýchly pohľad na kľúčové štatistiky súvisiace s klímou, ako sú teplota a relatívna vlhkosť. Veľmi užitočná môže byť možnosť vidieť tieto štatistiky a prijímať na svoj telefón upozornenia, keď je miestnosť príliš vlhká alebo suchá. Pomocou upozornení môžete vykonať rýchle nevyhnutné kroky na dosiahnutie maximálneho pohodlia v miestnosti zapnutím kúrenia alebo otvorením okien. V tomto projekte uvidíme, ako používať Simulink na:

1) prineste klimatické štatistiky (teplota, relatívna vlhkosť a tlak) zo Sense HAT do Raspberry Pi

2) zobrazte namerané údaje na matici LED 8x8 senzora HAT

3) navrhnite algoritmus, ktorý rozhodne, či je vnútorná vlhkosť „dobrá“, „zlá“alebo „škaredá“.

4) Zaznamenajte údaje do cloudu a odošlite upozornenie, ak sú údaje zaradené do kategórie „Škaredé“(príliš vlhké alebo suché).

Zásoby

Raspberry Pi 3 Model B

Raspberry Pi Sense Klobúk

Krok 1: Potrebný softvér

Potrebný softvér
Potrebný softvér

Na pokračovanie a vybudovanie vlastného systému monitorovania vnútornej klímy potrebujete MATLAB, Simulink a vybrané doplnky.

Otvorte MATLAB s prístupom správcu (kliknite pravým tlačidlom na ikonu MATLAB a zvoľte Spustiť ako správca). Vyberte položku Doplnky z pruhu nástrojov MATLAB a kliknite na položku Získať doplnky.

Tu hľadajte balíky podpory s ich menami uvedenými nižšie a „Pridajte“ich.

a. Balík podpory MATLAB pre hardvér Raspberry Pi: Získajte vstupy a odosielajte výstupy na dosky Raspberry Pi a pripojené zariadenia.

b. Balík podpory Simulink pre hardvér Raspberry Pi: Spustite modely Simulink na doskách Raspberry Pi

c. RPi_Indoor_Climate_Monitoring_System: Príklady modelov potrebných pre tento projekt

Poznámka - Počas inštalácie postupujte podľa pokynov na obrazovke a nastavte Pi tak, aby fungovalo s MATLAB a Simulink.

Krok 2: Preneste údaje senzora na Raspberry Pi pomocou Simulink

Preneste údaje senzora na Raspberry Pi pomocou Simulink
Preneste údaje senzora na Raspberry Pi pomocou Simulink

Pre tých, ktorí nepoznajú Simulink, je to grafické programovacie prostredie, ktoré sa používa na modelovanie a simuláciu dynamických systémov. Keď v Simulinku navrhnete svoj algoritmus, môžete automaticky generovať kód a vložiť ho na Raspberry Pi alebo iný hardvér.

Do príkazového okna MATLAB zadajte nasledujúci príkaz a otvorte prvý vzorový model. Tento model použijeme na prenos údajov o teplote, tlaku a relatívnej vlhkosti do Raspberry Pi.

> rpiSenseHatBringSensorData

Bloky tlakového senzora LPS25H a vlhkostného senzora HTS221 pochádzajú z knižnice Sense HAT pod balíkom Simulink Support Package pre hardvérové knižnice Raspberry Pi.

Bloky rozsahu sú z knižnice Sinks pod knižnicami Simulink. Aby ste sa uistili, že je váš model správne nakonfigurovaný, kliknite na ikone ozubeného kolieska vo vašom modeli Simulink. Prejdite na položku Hardvérová implementácia> Nastavenia hardvérovej dosky> Cieľové hardvérové prostriedky.

Poznámka - Ak ste pri inštalácii balíka podpory Simulink pre Raspberry Pi postupovali podľa pokynov na nastavenie, nemusíte ho konfigurovať. Adresa zariadenia sa automaticky vyplní na adresu vášho Pi.

Zaistite, aby sa adresa zariadenia tu zhodovala s adresou IP, ktorú počujete pri štarte počítača Pi. Aby ste počuli adresu zariadenia, možno bude potrebné znova zapnúť Pi pomocou slúchadla pripojeného do konektora.

Kliknite na tlačidlo OK a potom na tlačidlo Spustiť, ako je to znázornené nižšie. Zaistite, aby bol váš Pi fyzicky pripojený k počítaču pomocou kábla USB alebo bol v rovnakej sieti Wi-Fi ako počítač.

Keď v externom režime stlačíte tlačidlo Spustiť, Simulink automaticky vygeneruje kód C ekvivalentný vášmu modelu a stiahne spustiteľný súbor do Raspberry Pi. Oba bloky rozsahu sú nakonfigurované tak, aby sa otvárali, keď sa model spustí. Akonáhle Simulink dokončí nasadenie kódu na Raspberry Pi, uvidíte údaje o tlaku, teplote a relatívnej vlhkosti v zameriavačoch, ako je uvedené nižšie.

Poznámka - Kód beží na Raspberry Pi a prezeráte si aktuálne signály cez bloky rozsahu Simulink, rovnako ako keby ste mali osciloskop pripojený k samotnému hardvéru. Hodnota teploty z dvoch senzorov je od seba mierne vzdialená. Neváhajte si vybrať ten, ktorý odráža skutočnú teplotu vo vašej miestnosti, a použite ho v nasledujúcich častiach. Vo všetkých testoch s Sense HAT, ktoré sme mali, boli hodnoty teploty snímača vlhkosti HTS221 bližšie k skutočnej teplote v miestnosti. Vďaka tomu sme videli základy toho, ako priniesť údaje senzorov zo Sense HAT do Raspberry Pi.

Krok 3: Zobrazte údaje senzora na matici LED 8x8

Zobrazte údaje senzora na matici LED 8x8
Zobrazte údaje senzora na matici LED 8x8
Zobrazte údaje senzora na matici LED 8x8
Zobrazte údaje senzora na matici LED 8x8

V tejto časti uvidíme, ako bola časť vizuálneho zobrazenia tohto projektu pridaná k poslednému modelu. Prvky Sense HAT, ktoré sa používajú v tejto časti, sú snímač vlhkosti (na získanie relatívnej vlhkosti a teploty), snímač tlaku, matica LED a joystick. Joystick slúži na výber, ktorý senzor chceme zobrazovať.

Ak chcete otvoriť ďalší ukážkový model, do príkazového okna MATLAB zadajte nasledujúci príkaz.

> rpiSenseHatDisplay

Blok Joystick je z knižnice Sense HAT. Pomáha nám to priniesť údaje joysticku do Raspberry Pi, rovnako ako to urobili bloky snímačov tlaku a vlhkosti v predchádzajúcom príklade. V súčasnej dobe používame blok Test Comfort na zobrazenie „dobrého“(keď je hodnota bloku 1) na matici LED. Keď je hodnota bloku 2 alebo „škaredá“, keď je hodnota 3 alebo 4, zobrazí sa „zlý“. V ďalšej časti uvidíme skutočný algoritmus, ktorý rozhoduje o tom, či je vnútorná vlhkosť dobrá, zlá alebo škaredá. Pozrime sa na blok voliča dvojitým kliknutím na neho. Funkčné bloky MATLAB sa používajú na integráciu kódu MATLAB do vášho modelu Simulink. V tomto prípade prinášame SelectorFcn uvedený nižšie.

funkcia [hodnota, stav] = SelectorFcn (JoyStickIn, tlak, vlhkosť, teplota, ihval)

vytrvalý JoyStickCount

ak je prázdny (JoyStickCount)

JoyStickCount = 1;

koniec

ak JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

ak JoyStickCount == 6

JoyStickCount = 1;

koniec

koniec

prepnite JoyStickCount

prípad 1 % Zobrazená teplota v C

hodnota = teplota;

Stav = 1;

prípad 2 % Zobrazovací tlak v atm

hodnota = tlak/1013,25;

Stav = 2;

prípad 3 % Zobrazenie relatívnej vlhkosti v %

hodnota = vlhkosť;

Stav = 3;

prípad 4 % Zobrazená teplota vo F

hodnota = teplota*(9/5) +32;

Stav = 4;

prípad 5 % Zobraziť dobrý/zlý/škaredý

hodnota = ihval;

Stav = 5;

inak % Nezobrazovať/zobrazovať 0

hodnota = 0;

Stav = 6;

koniec

Príkazy prepínača sa spravidla používajú ako mechanizmus riadenia výberu. V našom prípade chceme, aby vstupom joysticku bol ovládací prvok výberu a aby sa ďalšie údaje zobrazovali pri každom stlačení tlačidla joysticku. Za týmto účelom nastavíme slučku if, ktorá každým stlačením tlačidla zvýši premennú JoyStickCount (hodnota JoyStickIn je 1, ak dôjde k stlačeniu tlačidla). V tej istej slučke, aby sme zaistili, že budeme iba cyklovať medzi piatimi vyššie uvedenými možnosťami, sme pridali ďalšiu podmienku, ktorá resetuje hodnotu premennej na 1. Pomocou toho vyberieme, ktorá hodnota sa zobrazí na matici LED. Prípad 1 bude predvolený, pretože definujeme JoyStickCount tak, aby začínal na 1, a to znamená, že matica LED bude zobrazovať teplotu v stupňoch Celzia. Premennú stav používa blok údajov posúvania na pochopenie toho, ktorá hodnota senzora sa aktuálne zobrazuje a ktorá jednotka by sa mala zobrazovať. Teraz, keď vieme, ako vybrať ten správny senzor na zobrazenie, pozrime sa na to, ako skutočný displej funguje.

Zobrazenie znakov a čísiel

Na zobrazenie na matici LED Sense HAT sme vytvorili matice 8x8 pre:

1) všetky čísla (0-9)

2) všetky jednotky (° C, A, % a ° F)

3) desatinná čiarka

4) abecedy od slov dobrý, zlý a škaredý.

Tieto matice 8x8 boli použité ako vstup do bloku 8x8 RGB LED Matrix. Tento blok rozsvieti LED diódy zodpovedajúce tým prvkom na matici, ktoré majú hodnotu 1, ako je uvedené nižšie.

Posúvanie textu

Blok údajov posúvania v našom modeli posúva reťazce, ktoré môžu mať až 6 znakov. Hodnota 6 bola zvolená ako najdlhší reťazec, ktorý v tomto projekte vytvoríme, napríklad 23,8 ° C alebo 99,1 ° F. Tu je ° C považovaný za jeden znak. Rovnakú myšlienku je možné rozšíriť aj na posúvače iných dĺžok.

Tu je GIF, ktorý ukazuje, ako to funguje -

www.element14.com/community/videos/29400/l/gif

Na zobrazenie reťazca po 6 znakov na matici 8x8 potrebujeme obrázok celkom 8x48. Na zobrazenie reťazca, ktorý môže mať maximálne 4 znaky, budeme musieť vytvoriť maticu 8x32. Teraz sa pozrime na celú nečinnosť stlačením tlačidla Spustiť. Predvolený displej na matici LED je hodnota teploty v ° C. Blok Rozsah zobrazí stav a hodnotu z bloku Selektor. Stlačte tlačidlo joysticku na senzore HAT a na sekundu podržte, aby ste sa presvedčili, že sa hodnota zmení na ďalší výstup senzora, a opakujte tento proces, kým nedosiahne stavovú hodnotu 5. Aby bolo možné pozorovať prepínanie algoritmu vo všetkých prípadoch kategorizácie vnútornej vlhkosti, zmeňte hodnotu bloku Test Comfort na ľubovoľné číslo od 1 do 4. Všimnite si, ako zmena hodnoty bloku na modeli Simulink okamžite zmení spôsob, akým sa kód správa na hardvéri. To môže byť užitočné v situáciách, keď chcete zmeniť správanie kódu zo vzdialeného miesta. Vďaka tomu sme videli kľúčové prvky vizualizačného aspektu systému monitorovania klímy. V ďalšej časti sa naučíme, ako dokončiť náš systém monitorovania vnútornej klímy.

Krok 4: Navrhnite algoritmus Simulink, aby ste rozhodli, či je vnútorná vlhkosť „dobrá“, „zlá“alebo „škaredá“

Simulinkom navrhnite algoritmus, ktorý rozhodne, či je vnútorná vlhkosť „dobrá“, „zlá“alebo „škaredá“
Simulinkom navrhnite algoritmus, ktorý rozhodne, či je vnútorná vlhkosť „dobrá“, „zlá“alebo „škaredá“

Existuje niekoľko spôsobov, ako pochopiť, či je miestnosť príliš vlhká/suchá, alebo zistiť, aká vnútorná vlhkosť sa považuje za pohodlnú. Pomocou tohto článku sme vytvorili plošnú krivku na prepojenie vnútornej relatívnej vlhkosti a vonkajších teplôt, ako je uvedené vyššie.

Akákoľvek hodnota relatívnej vlhkosti v tejto oblasti znamená, že je vaša izba v príjemnom prostredí. Ak je napríklad vonkajšia teplota -30 ° F, potom je prijateľná akákoľvek hodnota relatívnej vlhkosti pod 15%. Rovnako tak, ak je vonkajšia teplota 60 ° F, potom je prijateľná akákoľvek relatívna vlhkosť pod 50%. Na kategorizáciu vnútornej vlhkosti na maximálny komfort (dobrý), priemerný komfort (zlý) alebo príliš vlhký/suchý (škaredý) potrebujete vonkajšiu teplotu a relatívnu vlhkosť. Videli sme, ako do Raspberry Pi priniesť relatívnu vlhkosť. Zamerajme sa teda na zvýšenie vonkajšej teploty. Model otvoríte zadaním nasledujúceho príkazu do príkazového okna MATLAB:

> rpiOutdoorWeatherData

Blok WeatherData sa používa na meranie vonkajšej teploty vášho mesta (v K) pomocou https://openweathermap.org/. Na konfiguráciu tohto bloku potrebujete kľúč API z webovej stránky. Po vytvorení bezplatného účtu na tomto webe prejdite na stránku svojho účtu. Karta Kľúče API uvedená nižšie vám poskytne kľúč.

Blok WeatherData vyžaduje zadanie názvu mesta v konkrétnom formáte. Navštívte túto stránku, zadajte názov mesta, symbol čiarky a za ním 2 písmená na označenie krajiny. Príklady - Natick, USA a Chennai, IN. Ak vyhľadávanie vráti výsledok pre vaše mesto, použite ho v bloku WeatherData v tomto konkrétnom formáte. V prípade, že vaše mesto nie je k dispozícii, použite susedné mesto, ktorého poveternostné podmienky sú vám bližšie. Teraz dvakrát kliknite na blok WeatherData a z webovej stránky zadajte názov mesta a kľúč API.

Stlačením tlačidla Spustiť na tomto modeli Simulink skontrolujte, či blok môže do Raspberry Pi priniesť teplotu vášho mesta. Teraz sa pozrime na algoritmus, ktorý rozhoduje o tom, či je vnútorná vlhkosť dobrá, zlá alebo škaredá. Do príkazového okna MATLAB zadajte nasledujúci príkaz a otvorí sa nasledujúci príklad:

> rpisenseHatIHval

Možno ste si všimli, že blok Test Comfort z predchádzajúceho modelu chýba a nový blok s názvom FindRoom Comfort poskytuje blok ihval to Selector. Dvojitým kliknutím na tento blok ho otvoríte a preskúmate.

Na zaistenie vonkajšej teploty používame blok WeatherData. Subsystém Limity vlhkosti predstavuje graf relatívnej vlhkosti a vonkajšej teploty, ktorý sme videli vyššie. V závislosti od vonkajšej teploty vydá maximálnu limitnú hodnotu vlhkosti. Otvoríme funkčný blok DecideIH MATLAB dvojitým kliknutím na neho.

Ak hodnota relatívnej vlhkosti prekročí limit maximálnej vlhkosti, potom bude znamienko kladné na základe spôsobu, akým odčítame údaje, čo znamená, že v miestnosti je príliš vlhko. Pre tento scenár prinášame výstup 3 (škaredý). Dôvodom, prečo sa namiesto reťazcov používa číslo, je to, že je ľahké ho zobrazovať na grafoch a vytvárať z neho upozornenia. Ostatné klasifikácie vo funkcii MATLAB sú založené na ľubovoľných kritériách, s ktorými sme prišli. Keď je rozdiel menší ako 10, je zaradený do kategórie maximálneho pohodlia, a keď je menší ako 20, je to priemerný komfort a nad to je príliš suchý. Pokojne spustite tento model a overte si úroveň pohodlia svojej izby.

Krok 5: Zaznamenajte údaje o vnútornej klíme a kategorizované údaje v cloude

Zaznamenajte údaje o vnútornej klíme a kategorizované údaje do cloudu
Zaznamenajte údaje o vnútornej klíme a kategorizované údaje do cloudu

V tejto ďalšej časti uvidíme, ako zaznamenávať údaje v cloude. Ak chcete otvoriť tento príklad, do príkazového okna MATLAB zadajte nasledujúci príkaz.

> rpiSenseHatLogData

V tomto modeli je časť zobrazenia predchádzajúceho vzorového modelu účelovo odstránená, pretože nepotrebujeme, aby monitorovací systém pri zapisovaní údajov a odosielaní upozornení zobrazoval štatistiky. Na aspekt protokolovania údajov používame ThingSpeak, bezplatnú open-source platformu IoT, ktorá obsahuje analytiku MATLAB. Vybrali sme si ThingSpeak, pretože existujú priame spôsoby programovania Raspberry Pi a ďalších lacných hardvérových dosiek na odosielanie údajov do ThingSpeak pomocou Simulink. Blok ThingSpeak Write je z balíka Simulink Support Package pre hardvérovú knižnicu Raspberry Pi a je možné ho nakonfigurovať pomocou kľúča API rozhrania Write z vášho kanála ThingSpeak. Podrobné pokyny na vytvorenie kanála sú uvedené nižšie. Ak chcete nepretržite zaznamenávať údaje do cloudu, chcete, aby váš Pi fungoval nezávisle od Simulink. Za týmto účelom môžete na modeli Simulink stlačiť tlačidlo „Nasadiť na hardvér“.

Vytvorte si vlastný kanál ThingSpeak

Tí, ktorí nemajú účet, sa môžu zaregistrovať na webovej stránke ThingSpeak. Ak máte účet MathWorks, automaticky máte účet ThingSpeak.

  • Keď ste sa prihlásili, môžete vytvoriť kanál tak, že prejdete na Kanály> Moje kanály a kliknete na Nový kanál.
  • Všetko, čo potrebujete, je názov kanála a názvy polí, ktoré sa chystáte prihlásiť, ako je uvedené nižšie.
  • Možnosť Zobraziť polohu kanála vyžaduje ako vstup zemepisnú šírku a dĺžku vášho mesta a môže polohu na kanáli zobraziť na mape. (Tu uvedené príklady hodnôt sú pre Natick, MA)
  • Potom stlačením Uložiť kanál dokončite vytváranie kanála.

4a. Upozorniť, ak sú údaje zaradené do kategórie „Škaredé“

Na dokončenie nášho systému monitorovania vnútornej klímy musíme vidieť, ako prijímať upozornenia na základe cloudových údajov. Je to nevyhnutné, pretože bez toho nebudete môcť vykonať potrebné opatrenia na zmenu úrovne pohodlia v miestnosti. V tejto časti sa pozrieme na to, ako dostať do telefónu upozornenie vždy, keď cloudové údaje naznačujú, že je miestnosť príliš vlhká alebo suchá. Dosiahneme to pomocou dvoch služieb: IFTTT Webhooks a ThingSpeak TimeControl. IFTTT (skratka z If this, then that) je online služba, ktorá dokáže spracovávať udalosti a spúšťať akcie na základe udalostí.

Kroky na nastavenie webhookov IFTTT

Poznámka: Najlepšie výsledky dosiahnete vyskúšaním na počítači.

1) Vytvorte si účet na ifttt.com (ak ho nemáte) a vytvorte nový aplet zo stránky Moje aplety.

2) Kliknutím na modré tlačidlo „toto“vyberte svoju spúšťaciu službu.

3) Vyhľadajte a vyberte službu Webhooks.

4) Vyberte položku Prijať webovú požiadavku a zadajte názov udalosti.

5) Vyberte vytvoriť spúšťač.

6) Na nasledujúcej stránke vyberte „to“a vyhľadajte upozornenia.

7) Vyberte odoslať upozornenie z aplikácie IFTTT.

8) Zadajte názov udalosti, ktorú ste vytvorili v kroku 2 IFTTT, a vyberte vytvoriť akciu.

9) Pokračujte, kým nedosiahnete posledný krok, skontrolujte a stlačte tlačidlo Dokončiť.

10) Prejdite na stránku https://ifttt.com/maker_webhooks a kliknite na tlačidlo Nastavenia v hornej časti stránky.

11) Prejdite na adresu URL v sekcii Informácie o účte.

12) Sem zadajte názov svojej udalosti a kliknite na položku „Testovať“.

13) Skopírujte adresu URL v poslednom riadku pre budúce použitie (pomocou kľúča).

Kroky na nastavenie programu ThingSpeak TimeControl

1) Vyberte položku Aplikácie> MATLAB Analysis

2) Na ďalšej stránke kliknite na položku Nový, vyberte položku Spustiť e -mail z IFTTT a kliknite na položku Vytvoriť.

Tu v kóde šablóny sú dôležité tieto položky:

ID kanála - zadajte svoj kanál ThingSpeak, ktorý obsahuje informácie o „vlhkosti interiéru“.

IFTTTURL - Zadajte adresu URL skopírovanú z predchádzajúcej sekcie, krok 13.

readAPIKey - Zadajte kľúč sekcie ThingSpeak Channel. Action - sekcia, ktorá pôsobí na poslednú hodnotu. Ak chcete spustiť upozornenia, zmeňte ho na nasledujúci text.

3) Na webových stránkach ThingSpeak kliknite na Aplikácie> TimeControl.

4) Vyberte Opakované a zvoľte časovú frekvenciu.

5) Kliknite na položku Save TimeControl.

Teraz analýza MATLAB beží automaticky každú pol hodinu a odošle spúšťač službe IFTTT Webhooks, ak je hodnota väčšia alebo rovná 3. Potom telefónna aplikácia IFTTT upozorní používateľa upozornením, ako je uvedené na začiatku tejto časti.

Krok 6: Záver

Vďaka tomu sme videli všetky dôležité aspekty toho, ako si vybudovať vlastný systém monitorovania klímy. V tomto projekte sme videli, ako je možné Simulink použiť -

  • naprogramujte Raspberry Pi tak, aby prinášalo údaje zo Sense HAT. Zvýraznenie - Vizualizujte údaje v Simulinku, pretože kód na Raspberry Pi stále beží.
  • vybudovať vizuálne zobrazenie systému monitorovania vnútornej klímy. Zvýrazniť - zmeňte spôsob, akým sa váš kód správa na hardvéri zo služby Simulink.
  • navrhnite algoritmus systému monitorovania vnútornej klímy.
  • zaznamenajte údaje z Raspberry Pi do cloudu a vytvorte upozornenia z prihlásených údajov.

Aké sú niektoré zmeny, ktoré by ste urobili v tomto systéme monitorovania vnútornej klímy? Podeľte sa o svoje návrhy prostredníctvom komentárov.

Odporúča: