Taula de continguts:

Monitorització de temperatura ambient controlada per Raspberry Pi amb sortida d'imatges Gnuplot i capacitat d'alerta per correu electrònic: 7 passos
Monitorització de temperatura ambient controlada per Raspberry Pi amb sortida d'imatges Gnuplot i capacitat d'alerta per correu electrònic: 7 passos

Vídeo: Monitorització de temperatura ambient controlada per Raspberry Pi amb sortida d'imatges Gnuplot i capacitat d'alerta per correu electrònic: 7 passos

Vídeo: Monitorització de temperatura ambient controlada per Raspberry Pi amb sortida d'imatges Gnuplot i capacitat d'alerta per correu electrònic: 7 passos
Vídeo: Monitorizar la temperatura del PC, el uso de la RAM, y la carga del procesador | Windows 2024, Desembre
Anonim
Monitorització de temperatura ambient controlada per Raspberry Pi amb sortida d’imatges Gnuplot i capacitat d’alerta per correu electrònic
Monitorització de temperatura ambient controlada per Raspberry Pi amb sortida d’imatges Gnuplot i capacitat d’alerta per correu electrònic

Allà on treballo, hi ha una sala molt important que alberga molts ordinadors. La temperatura ambient d’aquesta habitació ha de ser molt fresca per optimitzar el rendiment d’aquests sistemes. Em van demanar que vingués amb un sistema de monitorització que pogués enviar alguna forma d’alerta a algunes persones que els notifiquessin que alguna cosa no funciona amb l’aire condicionat d’aquella habitació. i un sensor de temperatura i humitat USB. Per fer el seguiment, he utilitzat Gnuplot per traçar tres gràfics de temperatura i crear una imatge d’aquests gràfics. Després vaig crear una pàgina HTML dedicada que s’allotjarà al Raspberry pi perquè les condicions actuals, aquestes imatges de sortida de gnuplot, es puguin controlar des d’una pàgina web de la nostra xarxa. Havia trobat algun exemple de codi en una revista Linux User. (Per descomptat, podeu utilitzar qualsevol servidor de correu un cop conegueu les assignacions de port necessàries.) Per a això, he creat un compte de correu electrònic de Gmail dedicat a aquestes alertes. També com a característica addicional, quan s’ha activat una alerta, adjunto un gràfic al correu electrònic perquè la persona que en rebi pugui tenir una idea del dràstic augment que ha provocat l’alerta.

Pas 1: Configuració del maquinari

La configuració del maquinari
La configuració del maquinari

No hi ha molt a configurar el maquinari. El Raspberry pi funciona amb Raspian i el sensor de temperatura USB simplement es connecta directament a un dels ports USB. El consum d'energia d'aquest sensor és mínim i, com a resultat, el vaig alimentar directament des del Raspberry pi. Tanmateix, per als dispositius alimentats per USB amb una mica més de consum d’energia, us recomanaria alimentar-los mitjançant un concentrador USB alimentat i no directament des del port USB del Raspberry pi. Un cop el sensor de temperatura s’alimenta, proporciona una cadena sèrie que conté la temperatura i lectures d'humitat de les condicions actuals. temperatura = 20,9 ° C humitat = 62,7% punt de rosada = 13,0 ° CA script python analitza aquesta cadena i emmagatzema els valors de temperatura i humitat en tres fitxers de text cada cinc minuts; fitxers de text diaris de 24 hores i 48 hores (les diferències es tractaran més endavant a la secció HTML). A partir d’aquests fitxers, Gnuplot generarà els gràfics i, posteriorment, les imatges del conjunt de dades de cada fitxer. Abans de discutir l’escriptura python parlaré de la preparació del Raspberry pi. Com que el seguiment s'ha de fer en línia, cal instal·lar un servidor web. He provat alguns d’ells al meu temps al Raspberry pi, però tot i que és una mica gran prefereixo l’Apache. Per instal·lar Apache al vostre Raspberry pi, simplement escriviu: sudo apt-get install apache2 Us donarà un avís abans d’instal·lar-lo, premeu "y" per si i Apache s’instal·larà uns minuts en funció del vostre Raspberry pi. acabat, heu d’instal·lar dos connectors python: python-serial i el connector python-gnuplot. (Tot i que m'he adonat que les recents versions de Raspian tenen l'estàndard del connector python-serial, però només per estar segur.) Per instal·lar-les, escriviu: sudo apt-get install python-serial python-gnuplot Una vegada més després de reconèixer les indicacions, aquestes plug S'instal·laran -ins. I amb això, la configuració del maquinari s'ha completat.

Pas 2: Configuració del programari: configuració del correu electrònic i destinataris

abans d’entrar massa en el programari, seria un bon moment per crear un compte de Gmail des d’on enviar les vostres alertes de correu electrònic. (En aquest exemple s'utilitza GMail, però es pot utilitzar qualsevol servidor de correu un cop coneixem la configuració del port SMTP). El codi Python és força senzill, però les importacions necessàries són fonamentals. Sense ells res funcionaria. A partir de temps importació * importació temps importació importació sèrie importació smtplib importació Gnuplot i importació sys Finalment, la llista de correu. Per descomptat, hem d’afegir els destinataris del correu electrònic. Cada adreça de correu electrònic es desa en una variable.

Pas 3: Configuració del programari: configuració i anàlisi en sèrie

A continuació, analitzem la configuració en sèrie: només es tracta de configurar paràmetres que coincideixin amb la sortida sèrie del sensor. El sensor emet una cadena sèrie a 9600 8 N 1, que és un format estàndard. Després de rebre la cadena, hi ha diverses maneres d'analitzar aquesta cadena en python i, possiblement, de manera més fiable. La meva manera de fer-ho és buscar els caràcters "temp" a la cadena de sèrie. Un cop localitzat, es tracta simplement de llegir els següents 46 caràcters de sèrie en una cadena. La cadena recollida ara es pot adreçar com a elements d'una matriu. Les dades desitjades s’analitzen des de la cadena i es guarden als tres fitxers juntament amb el segell de temps corresponent.timestamp = strftime ("% d% b% Y% H:% M:% S", localtime ())

Pas 4: Configuració del programari: Gnuplot

Configuració del programari: Gnuplot
Configuració del programari: Gnuplot
Configuració del programari: Gnuplot
Configuració del programari: Gnuplot
Configuració del programari: Gnuplot
Configuració del programari: Gnuplot

Gnuplot és una eina gràfica de línia d'ordres. Un cop hàgiu esbrinat els conceptes bàsics, pot ser una eina força potent per a la visualització gràfica de conjunts de dades. GNUPLOT pot dibuixar directament des d’un fitxer de text formatat i en tenim un del pas d’anàlisi anterior. Un cop indiquem a gnuplot on es troben les dades del fitxer, podem traçar els valors desitjats. Vaig a utilitzar el temps a l’eix X i la nostra temperatura a l’eix Y. Tractar el temps des de la meva experiència és el més difícil, ja que cal obtenir el format d’hora a gnuplot perquè coincideixi amb el format del fitxer de text. Després de completar totes les opcions de gràfics i segons les vostres preferències, Gnuplot pot crear una imatge d’aquest gràfic. Aquesta serà la imatge que farem servir a la nostra pàgina web més endavant. Vaig optar per anar amb una imatge-p.webp

Pas 5: Configuració del programari: configuració del llindar i enviament de correu electrònic

El llindar de l'alerta s'ha de fer mitjançant proves i errors per a la configuració. l'habitació que alberga els sistemes no té finestres, de manera que, un cop s'atura l'aire condicionat, es pot escalfar molt ràpidament. Inicialment, vaig mirar el conjunt de dades durant uns quants dies i vaig observar les variacions de temperatura abans de decidir el valor d'alerta de 30 graus C. Això es defineix com a variable dins del pit de pitó. Pot ser que això no sembli molt elevat, però un cop activada l'alerta, voleu donar-vos temps per corregir el problema abans que esdevingui crític.

Per simplicitat, envio correus electrònics individuals a la llista de distribució. Com que la llista de correu és curta, mai em vaig preocupar d’enviar un correu electrònic a diversos destinataris. Una cosa a tenir en compte aquí, ja que estic executant aquest script com a tasca cron cada 5 minuts, no voleu que envieu correus electrònics cada 5 minuts un cop s'hagi activat el llindar. Per solucionar-ho, escric la data i l'hora de l'alerta en un fitxer i comprovo aquest fitxer abans d'enviar correus electrònics per veure si el sistema ja està en estat d'alerta. Un cop en estat d'alerta, només tornarà a enviar un correu electrònic cada hora després del primer activador, sempre que el sistema estigui en estat d'alerta. D'aquesta manera, Gmail no impedeix que el vostre correu electrònic enviï massa correus electrònics en un curt període de temps.

Pas 6: Configuració del programari: HTML

El control de tot el sistema es realitza a través d’una pàgina web i per a això es necessita un script html molt bàsic. Les imatges que va crear Gnuplot simplement les utilitzo de nou amb les mateixes dimensions de la imatge. Crec que he passat per aproximadament 3 mides per a aquestes imatges que donaven el millor ajust a la meva pantalla. Abans de crear l'script html, creem-ne una carpeta. Per defecte, la carpeta d'allotjament web es troba a / var / www /. Tot i que l'únic propòsit d'aquest Raspberry pi és supervisar aquesta sala i emetre alertes per correu electrònic, per tal de mantenir-les bé, he creat una carpeta independent a la carpeta / var / www /. Com que aquesta carpeta pertany a l'usuari root, heu d'utilitzar sudo per crear una carpeta. sudo mkdir / var / www / temperature En aquest exemple he utilitzat temperature com a nom de la carpeta, però podeu fer servir qualsevol nom aquí, però recordeu que s’haurà d’introduir a la barra d’adreces per veure aquesta pàgina. Aquest camí d'accés s'emmagatzema en una variable de l'script python. Tot i que s’hagi de canviar la ubicació d’allotjament o modificar l’escriptura per a un altre sistema, només es pot canviar des d’aquesta ubicació. Ara podem crear el nostre script html en aquesta carpeta recordant d’utilitzar sudo davant qualsevol ordre que vull executar aquí. Us recomanaria que nomeneu l'índex html "index.html", ja que això simplificaria la prova de trobar aquesta pàgina. El més important és assegurar-vos que la mida de la imatge sigui la mateixa que la mida de la imatge de Gnuplot. Per veure aquesta pàgina, simplement heu d’introduir l’adreça IP del Raspberry Pi seguida de / temperature (o el que heu anomenat la vostra carpeta). Tinc diversos sistemes a la feina que supervisen diferents coses i tots produeixen una sortida gràfica dels seus resultats. Per tant, vaig crear una pàgina que conté enllaços a totes aquestes pàgines, de manera que no em preocupo d’introduir l’adreça cada vegada que vull accedir a aquestes pàgines.

Pas 7: Estic viu …

Ho he utilitzat per controlar la temperatura d'una sala d'informàtica, però podria haver estat pràcticament dades de qualsevol font. Un cop es pot emmagatzemar en un fitxer de text i ja sabeu que té el format, Gnuplot pot fer la resta. Una cosa que he afegit recentment a aquest projecte és enviar un tipus de correu electrònic de tipus "batec del cor". És a dir, el primer del mes a les 9 del matí. Tinc un script que s’executa que envia per correu electrònic la llista de correu per fer-los saber que el sistema s’executa com hauria de funcionar i que tot està bé a la sala.

Utilitzant el llistat cronjob com:

Recomanat: