Sisukord:

Vaarika Pi-põhine sisekliima jälgimissüsteem: 6 sammu
Vaarika Pi-põhine sisekliima jälgimissüsteem: 6 sammu

Video: Vaarika Pi-põhine sisekliima jälgimissüsteem: 6 sammu

Video: Vaarika Pi-põhine sisekliima jälgimissüsteem: 6 sammu
Video: Raspberry Pi Pico PLC ehitamine || OpenPLC redaktor 2024, November
Anonim
Vaarika Pi-põhine sisekliima jälgimissüsteem
Vaarika Pi-põhine sisekliima jälgimissüsteem

Lugege seda ajaveebi ja looge oma süsteem, et saaksite märguandeid, kui teie tuba on liiga kuiv või niiske.

Mis on sisekliima jälgimissüsteem ja miks me seda vajame?

Sisekliima jälgimissüsteemid pakuvad kiiret pilku olulisele kliimaga seotud statistikale, nagu temperatuur ja suhteline niiskus. See statistika nägemine ja telefonis märguannete saamine, kui ruum on liiga niiske või kuiv, võib olla väga kasulik. Hoiatusteate abil saate teha kiireid vajalikke toiminguid ruumis maksimaalse mugavuse saavutamiseks, lülitades kütteseadme sisse või avades aknad. Selles projektis näeme, kuidas Simulinki kasutada:

1) tuua Sense HAT -ist Raspberry Pi -sse kliimastatistika (temperatuur, suhteline niiskus ja rõhk)

2) kuvab mõõdetud andmed Sense HAT 8x8 LED -maatriksil

3) kujundage algoritm, et otsustada, kas siseruumide niiskus on „hea”, „halb” või „kole”.

4) logige andmed pilve ja saatke hoiatus, kui andmed on liigitatud kategooriasse „Inetu” (liiga niiske või kuiv).

Tarvikud

Vaarika Pi 3 Mudel B

Vaarika Pi Sense MÜTS

Samm: vajalik tarkvara

Vajalik tarkvara
Vajalik tarkvara

Oma sisekliima jälgimissüsteemi loomiseks vajate MATLABi, Simulinki ja lisandmooduleid.

Avage administraatori juurdepääsuga MATLAB (paremklõpsake ikooni MATLAB ja valige Käivita administraatorina). Valige MATLAB tööriistaribalt lisandmoodulid ja klõpsake nuppu Hangi lisandmooduleid.

Otsige siit allpool loetletud nimedega tugipakette ja lisage need.

a. MATLABi tugipakett Raspberry Pi riistvarale: hankige sisendid ja saatke väljundid Raspberry Pi tahvlitele ja ühendatud seadmetele

b. Simulinki tugipakett Raspberry Pi riistvara jaoks: käivitage Simulinki mudelid Raspberry Pi tahvlitel

c. RPi_Indoor_Climate_Monitoring_System: Selle projekti jaoks vajalike näidismudelite olemasolu

Märkus - installi ajal järgige ekraanil kuvatavaid juhiseid, et seadistada oma Pi töötama koos MATLABi ja Simulinkiga.

Samm: viige anduriandmed Simulinki abil Raspberry Pi -sse

Tooge anduri andmed Raspberry Pi -le Simulinki abil
Tooge anduri andmed Raspberry Pi -le Simulinki abil

Neile, kes ei tunne Simulinki, on see graafiline programmeerimiskeskkond, mida kasutatakse dünaamiliste süsteemide modelleerimiseks ja simuleerimiseks. Kui olete oma algoritmi Simulinkis kavandanud, saate koodi automaatselt genereerida ja selle Raspberry Pi või muule riistvarale manustada.

Esimese näidismudeli avamiseks tippige MATLAB käsuaknasse järgmine. Kasutame seda mudelit temperatuuri, rõhu ja suhtelise niiskuse andmete sisestamiseks Raspberry Pi -sse.

> rpiSenseHatBringSensorData

Plokid LPS25H Rõhuandur ja HTS221 Niiskusandur on pärit Sense HAT raamatukogust Simulinki tugipaketi all Raspberry Pi riistvararaamatukogude jaoks.

Ulatusplokid pärinevad Simulinki raamatukogude all asuvast raamatukogust Valamud. Teie mudeli õige konfigureerimise tagamiseks klõpsake Simulinki mudeli hammasrattaikoonil. Minge jaotisse Riistvara juurutamine> Riistvaraplaadi seaded> Riistvararessursside sihtimine.

Märkus - te ei pea seadistama, kui järgisite seadistusjuhiseid Raspberry Pi jaoks mõeldud Simulinki tugipaketi installimisel. Seadme aadress täidetakse automaatselt teie Pi aadressiga.

Veenduge, et seadme aadress vastaks sellele IP -aadressile, mida kuulete, kui Pi käivitub. Seadme aadressi kuulamiseks peate võib-olla oma Pi uuesti pistikupesaga ühendatud kõrvaklappidega toite saama.

Klõpsake nuppu OK ja vajutage nuppu Käivita, nagu allpool näidatud. Veenduge, et teie Pi oleks USB-kaabli abil arvutiga füüsiliselt ühendatud või oleks teie arvutiga samas WiFi-võrgus.

Kui vajutate välimisrežiimis nuppu Käivita, genereerib Simulink automaatselt teie mudeliga samaväärse C -koodi ja laadib faili Raspberry Pi alla. Mõlemad ulatuseplokid on konfigureeritud avama, kui mudel hakkab käivitama. Kui Simulink on koodi Raspberry Pi -le juurutamise lõpetanud, näete ulatuse rõhu, temperatuuri ja suhtelise niiskuse andmeid, nagu allpool näidatud.

Märkus. Kood töötab Raspberry Pi -l ja te vaatate tegelikke signaale Simulinki ulatuseplokkide kaudu, täpselt nagu siis, kui teil oleks riistvaraga ühendatud ostsilloskoop. Kahe anduri temperatuuri väärtus on üksteisest veidi eemal. Valige julgelt see, mis peegeldab teie ruumi tegelikku temperatuuri täpsemalt, ja kasutage seda järgmistes osades. Kõigis Sense HAT -iga tehtud testides olid HTS221 niiskusanduri temperatuuriväärtused lähemal ruumi tegelikule temperatuurile. Sellega oleme näinud põhitõdesid, kuidas sensori andmeid Sense HAT -ist Raspberry Pi -sse tuua.

3. samm: kuvage anduri andmed 8x8 LED -maatriksil

Kuva anduri andmed 8x8 LED -maatriksil
Kuva anduri andmed 8x8 LED -maatriksil
Kuva anduri andmed 8x8 LED -maatriksil
Kuva anduri andmed 8x8 LED -maatriksil

Selles jaotises näeme, kuidas selle projekti visuaalse kuvamise osa lisati viimasele mudelile. Selles jaotises kasutatakse Sense HAT elemente: niiskuseandurit (suhtelise niiskuse ja temperatuuri saamiseks), rõhuandurit, LED -maatriksit ja juhtkangi. Juhtkangi abil saab valida, millist andurit kuvada.

Järgmise näidismudeli avamiseks tippige MATLAB käsuaknasse järgmine.

> rpiSenseHatDisplay

Juhtkangi plokk on pärit Sense HAT raamatukogust. See aitab meil juhthoova andmed Raspberry Pi -sse tuua, nagu rõhu ja niiskuse anduri plokid eelmises näites. Praegu kasutame plokki Test Comfort, et kuvada LED -maatriksil „hea” (kui ploki väärtus on 1). Kui ploki väärtus on 2, kuvatakse see „halb” või „kole”, kui väärtus on kas 3 või 4. Järgmises osas näeme tegelikku algoritmi, mis otsustab, kas siseruumide niiskus on hea, halb või kole. Uurime valikuplokki, topeltklõpsates sellel. Funktsiooniplokke MATLAB kasutatakse MATLAB -koodi integreerimiseks teie Simulinki mudelisse. Sel juhul toome sisse allpool toodud SelectorFcn.

funktsioon [väärtus, olek] = SelectorFcn (JoyStickIn, rõhk, niiskus, temperatuur, ihval)

püsiv JoyStickCount

kui tühi (JoyStickCount)

JoyStickCount = 1;

lõpp

kui JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

kui JoyStickCount == 6

JoyStickCount = 1;

lõpp

lõpp

lülitage JoyStickCount

korpus 1 % Ekraani temperatuur C -s

väärtus = temp;

Olek = 1;

korpus 2 % Kuvarõhk atm

väärtus = rõhk/1013,25;

Olek = 2;

korpus 3 % Kuva suhteline niiskus %

väärtus = niiskus;

Olek = 3;

korpus 4 % Kuva temperatuur F -s

väärtus = temp*(9/5) +32;

Olek = 4;

korpus 5 % Kuva hea/halb/kole

väärtus = ihval;

Olek = 5;

muidu % Ära kuva/Kuva 0

väärtus = 0;

Olek = 6;

lõpp

Lülitusjuhtumite avaldusi kasutatakse tavaliselt valiku kontrollimehhanismina. Meie puhul soovime, et juhtkangi sisend oleks valikukontroll ja valiksime järgmised andmed, mida kuvada iga kord, kui juhtnuppu vajutatakse. Selleks seadistame if -tsükli, mis suurendab JoyStickCount muutujat iga nupuvajutusega (JoyStickIn väärtus on 1, kui vajutate nuppu). Samas tsüklis lisasime veel ühe tingimuse, mis tagastab muutuja väärtuseks 1. Selle abil valime, millist väärtust LED -maatriksil kuvatakse. Juhtum 1 on vaikimisi, kuna me määratleme JoyStickCount'i alustamiseks 1 -st ja see tähendab, et LED -maatriks kuvab temperatuuri Celsiuse järgi. Kerimisandmete plokk kasutab olekut muutuja, et mõista, millist anduri väärtust parajasti kuvatakse ja millist ühikut kuvada. Nüüd, kui me teame, kuidas kuvamiseks õiget andurit valida, vaatame, kuidas tegelik kuva töötab.

Märkide ja numbrite kuvamine

Sense HAT LED maatriksil kuvamiseks lõime 8x8 maatriksi:

1) kõik numbrid (0–9)

2) kõik ühikud (° C, A, % ja ° F)

3) koma

4) tähestik sõnadest hea, halb ja kole.

Neid 8x8 maatriksit kasutati 8x8 RGB LED -maatriksi ploki sisendina. See plokk süttib LED -id, mis vastavad nendele maatriksi elementidele, mille väärtus on 1, nagu allpool näidatud.

Teksti kerimine

Meie mudeli kerimisandmete plokk kerib stringe, mis võivad olla kuni 6 tähemärki pikad. Väärtus 6 valiti, kuna see on pikim string, mille me selles projektis väljastame, näiteks 23,8 ° C või 99,1 ° F. Pange tähele, siin loetakse ° C üheks märgiks. Sama ideed saab laiendada ka teise pikkusega kerimisstringidele.

Siin on GIF, mis näitab, kuidas see toimib -

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

8x8 maatriksil 6 tähemärgi stringi kuvamiseks vajame kokku 8x48 suurust pilti. Maksimaalselt 4 tähemärgi pikkuse stringi kuvamiseks peame looma maatriksi 8x32. Nüüd näeme kogu tegevusetust, vajutades nuppu Käivita. LED -maatriksi vaikekuva on temperatuuri väärtus ° C. Reguleerimisala plokk näitab olekut ja väärtust valijaplokist. Vajutage Sense HAT -i juhtkangi nuppu ja hoidke seda sekundit all, et veenduda, et väärtus muutub järgmise anduri väljundiks, ja korrake seda protsessi, kuni see saavutab oleku väärtuse 5. Et jälgida algoritmi, mis lülitub sisse kõik siseruumide niiskuse liigitamise juhud, muutke Test Comfort ploki väärtuseks suvalist numbrit vahemikus 1 kuni 4. Pange tähele, kuidas ploki väärtuse muutmine Simulinki mudelis muudab koheselt koodi käitumist riistvaral. See võib olla kasulik olukordades, kus soovitakse muuta koodi käitumist eemalt. Sellega oleme näinud kliimaseire süsteemi visualiseerimise põhielemente. Järgmises osas õpime, kuidas täiendada meie sisekliima seiresüsteemi.

Samm: kujundage Simulinkis algoritm, et otsustada, kas siseruumide niiskus on „hea”, „halb” või „kole”

Kujundage Simulinkis algoritm, et otsustada, kas siseruumide niiskus on „hea”, „halb” või „kole”
Kujundage Simulinkis algoritm, et otsustada, kas siseruumide niiskus on „hea”, „halb” või „kole”

Selleks, et mõista, kas teie ruum on liiga niiske/kuiv või et teada saada, millist siseruumide niiskustaset peetakse mugavaks, on mitmeid meetodeid. Selle artikli abil lõime pindalakõvera siseruumide suhtelise niiskuse ja välistemperatuuri ühendamiseks, nagu ülal näidatud.

Mis tahes suhtelise niiskuse väärtus selles piirkonnas tähendab, et teie tuba on mugavas keskkonnas. Näiteks kui välistemperatuur on -30 ° F, on vastuvõetav mis tahes suhtelise niiskuse väärtus alla 15%. Samuti, kui välistemperatuur on 60 ° F, on vastuvõetav alla 50% suhteline niiskus. Siseruumide niiskuse liigitamiseks maksimaalseks mugavuseks (hea), keskmise mugavuse (halb) või liiga niiske/kuiva (kole) on vaja välistemperatuuri ja suhtelist õhuniiskust. Oleme näinud, kuidas Raspberry Pi -sse suhtelist niiskust sisse viia. Niisiis, keskendume välistemperatuuri toomisele. Mudeli avamiseks tippige MATLAB käsuaknasse järgmine:

> rpiOutdoorWeatherData

WeatherData plokki kasutatakse teie linna välistemperatuuri (K) sisestamiseks, kasutades https://openweathermap.org/. Selle ploki konfigureerimiseks vajate veebisaidilt API -võtit. Pärast sellel veebisaidil tasuta konto loomist minge oma konto lehele. Allpool kuvatud vahekaart API võtmed annab teile võtme.

Plokk WeatherData vajab teie linna nime sisestamist kindlas vormingus. Külastage seda lehte ja sisestage oma linna nimi, seejärel koma sümbol, millele järgneb 2 tähte riigi tähistamiseks. Näited - Natick, USA ja Chennai, IN. Kui otsing annab teie linnale tulemuse, kasutage seda plokis WeatherData selles vormingus. Kui teie linn pole saadaval, kasutage naaberlinna, mille ilmastikutingimused on teile lähemal. Nüüd topeltklõpsake plokki WeatherData ja sisestage veebisaidilt oma linna nimi ja API -võti.

Vajutage sellel Simulinki mudelil nuppu Käivita, et kontrollida, kas plokk võib tuua teie linna temperatuuri Raspberry Pi -sse. Nüüd vaatame algoritmi, mis otsustab, kas siseruumide niiskus on hea, halb või kole. Järgmise näite avamiseks tippige MATLAB käsuaknasse järgmine:

> rpisenseHatIHval

Võib -olla olete märganud, et eelmise mudeli Test Comfort plokk on puudu ja uus plokk nimega FindRoom Comfort annab valiku plokile ihval. Avamiseks ja uurimiseks topeltklõpsake seda plokki.

Välistemperatuuri toomiseks kasutame WeatherData plokki. Niiskuse piiride alamsüsteem kujutab suhtelise niiskuse ja välistemperatuuri diagrammi, mida nägime ülal. Sõltuvalt välistemperatuurist väljastab see maksimaalse niiskuse piirväärtuse. Avame funktsiooniploki DecideIH MATLAB, topeltklõpsates sellel.

Kui suhtelise niiskuse väärtus ületab maksimaalse niiskuse piiri, on märk andmete lahutamise viisi põhjal positiivne, mis tähendab, et ruum on liiga niiske. Selle stsenaariumi jaoks anname 3 (kole). Stringide asemel numbrite kasutamise põhjus on see, et seda on lihtne graafikutel kuvada ja sealt hoiatusi luua. Funktsiooni MATLAB ülejäänud klassifikatsioonid põhinevad suvalistel kriteeriumidel, mille me välja pakkusime. Kui erinevus on väiksem kui 10, liigitatakse see maksimaalseks mugavuseks ja kui see on alla 20, on see keskmine mugavus ja üle selle liiga kuiv. Kasutage seda mudelit julgelt ja kontrollige oma toa mugavust.

Samm: logige sisekliima andmed ja kategoriseeritud andmed pilve sisse

Logige sisekliima andmeid ja kategoriseeritud andmeid pilve
Logige sisekliima andmeid ja kategoriseeritud andmeid pilve

Selles järgmises jaotises näeme, kuidas andmeid pilve logida. Selle näite avamiseks tippige MATLAB käsuaknasse järgmine.

> rpiSenseHatLogData

Selles mudelis on eelmise näidismudeli kuvaosa sihipäraselt eemaldatud, kuna me ei vaja, et jälgimissüsteem näitaks statistikat andmete logimise ja hoiatuste saatmise ajal. Me kasutame andmete logimise aspekti ThingSpeak, tasuta avatud lähtekoodiga asjade Interneti platvormi, mis sisaldab MATLAB analüütikat. Valisime ThingSpeaki, kuna on olemas otsesed viisid Raspberry Pi ja muude odavate riistvaraplaatide programmeerimiseks, et Simulinki abil ThingSpeakisse andmeid saata. ThingSpeak Write plokk on pärit Raspberry Pi riistvara Simulinki tugipaketist ja seda saab seadistada ThingSpeak'i kanali Write API võtme abil. Üksikasjalikud juhised kanali loomise kohta on toodud allpool. Andmete pidevaks pilve logimiseks soovite, et teie Pi töötaks Simulinkist sõltumatult. Selleks võite oma Simulinki mudelis vajutada nuppu „Juuruta riistvarasse”.

Looge oma ThingSpeak kanal

Need, kellel pole kontot, saavad registreeruda ThingSpeaki veebisaidil. Kui teil on MathWorksi konto, on teil automaatselt ThingSpeaki konto.

  • Kui olete sisse loginud, saate kanali luua menüüst Kanalid> Minu kanalid ja klõpsates valikul Uus kanal.
  • Vaja on ainult kanali nime ja väljade nimesid, mida logite, nagu allpool näidatud.
  • Valik Kuva kanali asukoht vajab sisendiks teie linna laius- ja pikkuskraade ning see võib näidata asukohta kanali sees kaardil. (Siin kasutatavad näidisväärtused on Natick, MA)
  • Seejärel vajutage oma kanali loomise lõpetamiseks nuppu Salvesta kanal.

4a. Hoiatus, kui andmed on liigitatud koledaks

Sisekliima jälgimissüsteemi lõpuleviimiseks peame vaatama, kuidas saada pilveandmetel põhinevaid hoiatusi. See on kriitiline, sest ilma selleta ei saa te teha vajalikke toiminguid ruumi mugavuse taseme muutmiseks. Selles jaotises näeme, kuidas saada telefonile märguanne, kui pilveandmed näitavad, et ruum on liiga niiske või kuiv. Selle saavutame kahe teenuse abil: IFTTT Webhooks ja ThingSpeak TimeControl. IFTTT (tähendab kui see, siis see) on võrguteenus, mis suudab sündmusi käsitleda ja sündmuste põhjal toiminguid käivitada.

IFTTT veebihaakide seadistamise sammud

Märkus. Parimate tulemuste saamiseks proovige neid arvutis.

1) Looge konto saidil ifttt.com (kui teil seda pole) ja looge Minu rakenduste lehelt uus aplett.

2) Klõpsake käivitusteenuse valimiseks sinist nuppu "see".

3) Otsige ja valige teenusena Webhooks.

4) Valige Saada veebipäring ja sisestage sündmuse nimi.

5) Valige Loo päästik.

6) Valige järgmisel lehel "see" ja otsige märguandeid.

7) Valige IFTTT rakendusest märguande saatmine.

8) Sisestage sündmuse nimi, mille lõite IFTTT 2. etapis, ja valige Loo toiming.

9) Jätkake, kuni jõuate viimase sammuni, vaadake üle ja vajutage nuppu Lõpeta.

10) Minge aadressile https://ifttt.com/maker_webhooks ja klõpsake lehe ülaosas nuppu Seaded.

11) Minge jaotisse Kontoinfo URL.

12) Sisestage oma sündmuse nimi siia ja klõpsake nuppu Testi.

13) Kopeerige URL viimasel real edaspidiseks kasutamiseks (koos võtmega).

ThingSpeak TimeControli seadistamise sammud

1) Valige Rakendused> MATLAB -analüüs

2) Klõpsake järgmisel lehel nuppu Uus ja valige IFTTT -st Käivita meil ja klõpsake nuppu Loo.

Mallikoodi olulised osad on järgmised:

Kanali ID - sisestage oma ThingSpeak kanal, millel on teave siseruumide niiskuse väärtuse kohta.

IFTTTURL - sisestage eelmisest jaotisest kopeeritud URL. Samm 13.

readAPIKey - sisestage ThingSpeak Channel'i klahv. Jaotis Action - see, mis toimib viimase väärtuse alusel. Muutke see hoiatuste käivitamiseks järgmiseks.

3) Klõpsake ThingSpeaki veebisaidil Rakendused> TimeControl.

4) Valige Korduv ja aja sagedus.

5) Klõpsake Save TimeControl.

Nüüd töötab MATLAB analüüs automaatselt iga poole tunni tagant ja saadab päästiku IFTTT Webhooks teenusele, kui väärtus on suurem või võrdne 3. Seejärel teavitab IFTTT telefonirakendus kasutajat teatisega, nagu on näidatud selle jaotise alguses.

6. samm: järeldus

Sellega oleme näinud kõiki olulisi aspekte, kuidas oma kliimaseiresüsteemi üles ehitada. Selles projektis nägime, kuidas Simulinki saab kasutada -

  • programmeerige Raspberry Pi, et tuua sisse Sense HATi andmed. Tõstke esile - visualiseerige Simulinki andmeid, kuna kood töötab endiselt Raspberry Pi -l.
  • luua sisekliima jälgimissüsteemi visuaalne kuva. Esiletõstmine - muutke koodi käitumist Simulinki riistvaral.
  • kujundage sisekliima seiresüsteemi algoritm.
  • logige Raspberry Pi andmed pilve ja looge logitud andmetest hoiatused.

Milliseid muudatusi te teeksite sellesse sisekliima seiresüsteemi? Palun jagage oma ettepanekuid kommentaaride kaudu.

Soovitan: