Përmbajtje:

Monitorimi i temperaturës së dhomës së kontrolluar me Raspberry Pi me dalje të imazhit Gnuplot dhe aftësi paralajmërimi me email: 7 hapa
Monitorimi i temperaturës së dhomës së kontrolluar me Raspberry Pi me dalje të imazhit Gnuplot dhe aftësi paralajmërimi me email: 7 hapa

Video: Monitorimi i temperaturës së dhomës së kontrolluar me Raspberry Pi me dalje të imazhit Gnuplot dhe aftësi paralajmërimi me email: 7 hapa

Video: Monitorimi i temperaturës së dhomës së kontrolluar me Raspberry Pi me dalje të imazhit Gnuplot dhe aftësi paralajmërimi me email: 7 hapa
Video: The Choice is Ours (2016) Official Full Version 2024, Nëntor
Anonim
Monitorimi i temperaturës së dhomës së kontrolluar me Raspberry Pi me dalje të imazhit Gnuplot dhe aftësi paralajmërimi me email
Monitorimi i temperaturës së dhomës së kontrolluar me Raspberry Pi me dalje të imazhit Gnuplot dhe aftësi paralajmërimi me email

Aty ku punoj, ka një dhomë shumë të rëndësishme e cila përmban shumë kompjuterë. Temperatura e ambientit të kësaj dhome duhet të jetë shumë e ftohtë për të optimizuar performancën e këtyre sistemeve. Më kërkuan të dal me një sistem monitorimi i cili ka aftësinë për të dërguar një formë paralajmërimi për disa njerëz që do t'i njoftojë ata se diçka nuk është në rregull me ajrin e kondicionuar në atë dhomë. Pajisjet për këtë ndërtim, kam përdorur Raspberry pi dhe një sensor USB të temperaturës dhe lagështisë. Për monitorim, kam përdorur Gnuplot për të vizatuar tre grafikë të temperaturës dhe për të krijuar imazhin e atyre grafikëve. Unë pastaj krijova një faqe të dedikuar HTML që do të mbahet në Raspberry pi, kështu që kushtet aktuale, ato imazhe dalëse të gnuplot, mund të monitorohen nga një faqe në internet brenda rrjetit tonë. Për paralajmërim zgjodha të shkoja me Gmail. Kisha gjetur një shembull të kodit në një revistë Linux User. (Sigurisht që mund të përdorni çdo server postar pasi të dini detyrimet e nevojshme të portit.) Për këtë krijova një llogari të dedikuar të postës elektronike Gmail për këto paralajmërime. Gjithashtu si një veçori e shtuar, kur një alarm është ndezur, i bashkëngjit një grafik email -it, në mënyrë që personi që merr emailin të ketë një ide se sa një rritje drastike ishte ajo që ka shkaktuar alarmin.

Hapi 1: Konfigurimi i harduerit

Konfigurimi i harduerit
Konfigurimi i harduerit

Nuk ka shumë për të vendosur pajisjen. Raspberry pi po përdor Raspian dhe sensori i temperaturës USB thjesht lidhet drejtpërdrejt në një nga portat USB. Konsumi i energjisë i këtij sensori është minimal dhe si rezultat e fuqizova direkt nga Raspberry pi. Sidoqoftë, për pajisjet me energji USB me pak më shumë konsum të energjisë, unë do të rekomandoja që ato të furnizohen me energji përmes një shpërndarës USB të furnizuar dhe jo drejtpërdrejt nga porta USB e Raspberry pi. Pasi të ndizet sensori i temperaturës, ai siguron një varg serik i cili përmban temperaturën dhe leximet e lagështisë të kushteve aktuale. temperatura = 20.9 ° C lagështia = 62.7% pika e vesës = 13.0 ° Shkrimi i Python CA analizon këtë varg dhe ruan vlerat e temperaturës dhe lagështisë në tre skedarë teksti çdo pesë minuta; një skedar teksti ditor, 24 orë dhe 48 orë (Dallimet do të diskutohen më vonë në seksionin HTML). Nga këto skedarë, Gnuplot do të krijojë grafikët dhe më pas imazhet e të dhënave të vendosura në secilin skedar. Para se të diskutoj shkrimin e pitonit do të flas për përgatitjen e Raspberry pi. Meqenëse monitorimi duhet të bëhet në internet, duhet të instalohet një server në internet. Kam provuar disa prej tyre në kohën time në Raspberry pi, por megjithëse është pak e madhe unë preferoj Apache. Për të instaluar Apache në Raspberry pi tuaj thjesht shkruani: sudo apt-get install apache2 Kjo do t'ju japë një kërkesë para se të instalohet, shtypni "y" për po dhe dhe Apache do të instalohet disa minuta në varësi të Raspberry pi tuaj. Pasi që është bërë, duhet të instaloni dy shtesa python: seriali python dhe priza python-gnuplot. (Megjithëse kam kuptuar që ndërtimet e fundit Raspian kanë standardin e shtimit të serisë python, por vetëm për të qenë të sigurt.) Për të instaluar ato që shkruani: sudo apt-get install python-serial python-gnuplot Edhe një herë pasi të keni pranuar kërkesat, këto plug -in do të instalohen. Dhe me këtë konfigurimi i harduerit ka përfunduar.

Hapi 2: Konfigurimi i Softuerit - Konfigurimi i Email -it dhe Marrësit

krijoni adresë emaili Para se të hyjmë shumë në softuer tani do të ishte një kohë e mirë për të krijuar një llogari Gmail për të dërguar paralajmërimet tuaja të postës elektronike. (Ky shembull përdor GMail, por çdo server postar mund të përdoret pasi të dimë cilësimet e portit smtp) Kodi python është mjaft i drejtpërdrejtë, por importet e nevojshme janë kritike. Pa to asgjë nuk do të funksiononte. Nga importi me kohë *koha e importit import import serial smtplib import Gnuplot import os import sys Së fundi, lista e postimeve. Sigurisht që duhet të shtojmë marrësit e emailit. Çdo adresë e -mail ruhet në një variabël.from_address ='[email protected]'to_address1 = 'marrës1.mail.com' to_address2 = 'marrës2.mail.com'username =' [email protected] 'fjalëkalim =' custom_email_password '

Hapi 3: Konfigurimi i softuerit - Konfigurimi dhe analizimi serik

Tjetra ne shikojmë konfigurimin serik. Justshtë vetëm një çështje e vendosjes së parametrave që përputhen me daljen serike nga sensori. Sensori nxjerr një varg serik në 9600 8 N 1 i cili është një format standard. Pasi të jetë marrë vargu, ka disa mënyra për të analizuar këtë varg në python dhe me shumë mundësi më të besueshme. Mënyra se si e bëj është të kërkoj personazhet "temp" në vargun serik. Sapo të gjendet, është thjesht një çështje për të lexuar 46 karakteret serike të ardhshme në një varg. Vargu i mbledhur tani mund të adresohet si elementë në një grup. Të dhënat e dëshiruara analizohen nga vargu dhe ruhen në tre skedarë së bashku me vulën e tij përkatëse kohore.timestamp = strftime ("%d%b%Y%H:%M:%S", koha e kohës ())

Hapi 4: Konfigurimi i softuerit - Gnuplot

Konfigurimi i softuerit - Gnuplot
Konfigurimi i softuerit - Gnuplot
Konfigurimi i softuerit - Gnuplot
Konfigurimi i softuerit - Gnuplot
Konfigurimi i softuerit - Gnuplot
Konfigurimi i softuerit - Gnuplot

Gnuplot është një mjet grafik i linjës së komandës. Pasi të keni kuptuar bazat, mund të jetë një mjet mjaft i fuqishëm për shfaqjen grafike të grupeve të të dhënave. Gnuplot mund të komplotojë drejtpërdrejt nga një skedar teksti të formatuar dhe na ndodh që të kemi një nga hapi i analizimit më parë. Pasi të tregojmë në gnuplot se ku në skedar ndodhen të dhënat mund të vizatojmë vlerat e dëshiruara. Unë do të përdor kohën në boshtin X dhe temperaturën tonë në boshtin Y. Hartimi i kohës nga përvoja ime është më e vështira pasi ju duhet të merrni formatin e kohës në gnuplot që të përputhet me formatin e skedarit të tekstit. Pasi të jenë përfunduar të gjitha opsionet e grafikimit dhe sipas dëshirës tuaj, Gnuplot pastaj mund të krijojë një imazh të këtij grafiku. Ky do të jetë imazhi që do të përdorim në faqen tonë të internetit më vonë. Zgjodha të shkoja me një imazh-p.webp

Hapi 5: Konfigurimi i softuerit - Vendosja e pragut dhe dërgimi i postës elektronike

Pragu për paralajmërimin duhet të bëhet me provë dhe gabim për konfigurimin tuaj. dhoma në të cilën ndodhen sistemet nuk ka dritare kështu që sapo të ndalet ajri i kondicionuar mund të nxehet shumë shpejt. Fillimisht shikova grupin e të dhënave për disa ditë dhe pashë ndryshimet e temperaturës para se të vendosja për vlerën e alarmit prej 30 gradë C. Kjo është vendosur si një ndryshore brenda skipit të pitonit. Kjo mund të mos duket shumë e lartë, por pasi të jetë ndezur alarmi, ju ende dëshironi t'i jepni vetes kohë për të korrigjuar problemin para se të bëhet kritik.

Për thjeshtësi, unë po dërgoj email individual në listën e postimeve. Meqenëse lista e postimeve është e shkurtër, unë kurrë nuk u shqetësova me dërgimin e një emaili tek disa marrës. Një gjë për tu vënë në dukje këtu, Meqenëse unë jam duke e ekzekutuar këtë skenar si një punë cron çdo 5 minuta, ju nuk doni të dërgoni email çdo 5 minuta pasi pragu të jetë shkaktuar. Për ta kapërcyer këtë, unë shkruaj datën dhe kohën e alarmit në një skedar dhe e kontrolloj këtë skedar para se të dërgoj ndonjë email për të parë nëse sistemi është tashmë në një gjendje alarmi. Pasi të jetë në gjendje alarmi, do të dërgojë një email vetëm çdo orë pas shkaktimit të parë për aq kohë sa sistemi është në gjendje alarmi. Në atë mënyrë Gmail nuk e bllokon emailin tuaj që të dërgojë shumë email në një periudhë të shkurtër kohe.

Hapi 6: Konfigurimi i softuerit - HTML

Monitorimi i të gjithë sistemit bëhet përmes një faqe në internet dhe për këtë nevojitet një skript html shumë themelor. Imazhet që krijoi Gnuplot thjesht i përdor të njëjtat dimensione të imazhit. Unë besoj se kam kaluar rreth 3 madhësi për këto imazhe të cilat i dhanë përshtatjen më të mirë ekranit tim. Para se të krijojmë skriptin html, le të krijojmë një dosje për të. Si parazgjedhje, dosja e mbajtjes në internet është e vendosur në/var/www/. Edhe pse qëllimi i vetëm i këtij mjedër pi është të monitorojë këtë dhomë dhe të lëshojë njoftime me email, për mirëmbajtjen e shtëpisë krijova një dosje të veçantë në dosjen/var/www/. Meqenëse kjo dosje i përket përdoruesit rrënjësor, duhet të përdorni sudo për të krijuar një dosje në këtë vendndodhje. sudo mkdir/var/www/temperatureNë këtë shembull kam përdorur temperaturën si emrin e dosjes, por ju mund të përdorni çdo emër këtu, por mbani mend pasi kjo do të duhet të futet në shiritin e adresave për të parë këtë faqe. Kjo rrugë ruhet në një ndryshore brenda shkrimit python. Edhe nëse vendndodhja e pritjes duhet të ndryshohet ose skripti duhet të modifikohet për një sistem tjetër, ai mund të ndryshohet vetëm nga ky vend. Tani ne mund të krijojmë skriptin tonë html në këtë dosje duke mos harruar të përdorim sudo para çdo komande që ju duan të ekzekutojnë këtu. Unë do t'ju rekomandoja të emërtonit skriptin html "index.html" pasi kjo do ta thjeshtonte këtë kur përpiqeni të gjeni këtë faqe. Gjëja kryesore është të siguroheni që madhësia e imazhit është e njëjtë me madhësinë e imazhit nga Gnuplot. Për të parë këtë faqe, thjesht duhet të futni adresën IP të Raspberry Pi e ndjekur nga /temperatura (ose atë që e keni quajtur ndonjëherë dosjen tuaj) Unë kam disa sisteme në punë që monitorojnë gjëra të ndryshme dhe të gjitha ato prodhojnë një rezultat grafik të rezultateve të tyre. Kështu që unë krijova një faqe që ka lidhje me të gjitha këto faqe, kështu që nuk kam pse të shqetësohem për futjen e adresës sa herë që dua të hyj në këto faqe.

Hapi 7: Unë jam gjallë…

Unë e kam përdorur këtë për të monitoruar temperaturën në një dhomë kompjuteri, por këto mund të kenë qenë shumë të dhëna nga çdo burim. Pasi të mund të ruhet në një skedar teksti dhe ju e dini se formati i tij Gnuplot mund të bëjë pjesën tjetër. Një gjë që shtova kohët e fundit në këtë projekt është të dërgoj një lloj emaili të "rrahjeve të zemrës". Kjo është në fillim të muajit në 9 të mëngjesit që kam një skenar që funksionon që dërgon email në listën e postimeve për t'i njoftuar ata se sistemi po funksionon siç duhet dhe gjithçka është mirë në dhomë.

Duke përdorur listën cronjob si:

Recommended: