Tartalomjegyzék:

Raspberry Pi alapú beltéri klímafigyelő rendszer: 6 lépés
Raspberry Pi alapú beltéri klímafigyelő rendszer: 6 lépés

Videó: Raspberry Pi alapú beltéri klímafigyelő rendszer: 6 lépés

Videó: Raspberry Pi alapú beltéri klímafigyelő rendszer: 6 lépés
Videó: Raspberry Pi beehive scale: hardware presentation 2024, November
Anonim
Raspberry Pi alapú beltéri klímafigyelő rendszer
Raspberry Pi alapú beltéri klímafigyelő rendszer

Olvassa el ezt a blogot, és építse fel saját rendszerét, hogy értesítéseket kaphasson, ha a szobája túl száraz vagy párás.

Mi az a beltéri klímafigyelő rendszer, és miért van szükségünk rá?

A beltéri klímafigyelő rendszerek gyors áttekintést nyújtanak az éghajlattal kapcsolatos legfontosabb statisztikákról, például a hőmérsékletről és a relatív páratartalomról. Nagyon hasznos lehet, ha látja ezeket a statisztikákat, és értesítéseket kap a telefonján, ha a szoba túl párás vagy száraz. A riasztások használatával gyorsan megteheti a szükséges intézkedéseket a maximális kényelem elérése érdekében a szobában a fűtés bekapcsolásával vagy az ablakok kinyitásával. Ebben a projektben a Simulink használatát fogjuk látni:

1) vigye be az éghajlati statisztikákat (hőmérséklet, relatív páratartalom és nyomás) a Sense HAT -ból a Raspberry Pi -be

2) megjelenítse a mért adatokat a Sense HAT 8x8 LED -es mátrixán

3) tervezzen meg egy algoritmust annak eldöntésére, hogy a beltéri páratartalom „jó”, „rossz” vagy „csúnya”.

4) naplózza az adatokat a felhőben, és küldjön riasztást, ha az adatok „csúnya” (túl párás vagy száraz) kategóriába tartoznak.

Kellékek

Raspberry Pi 3 B modell

Raspberry Pi Sense kalap

1. lépés: Szükséges szoftver

Szükséges szoftver
Szükséges szoftver

Szüksége van a MATLAB-ra, a Simulink-re és a Bővítmények elemre, hogy kövesse a saját beltéri klímafigyelő rendszerét.

Nyissa meg a MATLAB -t rendszergazdai hozzáféréssel (kattintson jobb gombbal a MATLAB ikonra, és válassza a Futtatás rendszergazdaként) lehetőséget. Válassza a Bővítmények lehetőséget a MATLAB eszköztárban, majd kattintson a Bővítmények beszerzése elemre.

Itt keresse meg a támogatási csomagokat az alábbiakban felsorolt nevükkel, majd kattintson a „Hozzáadás” gombra.

a. MATLAB támogatási csomag a Raspberry Pi hardverhez: Bemenetek beszerzése és kimenetek küldése a Raspberry Pi táblákra és a csatlakoztatott eszközökre

b. Simulink támogatási csomag a Raspberry Pi hardverhez: Futtassa a Simulink modelleket a Raspberry Pi táblákon

c. RPi_Indoor_Climate_Monitoring_System: Példamodellek szükségesek ehhez a projekthez

Megjegyzés - A telepítés során kövesse a képernyőn megjelenő utasításokat, hogy beállítsa a Pi -t a MATLAB és a Simulink használatához.

2. lépés: Vigye az érzékelő adatait a Raspberry Pi -be a Simulink használatával

Vigye az érzékelő adatait a Raspberry Pi -be a Simulink használatával
Vigye az érzékelő adatait a Raspberry Pi -be a Simulink használatával

Azok számára, akik nem ismerik a Simulinket, ez egy grafikus programozási környezet, amelyet a dinamikus rendszerek modellezésére és szimulálására használnak. Miután megtervezte algoritmusát a Simulink programban, automatikusan generálhat kódot, és beágyazhatja azt egy Raspberry Pi vagy más hardverbe.

Az első példamodell megnyitásához írja be a következőt a MATLAB parancsablakába. Ezt a modellt használjuk a hőmérséklet, a nyomás és a relatív páratartalom adatainak a Raspberry Pi -be történő beviteléhez.

> rpiSenseHatBringSensorData

Az LPS25H nyomásérzékelő és a HTS221 páratartalom -érzékelő blokkok a Sense HAT könyvtárból származnak a Raspberry Pi hardverkönyvtárak Simulink támogatási csomagja alatt.

A hatókör blokkok a Simulink könyvtárak alatti Mosogató könyvtárból származnak. Annak érdekében, hogy a modell megfelelően legyen konfigurálva, kattintson a fogaskerék ikonra a Simulink modellben. Lépjen a Hardver megvalósítása> Hardver tábla beállításai> Cél hardver erőforrások menüpontra.

Megjegyzés - Nem kell konfigurálnia, ha követte a telepítési utasításokat a Simulink Support Package for Raspberry Pi telepítésekor. Az eszköz címe automatikusan a Pi -hez kerül.

Győződjön meg arról, hogy az eszköz címe megegyezik azzal az IP -címmel, amelyet a Pi indításakor hall. Előfordulhat, hogy újra kell működtetnie a Pi készüléket az aljzathoz csatlakoztatott fülhallgatóval, hogy hallja az eszköz címét.

Kattintson az OK gombra, majd nyomja meg a Futtatás gombot az alábbiak szerint. Győződjön meg arról, hogy a Pi vagy fizikailag csatlakozik a számítógéphez USB-kábelen keresztül, vagy ugyanazon a Wi-Fi-hálózaton van, mint a számítógép.

Amikor megnyomja a Futtatás gombot Külső módban, a Simulink automatikusan generálja az Ön modelljének megfelelő C -kódot, és letölt egy végrehajtható fájlt a Raspberry Pi -hez. Mindkét hatókör blokk úgy van konfigurálva, hogy megnyíljon, amint a modell futni kezd. Amikor a Simulink befejezte a kód Raspberry Pi -re történő telepítését, látni fogja a nyomás, a hőmérséklet és a relatív páratartalom adatait a hatókörökön, az alábbiak szerint.

Megjegyzés - A kód a Raspberry Pi -n fut, és a tényleges jeleket a Simulink hatókör blokkjain keresztül nézi, ugyanúgy, mint ha magához a hardverhez oszcilloszkópot csatlakoztatna. A két érzékelő hőmérsékletértéke kissé eltér egymástól. Nyugodtan válassza azt, amely jobban tükrözi a szoba tényleges hőmérsékletét, és használja azt a következő szakaszokban. A Sense HAT -tal végzett összes teszt során a HTS221 páratartalom -érzékelő hőmérsékleti értékei közelebb voltak a helyiség tényleges hőmérsékletéhez. Ezzel láttuk az alapokat, hogyan lehet bevinni az érzékelőadatokat a Sense HAT -ból a Raspberry Pi -be.

3. lépés: Az érzékelő adatainak megjelenítése a 8x8 LED -es mátrixon

Az érzékelő adatainak megjelenítése a 8x8 LED -es mátrixon
Az érzékelő adatainak megjelenítése a 8x8 LED -es mátrixon
Az érzékelő adatainak megjelenítése a 8x8 LED -es mátrixon
Az érzékelő adatainak megjelenítése a 8x8 LED -es mátrixon

Ebben a részben látni fogjuk, hogyan került a projekt vizuális megjelenítési része az utolsó modellhez. Az ebben a részben használt Sense HAT elemek a páratartalom -érzékelő (a relatív páratartalom és hőmérséklet meghatározásához), nyomásérzékelő, LED -mátrix és a joystick. A joystick segítségével kiválaszthatjuk, hogy melyik érzékelőt szeretnénk megjeleníteni.

A következő példamodell megnyitásához írja be a következőt a MATLAB parancsablakba.

> rpiSenseHatDisplay

A joystick blokk a Sense HAT könyvtárból származik. Segít abban, hogy a joystick adatait bevigyük a Raspberry Pi -be, akárcsak a nyomás- és páratartalom -érzékelő blokkok az előző példában. Egyelőre a Test Comfort blokkot használjuk a „jó” (ha a blokk értéke 1) megjelenítésére a LED mátrixon. A „rossz” jelenik meg, ha a blokk értéke 2, vagy „csúnya”, ha az értéke 3 vagy 4. A következő részben látni fogjuk a tényleges algoritmust, amely eldönti, hogy a beltéri páratartalom jó, rossz vagy csúnya. Fedezzük fel a Selector blokkot dupla kattintással. A MATLAB funkcióblokkok a MATLAB kód Simulink modellbe történő integrálására szolgálnak. Ebben az esetben az alább megadott SelectorFcn -t hozzuk be.

function [value, State] = SelectorFcn (JoyStickIn, nyomás, páratartalom, hőmérséklet, ihval)

kitartó JoyStickCount

ha üres (JoyStickCount)

JoyStickCount = 1;

vége

ha JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

ha JoyStickCount == 6

JoyStickCount = 1;

vége

vége

kapcsolja JoyStickCount

tok 1 % A kijelző hőmérséklete C -ban

érték = hőmérséklet;

Állapot = 1;

tok 2 % Kijelző nyomás atm -ben

érték = nyomás/1013,25;

Állapot = 2;

tok 3 % A relatív páratartalom megjelenítése % -ban

érték = páratartalom;

Állapot = 3;

tok 4 % A kijelző hőmérséklete F -ben

érték = hőmérséklet*(9/5) +32;

Állapot = 4;

tok 5 % Kijelző Jó/Rossz/Csúnya

érték = ihval;

Állapot = 5;

különben % Ne jelenjen meg/0

érték = 0;

Állapot = 6;

vége

A kapcsoló- és kisbetű-állításokat általában kiválasztásvezérlő mechanizmusként használják. Esetünkben azt szeretnénk, hogy a joystick bemenet legyen a kiválasztó vezérlő, és válassza ki a következő adatokat, amelyek minden alkalommal megjelennek, amikor a joystick gombot megnyomják. Ehhez beállítunk egy if ciklust, amely minden gombnyomással növeli a JoyStickCount változót (a JoyStickIn értéke 1, ha gombnyomásra kerül sor). Ugyanebben a ciklusban, annak biztosítása érdekében, hogy csak a fent megadott öt lehetőség között közlekedjünk, hozzáadtunk egy másik feltételt, amely visszaállítja a változó értékét 1 -re. Ennek segítségével kiválasztjuk, hogy melyik érték jelenik meg a LED mátrixon. Az 1. eset lesz az alapértelmezett, mivel a JoyStickCount -ot 1 -től kezdjük, és ez azt jelenti, hogy a LED -mátrix Celsius -fokban jeleníti meg a hőmérsékletet. Az állapotváltozót a Görgetés adatblokk használja annak megértéséhez, hogy melyik érzékelő értéke jelenik meg jelenleg, és milyen mértékegységet kell megjeleníteni. Most, hogy tudjuk, hogyan válasszuk ki a megfelelő érzékelőt a megjelenítéshez, nézzük meg a tényleges kijelző működését.

Karakterek és számok megjelenítése

A Sense HAT LED mátrixon való megjelenítéshez 8x8 mátrixot készítettünk a következőkhöz:

1) minden szám (0-9)

2) minden egység (° C, A, % és ° F)

3) tizedespont

4) ábécé a jó, rossz és csúnya szavakból.

Ezeket a 8x8 mátrixokat használták bemenetként a 8x8 RGB LED Matrix blokkhoz. Ez a blokk világítja meg a mátrix azon elemeinek megfelelő LED -eket, amelyek értéke 1, az alábbiak szerint.

A szöveg görgetése

Modellünk Scroll adatblokkja legfeljebb 6 karakter hosszú karakterláncokon görget. A 6 értéket választottuk, mivel ez a leghosszabb karakterlánc, amelyet ebben a projektben adunk ki, például 23,8 ° C vagy 99,1 ° F. Megjegyzés: itt a ° C egy karakternek számít. Ugyanez az elképzelés kiterjeszthető más hosszúságú görgetősorokra is.

Itt egy GIF, amely bemutatja, hogyan működik -

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

Ahhoz, hogy a 8x8 mátrixon egyenként 6 karakterből álló karakterláncot jelenítsünk meg, összesen 8x48 méretű képre van szükségünk. A legfeljebb 4 karakter hosszúságú karakterlánc megjelenítéséhez létre kell hoznunk egy 8x32 -es mátrixot. Most nézzük meg az egész tétlenséget a Futtatás gomb megnyomásával. A LED mátrix alapértelmezett kijelzője a hőmérséklet ° C -ban. A hatókör blokk megjeleníti a kiválasztó blokk állapotát és értékét. Nyomja meg a joystick gombot a Sense HAT -on, és tartsa lenyomva egy másodpercig, hogy ellenőrizze, hogy az érték a következő érzékelő kimenetre változik -e, és ismételje meg ezt a folyamatot, amíg el nem éri az 5 -ös állapotértéket. módosítsa a Test Comfort blokk értékét 1-4 közötti számra. Figyelje meg, hogy a Simulink modell blokkértékének megváltoztatása azonnal megváltoztatja a kód viselkedését a hardveren. Ez hasznos lehet olyan helyzetekben, amikor meg kell változtatni a kód viselkedését egy távoli helyről. Ezzel láttuk a klímamegfigyelő rendszer vizualizációs aspektusának kulcselemeit. A következő részben megtanuljuk, hogyan kell kiegészíteni beltéri klíma figyelő rendszerünket.

Lépés: Tervezzen egy algoritmust a Simulink programban annak eldöntésére, hogy a beltéri páratartalom „jó”, „rossz” vagy „csúnya”

Tervezzen meg egy algoritmust a Simulink segítségével annak eldöntésére, hogy a beltéri páratartalom „jó”, „rossz” vagy „csúnya”
Tervezzen meg egy algoritmust a Simulink segítségével annak eldöntésére, hogy a beltéri páratartalom „jó”, „rossz” vagy „csúnya”

Számos módszer létezik annak megértésére, hogy a szobája túl párás/száraz -e, vagy hogy milyen beltéri páratartalmat tartanak kényelmesnek. Ennek a cikknek a felhasználásával létrehoztuk a területgörbét a beltéri relatív páratartalom és a külső hőmérséklet összekapcsolására, a fentiek szerint.

Bármilyen relatív páratartalom ezen a területen azt jelenti, hogy a szoba kényelmes környezetben van. Például, ha a kültéri hőmérséklet -30 ° F, akkor minden 15% alatti relatív páratartalom elfogadható. Hasonlóképpen, ha a külső hőmérséklet 60 ° F, akkor minden 50% alatti relatív páratartalom elfogadható. Ahhoz, hogy a beltéri páratartalmat a maximális kényelem (jó), az átlagos kényelem (rossz) vagy a túl párás/száraz (csúnya) kategóriába sorolja, külső hőmérsékletre és relatív páratartalomra van szüksége. Láttuk, hogyan lehet bevinni a relatív páratartalmat a Raspberry Pi -be. Tehát összpontosítsunk a kültéri hőmérséklet növelésére. A modell megnyitásához írja be a következőt a MATLAB parancsablakába:

> rpiOutdoorWeatherData

A WeatherData blokk segítségével a város külső hőmérsékletét (K -ban) állíthatja be a https://openweathermap.org/ segítségével. A blokk konfigurálásához szüksége van egy API kulcsra a webhelyről. Miután létrehozta ingyenes fiókját ezen a webhelyen, lépjen a fiókoldalára. Az alábbiakban látható API kulcsok lap megadja a kulcsot.

A WeatherData blokknak meg kell adnia a város nevét egy meghatározott formátumban. Látogasson el erre az oldalra, és írja be a város nevét, majd a vessző szimbólumot, majd 2 betűt az ország jelzésére. Példák - Natick, USA és Chennai, IN. Ha a keresés eredményt ad a városra, használja ezt a WeatherData blokkban az adott formátumban. Abban az esetben, ha városa nem érhető el, használjon szomszédos várost, amelynek időjárási viszonyai közelebb állnak az Önéhez. Most kattintson duplán a WeatherData blokkra, és írja be városának nevét és API -kulcsát a webhelyről.

Nyomja meg a Futtatás gombot ezen a Simulink -modellen, hogy ellenőrizze, hogy a blokk képes -e bevinni városának hőmérsékletét a Raspberry Pi -be. Most nézzük az algoritmust, amely eldönti, hogy a beltéri páratartalom jó, rossz vagy csúnya. A következő példa megnyitásához írja be a következőt a MATLAB parancsablakába:

> rpisenseHatIHval

Lehet, hogy észrevette, hogy az előző modell Test Comfort blokkja hiányzik, és a FindRoom Comfort nevű új blokk biztosítja az ihval a Selector blokkhoz. Kattintson duplán erre a blokkra a megnyitáshoz és a felfedezéshez.

A WeatherData blokkot használjuk a kültéri hőmérséklet beviteléhez. A Páratartalom határértékek alrendszer a relatív páratartalom és a kültéri hőmérséklet diagramot ábrázolja. A külső hőmérséklettől függően a maximális páratartalom határértéket adja ki. Nyissuk meg a DecideIH MATLAB funkcióblokkot dupla kattintással.

Ha a relatív páratartalom értéke meghaladja a maximális páratartalom határértéket, akkor a jel pozitív lesz az adatok kivonásának módja alapján, ami azt jelenti, hogy a helyiség túl párás. Erre a forgatókönyvre egy 3 -as (csúnya) értéket adunk meg. A karaktersorok helyett számok használatának oka az, hogy könnyen megjeleníthető a grafikonokon, és riasztásokat hozhat létre. A MATLAB függvény többi osztályozása tetszőleges kritériumokon alapul, amelyeket mi találtunk ki. Ha a különbség 10 -nél kisebb, akkor a maximális kényelmet, 20 -nál kisebb értéket pedig átlagos kényelemnek kell tekinteni, és e fölött túl száraz. Nyugodtan futtassa ezt a modellt, és ellenőrizze a szoba kényelmi szintjét.

5. lépés: Naplózza a beltéri klímaadatokat és a kategorizált adatokat a felhőben

Naplózza a beltéri éghajlati adatokat és a kategorizált adatokat a felhőben
Naplózza a beltéri éghajlati adatokat és a kategorizált adatokat a felhőben

Ebben a következő részben látni fogjuk, hogyan lehet naplózni az adatokat a felhőben. A példa megnyitásához írja be a következőt a MATLAB parancsablakba.

> rpiSenseHatLogData

Ebben a modellben az előző példamodell megjelenítési részét szándékosan távolítják el, mivel nincs szükségünk arra, hogy a felügyeleti rendszer megjelenítse a statisztikákat az adatok naplózása és riasztások küldése közben. A ThingSpeak nevű ingyenes, nyílt forráskódú IoT-platformot használjuk, amely MATLAB-elemzést tartalmaz az adatnaplózási szempontból. A ThingSpeak mellett döntöttünk, mivel vannak közvetlen módszerek a Raspberry Pi és más olcsó hardverlapok programozására, hogy adatokat küldjenek a ThingSpeaknek a Simulink használatával. A ThingSpeak Write blokk a Simulink Support Package for Raspberry Pi Hardware könyvtárból származik, és konfigurálható a ThingSpeak csatorna Write API kulcsa segítségével. Az alábbiakban részletes utasításokat talál a csatorna létrehozásáról. Ahhoz, hogy folyamatosan naplózza az adatokat a felhőbe, azt szeretné, ha a Pi a Simulinktől függetlenül működjön. Ehhez nyomja meg a „Telepítés hardverbe” gombot a Simulink modellben.

Hozza létre saját ThingSpeak csatornáját

Azok, akik nem rendelkeznek fiókkal, regisztrálhatnak a ThingSpeak webhelyen. Ha rendelkezik MathWorks -fiókkal, akkor automatikusan rendelkezik ThingSpeak -fiókkal.

  • Miután bejelentkezett, létrehozhat csatornát a Csatornák> Saját csatornák menüpontban, és kattintson az Új csatorna elemre.
  • Csak a csatorna nevére és a naplózni kívánt mezőkre van szüksége az alábbiak szerint.
  • A Csatorna helyének megjelenítése beállítás megadásához be kell írnia a város szélességét és hosszúságát, és megjelenítheti a csatornán belüli helyet a térképen. (Az itt használt példaértékek Natick, MA)
  • Ezután nyomja meg a Csatorna mentése gombot a csatorna létrehozásának befejezéséhez.

4a. Figyelmeztetés, ha az adatok „csúnya” kategóriába vannak besorolva

A beltéri klímafigyelő rendszerünk befejezéséhez látnunk kell, hogyan kell riasztásokat fogadni a felhőadatok alapján. Ez azért kritikus, mert enélkül nem tudja megtenni a szükséges intézkedéseket a szoba komfortszintjének megváltoztatásához. Ebben a részben azt látjuk, hogyan kaphat értesítést a telefonjára, ha a felhőadatok azt jelzik, hogy a helyiség túl párás vagy száraz. Ezt két szolgáltatás használatával érjük el: az IFTTT Webhooks és a ThingSpeak TimeControl. Az IFTTT (jelentése If this, then that) egy online szolgáltatás, amely képes kezelni az eseményeket és az események alapján műveleteket kiváltani.

Az IFTTT webhook beállításának lépései

Megjegyzés: Próbálja ki ezeket számítógépen a legjobb eredmény érdekében.

1) Hozzon létre egy fiókot az ifttt.com webhelyen (ha még nincs), és hozzon létre egy új kisalkalmazást a Saját alkalmazások oldalon.

2) Kattintson a kék "ez" gombra az aktiválási szolgáltatás kiválasztásához.

3) Keresse meg és válassza a Webhooks szolgáltatást.

4) Válassza a Webkérés fogadása lehetőséget, és adja meg az esemény nevét.

5) Válassza ki a trigger létrehozását.

6) Válassza ki az „ezt” a következő oldalon, és keressen értesítéseket.

7) Válassza az értesítés küldése lehetőséget az IFTTT alkalmazásból.

8) Adja meg az IFTTT 2. lépésében létrehozott eseménynevet, és válassza a létrehozási művelet lehetőséget.

9) Folytassa, amíg el nem éri az utolsó lépést, nézze át és nyomja meg a Befejezés gombot.

10) Nyissa meg a https://ifttt.com/maker_webhooks webhelyet, és kattintson az oldal tetején található Beállítások gombra.

11) Lépjen a Fiókadatok szakasz URL -címére.

12) Írja be az esemény nevét ide, majd kattintson a „Tesztelés” gombra.

13) Másolja az URL -t az utolsó sorba a későbbi használathoz (a kulccsal).

A ThingSpeak TimeControl beállításának lépései

1) Válassza az Alkalmazások> MATLAB elemzés lehetőséget

2) Kattintson az Új gombra a következő oldalon, és válassza az E -mail aktiválása az IFTTT -ből, majd kattintson a Létrehozás gombra.

A sablonkód fontos részei a következők:

Csatornaazonosító - Adja meg a ThingSpeak csatornát, amely tartalmazza a „beltéri páratartalom értékét”.

IFTTTURL - Írja be az előző részből másolt URL -t. 13. lépés.

readAPIKey - Írja be a ThingSpeak csatorna kulcsát. Művelet szakasz - az, amely az utolsó értékre hat. A riasztások aktiválásához módosítsa a következőre.

3) A ThingSpeak webhelyen kattintson az Alkalmazások> TimeControl elemre.

4) Válassza az Ismétlődő lehetőséget, és válassza ki az idő gyakoriságát.

5) Kattintson a Save TimeControl gombra.

Most a MATLAB Analysis automatikusan félóránként fut, és aktiválási szabályt küld az IFTTT Webhooks szolgáltatásnak, ha az érték nagyobb vagy egyenlő, mint 3. Ezután az IFTTT telefonos alkalmazás értesítést küld a felhasználónak, amint ez a szakasz elején látható.

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

Ezzel láttuk a klímafigyelő rendszer felépítésének minden fontos aspektusát. Ebben a projektben láttuk, hogyan használható a Simulink -

  • programozzon egy Raspberry Pi -t, hogy adatokat vigyen be a Sense HAT -ból. Kiemelés - vizualizálja a Simulink adatait, mivel a kód még mindig fut a Raspberry Pi -n.
  • a beltéri klímafigyelő rendszer vizuális kijelzőjének kialakítása. Kiemelés - Módosítsa a kód viselkedését a Simulink hardverén.
  • megtervezni a beltéri klíma figyelő rendszer algoritmusát.
  • naplózza a Raspberry Pi adatait a felhőbe, és hozzon létre riasztásokat a naplózott adatokból.

Milyen változtatásokat hajtana végre ezen a beltéri klímafigyelő rendszeren? Kérjük, ossza meg javaslatait megjegyzésekben.

Ajánlott: