Kazalo:

Raspberry Pi nadzorovano spremljanje sobne temperature z izhodom slike Gnuplot in zmožnostjo opozarjanja po e -pošti: 7 korakov
Raspberry Pi nadzorovano spremljanje sobne temperature z izhodom slike Gnuplot in zmožnostjo opozarjanja po e -pošti: 7 korakov

Video: Raspberry Pi nadzorovano spremljanje sobne temperature z izhodom slike Gnuplot in zmožnostjo opozarjanja po e -pošti: 7 korakov

Video: Raspberry Pi nadzorovano spremljanje sobne temperature z izhodom slike Gnuplot in zmožnostjo opozarjanja po e -pošti: 7 korakov
Video: Высокая плотность 2022 2024, Junij
Anonim
Raspberry Pi nadzorovano spremljanje sobne temperature z izhodom slike Gnuplot in možnostjo opozarjanja po e -pošti
Raspberry Pi nadzorovano spremljanje sobne temperature z izhodom slike Gnuplot in možnostjo opozarjanja po e -pošti

Kjer delam, je zelo pomembna soba, v kateri je veliko računalnikov. Temperatura okolice v tem prostoru mora biti zelo hladna, da se optimizira delovanje teh sistemov. Prosili so me, naj pripravim sistem za spremljanje, ki lahko pošlje neko obliko opozorila nekaj ljudem, ki jih obvestijo, da je s klimatsko napravo v tej sobi nekaj narobe. ter senzor temperature in vlažnosti USB. Za spremljanje sem z Gnuplotom narisal tri temperaturne grafe in ustvaril podobo teh grafov. Nato sem ustvaril namensko stran HTML, ki bo gostovala na Raspberry pi, tako da je trenutne razmere, te izhodne slike gnuplot, mogoče spremljati s spletne strani v našem omrežju. Za opozarjanje sem se odločil za uporabo Gmaila. Nekaj primerov kode sem našel v reviji Linux User. (Seveda lahko uporabite kateri koli poštni strežnik, ko poznate potrebne naloge vrat.) Za to sem ustvaril namenski e -poštni račun Gmail za ta opozorila. Kot dodatno funkcijo, ko je sproženo opozorilo, e -poštnemu sporočilu priložim en graf, tako da lahko oseba, ki prejme e -poštno sporočilo, predstavi, kako močno je povečanje povzročilo opozorilo.

1. korak: Nastavitev strojne opreme

Nastavitev strojne opreme
Nastavitev strojne opreme

Za nastavitev strojne opreme ni veliko. Raspberry pi poganja Raspian in temperaturni senzor USB se preprosto priključi neposredno v eno od vrat USB. Poraba energije tega senzorja je minimalna, zato sem ga napajal neposredno iz Raspberry pi. Pri napravah z USB pogonom z malo večjo porabo energije pa priporočam, da jih napajate prek zvezdišča USB z napajanjem in ne neposredno iz vrat USB Raspberry pi. Ko je temperaturni senzor vklopljen, zagotavlja serijski niz, ki vsebuje temperaturo in odčitki vlažnosti trenutnih razmer. temperatura = 20,9 ° C vlažnost = 62,7% rosišča = 13,0 ° CA python skript razčlenjuje ta niz in shrani vrednosti temperature in vlažnosti v tri besedilne datoteke vsakih pet minut; dnevne, 24 -urne in 48 -urne besedilne datoteke (razlike bodo obravnavane kasneje v razdelku HTML). Iz teh datotek bo Gnuplot ustvaril grafe in nato slike podatkovnega niza v vsaki datoteki. Preden bom razpravljal o skriptu python, bom govoril o pripravi Raspberry pi. Ker naj bi spremljanje potekalo prek spleta, je treba namestiti spletni strežnik. Nekaj sem jih že poskusil na Raspberry piju, čeprav je nekoliko velik, imam raje Apache. Če želite namestiti Apache na svoj Raspberry pi, preprosto vtipkate: sudo apt-get install apache2 Pred namestitvijo se prikaže poziv, pritisnite "y" za da in in Apache bo nameščen nekaj minut, odvisno od vašega Raspberry pi. je končano, morate namestiti dva vtičnika python: python-serial in vtičnik python-gnuplot. (Čeprav sem spoznal, da ima nedavna zgradba Raspian standard vtičnika za serijski vmesnik python, vendar samo zato, da je varen.) Če želite namestiti tiste, ki jih vnesete: sudo apt-get install python-serial python-gnuplot Enkrat po potrditvi pozivov ti vtičniki -insi bodo nameščeni. S tem je nastavitev strojne opreme končana.

2. korak: Nastavitev programske opreme - nastavitev e -pošte in prejemniki

Ustvarite e -poštni naslovPreden se preveč oddaljimo od programske opreme, bi bil pravi čas, da ustvarite račun za Gmail, iz katerega pošiljate e -poštna opozorila. (Ta primer uporablja GMail, vendar lahko uporabimo kateri koli poštni strežnik, ko poznamo nastavitve vrat smtp) Koda Python je precej preprosta, vendar je potreben uvoz kritičen. Brez njih nič ne bi delovalo. Od časa uvoz *čas uvoza uvoz serijski uvoz smtplib uvoz Gnuplot uvoz ali uvoz sysNazadnje poštni seznam. Seveda moramo dodati prejemnike e -pošte. Vsak e -poštni naslov je shranjen v spremenljivki.

3. korak: Nastavitev programske opreme - Serijska nastavitev in razčlenjevanje

Nato si oglejmo serijsko nastavitev. Gre le za nastavitev parametrov, ki ustrezajo serijskemu izhodu senzorja. Senzor oddaja serijski niz pri 9600 8 N 1, ki je standardni format. Po prejemu niza obstaja več načinov razčlenitve tega niza v pythonu in verjetno bolj zanesljivo. To počnem tako, da iščem "temp" znake v zaporednem nizu. Ko je enkrat locirano, preprosto preberete naslednjih 46 zaporednih znakov v niz. Zbrani niz je zdaj mogoče nasloviti kot elemente v matriki. Želeni podatki se razčlenijo iz niza in shranijo v tri datoteke skupaj z ustreznim časovnim žigom.timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

4. korak: Namestitev programske opreme - Gnuplot

Namestitev programske opreme - Gnuplot
Namestitev programske opreme - Gnuplot
Namestitev programske opreme - Gnuplot
Namestitev programske opreme - Gnuplot
Namestitev programske opreme - Gnuplot
Namestitev programske opreme - Gnuplot

Gnuplot je grafično orodje ukazne vrstice. Ko ugotovite osnove, je lahko zelo zmogljivo orodje za grafični prikaz naborov podatkov. Gnuplot lahko nariše neposredno iz oblikovane besedilne datoteke in slučajno imamo eno iz koraka razčlenjevanja prej. Ko gnuplotu pokažemo, kje se v datoteki nahajajo podatki, lahko narišemo želene vrednosti. Uporabil bom čas na osi X in našo temperaturo na osi Y. Ustvarjanje časa po mojih izkušnjah je najtežje, saj morate obliko zapisa časa v gnuplot ujemati z obliko besedilne datoteke. Ko so vse možnosti grafikoniranja popolne in po vaših željah, lahko Gnuplot ustvari sliko tega grafa. To bo slika, ki jo bomo kasneje uporabili na svoji spletni strani. Odločil sem se, da bom uporabil sliko-p.webp

5. korak: Nastavitev programske opreme - nastavitev praga in pošiljanje po e -pošti

Prag za opozorilo je treba določiti s poskusi in napakami za vašo nastavitev. soba, v kateri so sistemi, nima oken, zato se lahko, ko se klimatska naprava ustavi, zelo hitro segreje. Sprva sem nekaj dni gledal niz podatkov in opazoval nihanja temperature, preden sem se odločil za opozorilno vrednost 30 stopinj C. To je nastavljeno kot spremenljivka v sistemu python scipt. To se morda ne zdi previsoko, a ko sprožite opozorilo, si še vedno želite dati čas, da težavo odpravite, preden postane kritična.

Zaradi poenostavitve pošiljam posamezna e -poštna sporočila na poštni seznam. Ker je poštni seznam kratek, se nikoli nisem trudil s pošiljanjem enega e -poštnega sporočila več prejemnikom. Tu je treba opozoriti, ker ta skript izvajam kot cron opravilo vsakih 5 minut, ne želite pošiljati e -poštnih sporočil vsakih 5 minut, ko je prag sprožen. Da bi se tega izognili, v datoteko zapišem datum in čas opozorila ter pred pošiljanjem e -poštnih sporočil preverim to datoteko, da vidim, ali je sistem že v opozorilnem stanju. Ko je v stanju opozorila, bo e -poštno sporočilo znova poslalo vsako uro po prvem sprožilu, dokler je sistem v stanju pripravljenosti. Tako Gmail ne prepreči pošiljanja vaše e -pošte v kratkem času.

6. korak: Namestitev programske opreme - HTML

Spremljanje celotnega sistema poteka prek spletne strani in za to je potreben zelo preprost html skript. Slike, ki jih je ustvaril Gnuplot, preprosto uporabim nazaj iste dimenzije slike. Verjamem, da sem za te slike prebral približno 3 velikosti, ki so se najbolj prilegale mojem zaslonu. Preden ustvarimo skript html, ustvarimo mapo zanj. Mapa za spletno gostovanje se privzeto nahaja na/var/www/. Čeprav je edini namen tega Raspberry pi spremljanje te sobe in izdajanje e -poštnih opozoril, sem za dobro vzdrževanje hiše ustvaril ločeno mapo v mapi/var/www/. Ker ta mapa pripada korenskemu uporabniku, morate za ustvarjanje mape uporabiti to mesto. sudo mkdir/var/www/temperatureV tem primeru sem kot ime mape uporabil temperaturo, vendar lahko tukaj uporabite katero koli ime, vendar ne pozabite, da bo to potrebno za vstop v naslovno vrstico za ogled te strani. Ta pot je shranjena v spremenljivki v skriptu python. Tudi če morate spremeniti lokacijo gostitelja ali spremeniti skript za drug sistem, ga lahko preprosto spremenite s te lokacije. Zdaj lahko v tej mapi ustvarimo naš skript html in se spomnimo uporabe sudo pred vsemi ukazi, ki jih želite izvršiti tukaj. Priporočam, da poimenujete html skript "index.html", saj bi to poenostavilo, ko poskušate najti to stran. Ključno je, da se prepričate, da je velikost slike enaka velikosti slike iz Gnuplota. Če si želite ogledati to stran, preprosto morate vnesti naslov IP Raspberry Pi, ki mu sledi /temperatura (ali karkoli ste poimenovali svojo mapo) Pri delu imam več sistemov, ki spremljajo različne stvari in vsi dajejo nekaj grafičnih rezultatov svojih rezultatov. Tako sem ustvaril stran, ki vsebuje povezave do vseh teh strani, zato mi ni treba skrbeti, da bom vnesel naslov vsakič, ko želim dostopati do teh strani.

Korak 7: Jaz sem živ …

To sem uporabil za spremljanje temperature v računalniški sobi, vendar bi to lahko bili precej podatki iz katerega koli vira. Ko ga lahko shranite v besedilno datoteko in veste, da je format, lahko Gnuplot naredi ostalo. Ena stvar, ki sem jo pred kratkim dodal temu projektu, je, da pošljem nekakšno e -poštno sporočilo "srčni utrip". To je prvega v mesecu ob 9. uri, ko se zažene skript, ki po e -pošti pošlje poštni seznam in jim sporoči, da sistem deluje, kot bi moral, in da je v sobi vse v redu.

Uporaba seznama cronjob kot:

Priporočena: