Sisukord:

Raspberry Pi juhitav toatemperatuuri jälgimine Gnuploti pildiväljundi ja e -posti hoiatusvõimalusega: 7 sammu
Raspberry Pi juhitav toatemperatuuri jälgimine Gnuploti pildiväljundi ja e -posti hoiatusvõimalusega: 7 sammu

Video: Raspberry Pi juhitav toatemperatuuri jälgimine Gnuploti pildiväljundi ja e -posti hoiatusvõimalusega: 7 sammu

Video: Raspberry Pi juhitav toatemperatuuri jälgimine Gnuploti pildiväljundi ja e -posti hoiatusvõimalusega: 7 sammu
Video: GATE OPENING DRIVE from a conventional tube and a wiper motor! 2024, Juuni
Anonim
Raspberry Pi kontrollitud ruumitemperatuuri jälgimine Gnuploti pildiväljundi ja e -posti hoiatusvõimalusega
Raspberry Pi kontrollitud ruumitemperatuuri jälgimine Gnuploti pildiväljundi ja e -posti hoiatusvõimalusega

Seal, kus ma töötan, on väga oluline ruum, kus on palju arvuteid. Selle ruumi toimimise optimeerimiseks peab selle ruumi ümbritsev temperatuur olema väga jahe. Mul paluti välja töötada seiresüsteem, mis suudab saata mõnele inimesele teatavat hoiatust, mis teavitab neid, et selles toas on midagi valesti. Selle ehituse riistvara kasutasin Raspberry pi ja USB temperatuuri ja niiskuse andur. Jälgimiseks kasutasin Gnuplot'i, et joonistada kolm temperatuurigraafikut ja luua nendest graafikutest pilt. Seejärel lõin spetsiaalse HTML -lehe, mida hostitakse Raspberry pi -s, nii et praeguseid tingimusi, neid gnuploti väljundpilte, saab jälgida meie võrgu veebilehelt. Hoiatuseks valisin Gmaili. Olin leidnud ajakirja Linux User mõnest näidiskoodist. (Loomulikult võite kasutada mis tahes e -posti serverit, kui teate vajalikke pordiülesandeid.) Selleks lõin nende hoiatuste jaoks spetsiaalse Gmaili e -posti konto. Samuti lisan lisafunktsioonina, kui hoiatus on käivitatud, lisan e -kirjale ühe graafiku, et e -kirja saaja saaks aimu sellest, kui järsult oli see hoiatus põhjustatud.

Samm: riistvara seadistamine

Riistvara häälestus
Riistvara häälestus

Riistvara seadistamiseks pole palju vaja. Raspberry pi töötab Raspianiga ja USB -temperatuuriandur ühendatakse lihtsalt ühega USB -portidest. Selle anduri energiatarve on minimaalne ja selle tulemusena toitsin selle otse Raspberry pi -st. USB -toitega seadmete puhul, mille energiatarve on pisut suurem, soovitaksin neid siiski toita USB -jaoturi kaudu, mitte otse Raspberry pi USB -pordist. Kui temperatuuriandur on sisse lülitatud, pakub see jadastringi, mis sisaldab temperatuuri ja praeguste tingimuste niiskusnäidud. temperatuur = 20,9 ° C niiskus = 62,7% kastepunkt = 13,0 ° CA python skript parsib selle stringi ning salvestab temperatuuri ja niiskuse väärtused kolme tekstifaili iga viie minuti järel; iga päev, 24 tundi ja 48 tundi tekstifailid (erinevusi käsitletakse hiljem HTML -i jaotises). Nendest failidest genereerib Gnuplot iga faili andmekogumi graafikud ja seejärel pildid. Enne kui püütoni skripti arutan, räägin ma Raspberry pi ettevalmistamisest. Kuna jälgimine toimub võrgus, tuleb installida veebiserver. Olen proovinud mõnda neist oma aja jooksul Raspberry pi peal, kuid kuigi see on natuke suur, eelistan ma Apache'i. Apache oma Raspberry pi-le installimiseks sisestage lihtsalt: sudo apt-get install apache2 See annab teile enne installimist viiba, vajutage jah ja vajutage "y" ning Apache installitakse sõltuvalt teie vaarika piist mõne minuti pärast. Kui olete lõpetanud, peate installima kaks pythoni pistikprogrammi: python-serial ja python-gnuplot. (Kuigi olen aru saanud, et hiljutistel Raspiani versioonidel on python-jadapistikprogrammi standard, kuid see on lihtsalt ohutu.) Sisestatavate tüüpide installimiseks: sudo apt-get install python-serial python-gnuplot -paigaldatakse. Ja sellega on riistvara seadistamine lõppenud.

Samm 2: Tarkvara seadistamine - e -posti seadistamine ja adressaadid

Enne kui me tarkvaraga liiga kaugele jõuame, oleks õige aeg luua Gmaili konto, kust e -posti märguanded saata. (See näide kasutab GMaili, kuid kui me teame smtp -pordi seadeid, saab kasutada mis tahes e -posti serverit.) Pythoni kood on üsna lihtne, kuid vajalik import on kriitiline. Ilma nendeta ei töötaks miski. Ajast importimine *impordi aeg import seeriaimport smtplib import Gnuploti import os import sysLõpuks meililist. Loomulikult peame lisama e -kirja saajad. Iga e -posti aadress salvestatakse muutujaga.

Samm 3: Tarkvara seadistamine - jadaseadistus ja parsimine

Järgmisena vaatame jadaseadistust. See on lihtsalt parameetrite seadistamine, mis vastavad anduri jadaväljundile. Andur väljastab jadastringi kiirusel 9600 8 N 1, mis on standardvorming. Pärast stringi vastuvõtmist on selle stringi parsimiseks pythonis mitu võimalust ja tõenäoliselt ka usaldusväärsem. Minu viis on otsida jadastringist "temp" märke. Kui see on leitud, tuleb lihtsalt järgmised 46 jadamärki stringiks lugeda. Kogutud stringi saab nüüd käsitleda nagu massiivi elemente. Soovitud andmed sõelutakse stringist välja ja salvestatakse kolme faili koos vastava ajatempliga.timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

Samm 4: Tarkvara seadistamine - Gnuplot

Tarkvara seadistamine - Gnuplot
Tarkvara seadistamine - Gnuplot
Tarkvara seadistamine - Gnuplot
Tarkvara seadistamine - Gnuplot
Tarkvara seadistamine - Gnuplot
Tarkvara seadistamine - Gnuplot

Gnuplot on käsurea graafiline tööriist. Kui olete põhitõdesid välja mõelnud, võib see olla andmekogumite graafilise kuvamise jaoks üsna võimas tööriist. Gnuplot saab joonistada otse vormindatud tekstifailist ja meil on nii juhtunud, et meil on see juba eelmises parsimise etapis. Kui oleme gnuplotile märkinud, kus failis andmed asuvad, saame soovitud väärtused joonistada. Kasutan aega X -teljel ja meie temperatuuri Y -teljel. Minu kogemuse põhjal on aja joonistamine kõige raskem, kuna peate gnuplotis ajavormingu leidma, et see vastaks tekstifaili vormingule. Pärast seda, kui kõik graafikuvõimalused on lõpule viidud ja vastavalt teie eelistustele, saab Gnuplot sellest graafikust pildi luua. Seda pilti kasutame hiljem oma veebilehel. Otsustasin kasutada-p.webp

Samm 5: Tarkvara seadistamine - läve seadmine ja meilimine

Hoiatuste läve tuleb seadistamisel teha katse -eksituse meetodil. ruumis, kus süsteemid asuvad, pole aknaid, nii et kui kliimaseade peatub, võib see väga kiiresti väga kuumaks minna. Esialgu vaatasin andmekogumit paar päeva ja vaatasin temperatuurimuutusi, enne kui otsustasin hoiatusväärtuse 30 kraadi C. See on pütooni skripti muutujaks seatud. See ei pruugi tunduda väga kõrge, kuid kui hoiatus on käivitatud, soovite siiski anda endale aega probleemi lahendamiseks, enne kui see kriitiliseks muutub.

Lihtsuse huvides saadan meililoendisse üksikuid kirju. Kuna meililist on lühike, ei viitsinud ma kunagi saata üht e -kirja mitmele adressaadile. Siinkohal tuleb märkida ühte asja: kuna ma käitan seda skripti cron -tööna iga 5 minuti järel, ei taha te pärast läve käivitamist iga 5 minuti tagant e -kirju saata. Selle vältimiseks kirjutan hoiatusteate kuupäeva ja kellaaja faili ja kontrollin seda faili enne e -kirjade saatmist, et näha, kas süsteem on juba hoiatusolekus. Kui see on hoiatusolekus, saadab see e -kirja uuesti iga tund pärast esimest päästikut seni, kuni süsteem on sisse lülitatud ja hoiatusolekus. Nii ei blokeeri Gmail teie meilidele lühikese aja jooksul liiga palju e -kirju.

Samm 6: Tarkvara seadistamine - HTML

Kogu süsteemi jälgimine toimub veebilehe kaudu ja selleks on vaja väga lihtsat html -skripti. Gnuploti loodud pilte kasutan lihtsalt pildi samu mõõtmeid tagasi. Ma usun, et läbisin nende piltide jaoks umbes 3 suurust, mis sobisid minu ekraanile kõige paremini. Enne html -skripti loomist loome selle jaoks kausta. Vaikimisi asub veebimajutuse kaust aadressil/var/www/. Kuigi selle Raspberry pi ainus eesmärk on seda ruumi jälgida ja meiliteateid väljastada, lõin hea majapidamise jaoks kausta/var/www/eraldi kausta. Kuna see kaust kuulub juurkasutajale, peate kausta loomiseks kasutama sudo. sudo mkdir/var/www/Temperature See tee on salvestatud pythoni skripti muutuja sisse. Isegi kui hostimise asukohta tuleb muuta või skripti teise süsteemi jaoks muuta, saab seda sellest asukohast lihtsalt muuta. Nüüd saame sellesse kausta luua oma html -skripti, pidades meeles, et kasutate sudo kõigi teie käskude ees tahaks siin täita. Soovitan teil html -skriptile nimeks panna "index.html", sest see lihtsustaks seda lehte otsides. Oluline on veenduda, et pildi suurus on sama mis Gnuploti pildisuurus. Selle lehe vaatamiseks, peate lihtsalt sisestama Raspberry Pi IP -aadressi, millele järgneb /temperatuur (või mis iganes te oma kausta nimetasite). Mul on töös mitu süsteemi, mis jälgivad erinevaid asju ja nad kõik toodavad oma tulemustest mõne graafilise väljundi. Seega lõin lehe, millel on lingid kõikidele nendele lehtedele, nii et ma ei pea muretsema aadressi sisestamise pärast iga kord, kui soovin neile lehtedele juurde pääseda.

Samm: ma olen elus…

Olen seda arvutitoa temperatuuri jälgimiseks kasutanud, kuid see oleks võinud olla üsna palju andmeid mis tahes allikast. Kui selle saab salvestada tekstifaili ja teate, et selle vorming on Gnuplotil võimalik ülejäänu teha. Üks asi, mille ma hiljuti sellesse projekti lisasin, on saata "südamelöökide" tüüpi meil. See on kuu esimesel päeval kell 9.00. Mul on skript, mis töötab ja saadab meililistile meili, et anda neile teada, et süsteem töötab nii nagu peab ja kõik on hästi.

Kasutades cronjobi kirjet järgmiselt:

Soovitan: