Kazalo:

Sistem za spremljanje podnebja v zaprtih prostorih na osnovi maline Pi: 6 korakov
Sistem za spremljanje podnebja v zaprtih prostorih na osnovi maline Pi: 6 korakov

Video: Sistem za spremljanje podnebja v zaprtih prostorih na osnovi maline Pi: 6 korakov

Video: Sistem za spremljanje podnebja v zaprtih prostorih na osnovi maline Pi: 6 korakov
Video: Выращивание и защита овощей в зимний период 2024, December
Anonim
Sistem za spremljanje podnebja v zaprtih prostorih na osnovi maline Pi
Sistem za spremljanje podnebja v zaprtih prostorih na osnovi maline Pi

Preberite ta blog in sestavite svoj sistem, da boste lahko prejemali opozorila, ko je vaša soba preveč suha ali vlažna.

Kaj je sistem za nadzor podnebja v zaprtih prostorih in zakaj ga potrebujemo?

Sistemi za nadzor podnebja v zaprtih prostorih omogočajo hiter vpogled v ključne statistike, povezane s podnebjem, kot sta temperatura in relativna vlažnost. Če si lahko ogledate te statistične podatke in prejmete opozorila na telefonu, ko je soba preveč vlažna ali suha, je lahko zelo koristno. Z opozorili lahko hitro vzamete potrebne ukrepe, da dosežete maksimalno udobje v prostoru, tako da vklopite grelec ali odprete okna. V tem projektu bomo videli, kako uporabljati Simulink za:

1) vnesite podatke o podnebju (temperaturo, relativno vlažnost in tlak) iz Sense HAT v Raspberry Pi

2) prikažite izmerjene podatke na matriki LED 8x8 Sense HAT

3) oblikujte algoritem za odločitev, ali je vlažnost v zaprtih prostorih "dobra", "slaba" ali "grda".

4) zabeležite podatke v oblaku in pošljite opozorilo, če so podatki kategorizirani kot "grdi" (preveč vlažno ali suho).

Zaloge

Raspberry Pi 3 Model B

KAPA Raspberry Pi Sense

1. korak: potrebna programska oprema

Potrebna programska oprema
Potrebna programska oprema

Potrebujete MATLAB, Simulink in izberite dodatke, ki vam bodo sledili in zgradili lasten sistem za nadzor podnebja v zaprtih prostorih.

Odprite MATLAB z dostopom skrbnika (z desno miškino tipko kliknite ikono MATLAB in izberite Zaženi kot skrbnik). Izberite Dodatki v orodnem traku MATLAB in kliknite Pridobi dodatke.

Tu poiščite pakete podpore z njihovimi imeni spodaj in jih dodajte.

a. Paket podpore MATLAB za strojno opremo Raspberry Pi: Pridobite vhode in pošljite izhode na plošče Raspberry Pi in povezane naprave

b. Paket podpore Simulink za strojno opremo Raspberry Pi: Zaženite modele Simulink na ploščah Raspberry Pi

c. RPi_Indoor_Climate_Monitoring_System: Primeri modelov, potrebnih za ta projekt

Opomba - Med namestitvijo sledite navodilom na zaslonu, da nastavite Pi za delo z MATLAB -om in Simulinkom.

2. korak: S pomočjo Simulinka prinesite podatke senzorja v Raspberry Pi

S pomočjo Simulinka prinesite podatke senzorja v Raspberry Pi
S pomočjo Simulinka prinesite podatke senzorja v Raspberry Pi

Za tiste, ki Simulinka ne poznajo, je to grafično programsko okolje, ki se uporablja za modeliranje in simulacijo dinamičnih sistemov. Ko oblikujete svoj algoritem v Simulinku, lahko samodejno ustvarite kodo in jo vdelate v Raspberry Pi ali drugo strojno opremo.

V ukazno okno MATLAB vnesite naslednje, da odprete prvi primer modela. Ta model bomo uporabili za vnos podatkov o temperaturi, tlaku in relativni vlažnosti v Raspberry Pi.

> rpiSenseHatBringSensorData

Bloki senzorja tlaka LPS25H in senzor vlažnosti HTS221 so iz knjižnice Sense HAT v podpornem paketu Simulink za knjižnice strojne opreme Raspberry Pi.

Bloki obsega so iz knjižnice Sinks v knjižnicah Simulink. Če želite zagotoviti, da je vaš model pravilno konfiguriran, kliknite ikono zobnika v modelu Simulink. Pomaknite se do Izvajanje strojne opreme> Nastavitve plošče strojne opreme> Ciljanje virov strojne opreme.

Opomba - Če ste pri nameščanju paketa podpore Simulink za Raspberry Pi upoštevali navodila za nastavitev, vam ni treba konfigurirati. Naslov naprave se samodejno zapolni z naslovom vašega Pi.

Poskrbite, da se naslov naprave tukaj ujema z naslovom IP, ki ga slišite, ko se Pi zažene. Če želite slišati naslov naprave, boste morda morali znova vklopiti Pi s slušalkami, priključenimi v vtičnico.

Kliknite V redu in pritisnite gumb Zaženi, kot je prikazano spodaj. Prepričajte se, da je vaš Pi fizično povezan z računalnikom prek kabla USB ali da je v istem omrežju Wi-Fi kot vaš računalnik.

Ko pritisnete gumb Zaženi v zunanjem načinu, Simulink samodejno ustvari kodo C, ki ustreza vašemu modelu, in prenese izvršljivo datoteko v Raspberry Pi. Oba bloka obsega sta konfigurirana za odpiranje, ko se model začne izvajati. Ko Simulink konča z uvajanjem kode v Raspberry Pi, boste na področjih uporabe videli podatke o tlaku, temperaturi in relativni vlažnosti, kot je prikazano spodaj.

Opomba - Koda se izvaja na Raspberry Pi in si ogledate dejanske signale skozi bloke področja uporabe Simulink, tako kot bi to storili, če bi imeli osciloskop povezan s samo strojno opremo. Temperaturna vrednost obeh senzorjev je nekoliko oddaljena drug od drugega. Prosto izberite tistega, ki natančneje odraža dejansko temperaturo v vaši sobi, in ga uporabite v naslednjih razdelkih. V vseh testih Sense HAT, ki smo jih imeli, so bile temperaturne vrednosti senzorja vlažnosti HTS221 bližje dejanski temperaturi v prostoru. S tem smo spoznali osnove, kako vnesti podatke senzorjev iz Sense HAT v Raspberry Pi.

3. korak: Prikažite podatke senzorja na matriki LED 8x8

Prikaz podatkov senzorja na matriki LED 8x8
Prikaz podatkov senzorja na matriki LED 8x8
Prikaz podatkov senzorja na matriki LED 8x8
Prikaz podatkov senzorja na matriki LED 8x8

V tem razdelku bomo videli, kako je bil del vizualnega prikaza tega projekta dodan zadnjemu modelu. Elementi Sense HAT, ki se uporabljajo v tem razdelku, so senzor vlažnosti (za dosego relativne vlažnosti in temperature), senzor tlaka, LED matrika in krmilna palica. Krmilna palica se uporablja za izbiro senzorja, ki ga želimo prikazati.

Če želite odpreti naslednji vzorčni model, v ukazno okno MATLAB vnesite naslednje.

> rpiSenseHatDisplay

Blok Joystick je iz knjižnice Sense HAT. Pomaga nam pri vnosu podatkov krmilne palice v Raspberry Pi, tako kot so to storili bloki senzorjev tlaka in vlažnosti v prejšnjem primeru. Za zdaj uporabljamo blok Test Comfort za prikaz "dobro" (ko je vrednost bloka 1) na matriki LED. Ko je vrednost bloka 2 ali »grda«, se prikaže »slabo«, ko je vrednost 3 ali 4. V naslednjem razdelku bomo videli dejanski algoritem, ki odloča, ali je vlažnost v zaprtih prostorih dobra, slaba ali grda. Raziščimo blok Selector z dvojnim klikom nanj. Funkcijski bloki MATLAB se uporabljajo za integracijo kode MATLAB v vaš model Simulink. V tem primeru uvajamo spodnji SelectorFcn.

funkcija [vrednost, stanje] = SelectorFcn (JoyStickIn, tlak, vlaga, temp, ihval)

trajen JoyStickCount

če je prazno (JoyStickCount)

JoyStickCount = 1;

konec

če je JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

če je JoyStickCount == 6

JoyStickCount = 1;

konec

konec

preklopite JoyStickCount

ohišje 1 % Temperatura prikaza v C

vrednost = temp;

Stanje = 1;

ohišje 2 % Prikazni tlak v atm

vrednost = tlak/1013,25;

Stanje = 2;

ohišje 3 % Prikaz relativne vlažnosti v %

vrednost = vlažnost;

Stanje = 3;

ohišje 4 % Temperatura prikaza v F.

vrednost = temp*(9/5) +32;

Stanje = 4;

ohišje 5 % Prikaz dobro/slabo/grdo

vrednost = ihval;

Stanje = 5;

drugače % Ne prikaži/Prikaži 0

vrednost = 0;

Stanje = 6;

konec

Izjave o stikalih se običajno uporabljajo kot mehanizem nadzora izbire. V našem primeru želimo, da je vnos krmilne palice izbirni nadzor in izberemo naslednje podatke, ki bodo prikazani ob vsakem pritisku gumba krmilne palice. V ta namen nastavimo zanko if, ki z vsakim pritiskom gumba poveča spremenljivko JoyStickCount (vrednost JoyStickIn je 1, če pritisnete gumb). V isti zanki smo za zagotovitev, da kolesarimo le med petimi zgornjimi možnostmi, dodali še en pogoj, ki vrednost spremenljivke ponastavi na 1. S tem izberemo, katera vrednost bo prikazana na matriki LED. Primer 1 bo privzeti, saj definiramo JoyStickCount za začetek pri 1, kar pomeni, da bo LED matrika prikazala temperaturo v Celzijah. Podatkovni blok Scroll uporablja spremenljivko State za razumevanje, katera vrednost senzorja je trenutno prikazana in katera enota naj bo prikazana. Zdaj, ko vemo, kako izbrati pravi senzor za prikaz, poglejmo, kako deluje dejanski zaslon.

Prikaz znakov in številk

Za prikaz na matriki Sense HAT LED smo ustvarili matrice 8x8 za:

1) vse številke (0-9)

2) vse enote (° C, A, % in ° F)

3) decimalna vejica

4) abecede iz besed dobro, slabo in grdo.

Te matrice 8x8 so bile uporabljene kot vhod v blok matrike LED 8x8 RGB LED. Ta blok prižge LED, ki ustrezajo tistim elementom na matrici, ki imajo vrednost 1, kot je prikazano spodaj.

Drsanje po besedilu

Podatkovni blok Scroll v našem modelu se pomika po nizih, ki so lahko dolgi do 6 znakov. Vrednost 6 je bila izbrana, saj je to najdaljši niz, ki ga bomo prikazali v tem projektu, na primer 23,8 ° C ali 99,1 ° F. Upoštevajte, da se tukaj ° C šteje za en znak. Ista ideja se lahko razširi tudi na drsne nize drugih dolžin.

Tukaj je GIF, ki prikazuje, kako deluje -

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

Za prikaz niza po 6 znakov na matriki 8x8 potrebujemo sliko velikosti 8x48 skupaj. Za prikaz niza, ki ima največ 4 znake, bomo morali ustvariti matriko 8x32. Zdaj pa poglejmo, kako je vse nedejavno, s pritiskom na gumb Zaženi. Privzeti prikaz na matriki LED je vrednost temperature v ° C. Blok Scope bo prikazal stanje in vrednost iz bloka Selector. Pritisnite gumb krmilne ročice na senzorju HAT in pridržite sekundo, da preverite, ali se vrednost spremeni na naslednji izhod senzorja, in ta postopek ponavljajte, dokler ne doseže vrednosti stanja 5. Za opazovanje preklapljanja algoritma v vseh primerih kategorizacije vlažnosti v zaprtih prostorih, spremenite vrednost bloka Test Comfort na poljubno število med 1 in 4. Opazite, kako sprememba vrednosti bloka v modelu Simulink takoj spremeni način obnašanja kode na strojni opremi. To je lahko koristno v primerih, ko želimo spremeniti obnašanje kode z oddaljene lokacije. S tem smo videli ključne elemente vizualizacijskega vidika sistema za spremljanje podnebja. V naslednjem razdelku se bomo naučili, kako dokončati naš sistem za nadzor podnebja v zaprtih prostorih.

4. korak: V Simulinku oblikujte algoritem, da ugotovite, ali je vlažnost v zaprtih prostorih "dobra", "slaba" ali "grda"

V Simulinku oblikujte algoritem, da ugotovite, ali je vlažnost v zaprtih prostorih "dobra", "slaba" ali "grda"
V Simulinku oblikujte algoritem, da ugotovite, ali je vlažnost v zaprtih prostorih "dobra", "slaba" ali "grda"

Obstaja več načinov, da razumete, ali je vaša soba preveč vlažna/suha ali da veste, kakšna je vlažnost v zaprtih prostorih. S tem člankom smo določili krivuljo območja za povezavo relativne vlažnosti v zaprtih prostorih in zunanjih temperatur, kot je prikazano zgoraj.

Vsaka relativna vlažnost na tem območju pomeni, da je vaša soba v udobnem okolju. Na primer, če je zunanja temperatura -30 ° F, je sprejemljiva vsaka relativna vlažnost pod 15%. Podobno, če je zunanja temperatura 60 ° F, je sprejemljiva vsaka relativna vlažnost pod 50%. Za razvrščanje vlažnosti v zaprtih prostorih v maksimalno udobje (dobro), povprečno udobje (slabo) ali preveč vlažno/suho (grdo) potrebujete zunanjo temperaturo in relativno vlažnost. Videli smo, kako v Raspberry Pi vnesti relativno vlažnost. Zato se osredotočimo na vnos zunanje temperature. Če želite odpreti model, v ukazno okno MATLAB vnesite naslednje:

> rpiOutdoorWeatherData

Blok WeatherData se uporablja za vnos zunanje temperature vašega mesta (v K) z uporabo https://openweathermap.org/. Če želite konfigurirati ta blok, potrebujete ključ API s spletnega mesta. Ko ustvarite brezplačen račun na tem spletnem mestu, pojdite na stran svojega računa. Na spodnjem zavihku ključi API vam je na voljo ključ.

Blok WeatherData potrebuje vnos imena vašega mesta v določeni obliki. Obiščite to stran in vnesite ime svojega mesta, nato simbol vejice, ki mu sledita dve črki za označevanje države. Primeri - Natick, ZDA in Chennai, IN. Če iskanje vrne rezultat za vaše mesto, ga uporabite v bloku WeatherData v določeni obliki. Če vaše mesto ni na voljo, uporabite sosednje mesto, katerega vremenske razmere so bližje vašim. Zdaj dvokliknite blok WeatherData in na spletnem mestu vnesite ime svojega mesta in ključ API.

Pritisnite Run na tem modelu Simulink, da preverite, ali lahko blok vnese temperaturo vašega mesta v Raspberry Pi. Zdaj pa poglejmo algoritem, ki odloča, ali je notranja vlaga dobra, slaba ali grda. V ukazno okno MATLAB vnesite naslednje, da odprete naslednji primer:

> rpisenseHatIHval

Morda ste opazili, da manjka blok Test Comfort iz prejšnjega modela in nov blok z imenom FindRoom Comfort zagotavlja blok ihval do selektorja. Dvokliknite ta blok, da ga odprete in raziščete.

Za vnos zunanje temperature uporabljamo blok WeatherData. Podsistem Meje vlažnosti predstavlja tabelo relativne vlažnosti v primerjavi z zunanjo temperaturo, ki smo jo videli zgoraj. Odvisno od zunanje temperature bo izpisana mejna vrednost največje vlažnosti. Odprimo funkcijski blok DecideIH MATLAB z dvojnim klikom nanj.

Če vrednost relativne vlažnosti preseže najvišjo mejo vlažnosti, bo znak pozitiven glede na način odštevanja podatkov, kar pomeni, da je prostor preveč vlažen. Za ta scenarij oddajamo 3 (grdo). Razlog za uporabo številk namesto nizov je enostaven prikaz na grafih in ustvarjanje opozoril. Preostale klasifikacije v funkciji MATLAB temeljijo na poljubnih merilih, ki smo jih pripravili. Ko je razlika manjša od 10, je kategorizirano največje udobje, pri manjši od 20 pa povprečno udobje, nad tem pa je preveč suho. Zaženite ta model in preverite raven udobja v svoji sobi.

5. korak: Zapišite notranje podnebne podatke in kategorizirane podatke v oblaku

Zapisovanje podnebnih podatkov v zaprtih prostorih in kategoriziranih podatkov v oblaku
Zapisovanje podnebnih podatkov v zaprtih prostorih in kategoriziranih podatkov v oblaku

V tem naslednjem razdelku bomo videli, kako zapisati podatke v oblak. Če želite odpreti ta primer, v ukazno okno MATLAB vnesite naslednje.

> rpiSenseHatLogData

V tem modelu je del prikaza prejšnjega vzorčnega modela namenoma odstranjen, saj nam ni treba, da sistem za spremljanje prikazuje statistiko med beleženjem podatkov in pošiljanjem opozoril. Za vidik beleženja podatkov uporabljamo ThingSpeak, brezplačno odprtokodno platformo IoT, ki vključuje analitiko MATLAB. Izbrali smo ThingSpeak, saj obstajajo neposredni načini za programiranje Raspberry Pi in drugih poceni strojnih plošč za pošiljanje podatkov v ThingSpeak s pomočjo Simulinka. Blok ThingSpeak Write je iz podpornega paketa Simulink za knjižnico strojne opreme Raspberry Pi in ga je mogoče konfigurirati z uporabo API -ja za pisanje iz vašega kanala ThingSpeak. Podrobna navodila za ustvarjanje kanala so navedena spodaj. Če želite nenehno beležiti podatke v oblak, želite, da vaš Pi deluje neodvisno od Simulinka. V ta namen lahko v svojem modelu Simulink pritisnete gumb »Razmesti v strojno opremo«.

Ustvarite svoj kanal ThingSpeak

Tisti, ki nimate računa, se lahko prijavite na spletnem mestu ThingSpeak. Če imate račun MathWorks, potem samodejno imate račun ThingSpeak.

  • Ko ste prijavljeni, lahko ustvarite kanal tako, da odprete Kanali> Moji kanali in kliknete Nov kanal.
  • Vse, kar potrebujete, je ime kanala in imena polj, ki jih boste beležili, kot je prikazano spodaj.
  • Možnost Pokaži lokacijo kanala za vnos potrebuje zemljepisno širino in dolžino vašega mesta in lahko prikaže lokacijo znotraj kanala na zemljevidu. (Tukaj so navedene vrednosti za Natick, MA)
  • Nato pritisnite Shrani kanal, da dokončate ustvarjanje kanala.

4a. Opozorilo, če so podatki kategorizirani kot "grdi"

Za dokončanje našega sistema za nadzor podnebja v zaprtih prostorih moramo videti, kako prejemati opozorila na podlagi podatkov v oblaku. To je ključnega pomena, saj brez tega ne boste mogli sprejeti potrebnih ukrepov za spremembo ravni udobja v sobi. V tem razdelku bomo videli, kako prejeti obvestilo v telefon, kadar koli podatki v oblaku kažejo, da je prostor preveč vlažen ali suh. To bomo dosegli z uporabo dveh storitev: IFTTT Webhooks in ThingSpeak TimeControl. IFTTT (kratica za If this, then that) je spletna storitev, ki lahko obravnava dogodke in sproži dejanja na podlagi dogodkov.

Koraki za nastavitev IFTTT Webhooks

Opomba: Za najboljše rezultate poskusite to na računalniku.

1) Ustvarite račun na spletnem mestu ifttt.com (če ga nimate) in ustvarite nov programček na strani Moji jabolki.

2) Kliknite modri gumb "to", da izberete storitev sprožilca.

3) Poiščite in izberite storitev Webhooks kot storitev.

4) Izberite Prejemi spletno zahtevo in vnesite ime dogodka.

5) Izberite ustvarjanje sprožilca.

6) Na naslednji strani izberite "to" in poiščite obvestila.

7) Izberite pošlji obvestilo iz aplikacije IFTTT.

8) Vnesite ime dogodka, ki ste ga ustvarili v 2. koraku IFTTT, in izberite ustvarjanje dejanja.

9) Nadaljujte, dokler ne pridete do zadnjega koraka, pregledajte in pritisnite konec.

10) Pojdite na https://ifttt.com/maker_webhooks in kliknite gumb Nastavitve na vrhu strani.

11) Pojdite na URL v razdelku Podatki o računu.

12) Tukaj vnesite ime svojega dogodka in kliknite »Preizkusi«.

13) Kopirajte URL v zadnji vrstici za prihodnjo uporabo (s ključem).

Koraki za nastavitev ThingSpeak TimeControl

1) Izberite Aplikacije> Analiza MATLAB

2) Na naslednji strani kliknite Novo in izberite Sproži e -pošto iz IFTTT in kliknite Ustvari.

Pomembni deli v kodi predloge so:

ID kanala - Vnesite svoj kanal ThingSpeak, ki vsebuje podatke o "ventilu vlažnosti v zaprtih prostorih".

IFTTTURL - Vnesite URL, kopiran iz prejšnjega razdelka, 13. korak.

readAPIKey - Vnesite ključ razdelka ThingSpeak Channel. Action - tistega, ki deluje na zadnjo vrednost. Če želite sprožiti opozorila, ga spremenite na naslednje.

3) Na spletnem mestu ThingSpeak kliknite Aplikacije> Časovni nadzor.

4) Izberite Ponavljajoče se in izberite časovno frekvenco.

5) Kliknite Save TimeControl.

Zdaj se analiza MATLAB samodejno izvaja vsake pol ure in pošlje sprožilec storitvi IFTTT Webhooks, če je vrednost večja ali enaka 3. Nato bo telefonska aplikacija IFTTT uporabnika opozorila z obvestilom, kot je prikazano na začetku tega razdelka.

6. korak: Zaključek

S tem smo videli vse pomembne vidike, kako zgraditi lasten sistem za spremljanje podnebja. V tem projektu smo videli, kako je Simulink mogoče uporabiti -

  • programirajte Raspberry Pi za vnos podatkov iz Sense HAT. Označite - vizualizirajte podatke v Simulinku, ko se koda še vedno izvaja na Raspberry Pi.
  • izdelati vizualni prikaz sistema za nadzor podnebja v zaprtih prostorih. Označite - spremenite način delovanja vaše kode na strojni opremi iz Simulinka.
  • oblikujte algoritem sistema za nadzor podnebja v zaprtih prostorih.
  • zabeležite podatke iz Raspberry Pi v oblak in ustvarite opozorila iz zabeleženih podatkov.

Katere spremembe bi naredili s tem sistemom za nadzor podnebja v zaprtih prostorih? Prosimo, delite svoje predloge prek komentarjev.

Priporočena: