Sisällysluettelo:

Raspberry Pi -ohjattu huonelämpötilan valvonta Gnuplot -kuvan ulostulolla ja sähköpostihälytyskyky: 7 vaihetta
Raspberry Pi -ohjattu huonelämpötilan valvonta Gnuplot -kuvan ulostulolla ja sähköpostihälytyskyky: 7 vaihetta

Video: Raspberry Pi -ohjattu huonelämpötilan valvonta Gnuplot -kuvan ulostulolla ja sähköpostihälytyskyky: 7 vaihetta

Video: Raspberry Pi -ohjattu huonelämpötilan valvonta Gnuplot -kuvan ulostulolla ja sähköpostihälytyskyky: 7 vaihetta
Video: Как связать промышленные датчики 4–20 мА с ПЛК Raspberry Pi Pico | ПЛК Мицубиси FX1N 2024, Kesäkuu
Anonim
Raspberry Pi -ohjattu huonelämpötilan valvonta Gnuplot -kuvan ulostulolla ja sähköpostihälytysmahdollisuudella
Raspberry Pi -ohjattu huonelämpötilan valvonta Gnuplot -kuvan ulostulolla ja sähköpostihälytysmahdollisuudella

Siellä missä työskentelen, on erittäin tärkeä huone, jossa on paljon tietokoneita. Tämän huoneen ympäristön lämpötilan on oltava erittäin viileä näiden järjestelmien suorituskyvyn optimoimiseksi. Minua pyydettiin keksimään valvontajärjestelmä, joka pystyy lähettämään jonkinlaisen hälytyksen muutamille ihmisille, jotka ilmoittavat heille, että huoneessa on jotain vikaa. Tämän rakenteen laitteisto, käytin Raspberry pi ja USB -lämpötila- ja kosteusanturi. Valvoakseni käytin Gnuplotia piirtämään kolme lämpötilakaaviota ja luomaan kuvan näistä kaavioista. Luin sitten omistetun HTML -sivun, jota isännöidään Raspberry pi: ssä, joten nykyisiä olosuhteita, niitä gnuplot -tulostuskuvia, voidaan seurata verkostomme verkkosivulta. Olin löytänyt esimerkkikoodin Linux -käyttäjälehdestä. (Voit tietysti käyttää mitä tahansa sähköpostipalvelinta, kun tiedät tarvittavat porttimääritykset.) Tätä varten olen luonut erillisen Gmail -sähköpostitilin näille hälytyksille. Myös lisäominaisuutena, kun hälytys on lauennut, liitän sähköpostiviestiin yhden kaavion, jotta sähköpostin vastaanottaja voi saada käsityksen siitä, kuinka rajusti hälytyksen aiheuttanut lisäys oli.

Vaihe 1: Laitteiston asennus

Laitteiston asennus
Laitteiston asennus

Laitteiston asennuksessa ei ole paljon tehtävää. Raspberry pi käyttää Raspiania ja USB -lämpötila -anturi kytketään yksinkertaisesti suoraan yhteen USB -porteista. Tämän anturin virrankulutus on minimaalinen, ja sen vuoksi sain sen suoraan Raspberry pi -laitteesta. Kuitenkin, jos käytät USB -laitteita, joiden virrankulutus on hieman suurempi, suosittelen, että ne saavat virtaa USB -keskittimen kautta, ei suoraan Raspberry pi: n USB -portista. nykyisten olosuhteiden kosteuslukemat. lämpötila = 20,9 ° C kosteus = 62,7% kastepiste = 13,0 ° CA python -skripti jäsentää tämän merkkijonon ja tallentaa lämpötila- ja kosteusarvot kolmeen tekstitiedostoon viiden minuutin välein; päivittäin, 24 tuntia ja 48 tuntia tekstitiedostoja (eroista keskustellaan myöhemmin HTML -osiossa). Näistä tiedostoista Gnuplot luo kaaviot ja sen jälkeen kunkin tiedoston tietojoukon kuvat. Ennen kuin keskustelen python -käsikirjoituksesta, puhun Raspberry pi: n valmistelusta. Koska valvonta on tehtävä verkossa, verkkopalvelin on asennettava. Olen kokeillut muutamia niistä aikanaan Raspberry pi: llä, mutta vaikka se on vähän iso, mieluummin Apache. Asenna Apache Raspberry pi -laitteellesi kirjoittamalla: sudo apt-get install apache2 Se antaa kehotteen ennen asennusta, paina "y", jos haluat, ja Apache asennetaan muutaman minuutin kuluttua Raspberry pi -laitteestasi. on valmis, sinun on asennettava kaksi python-laajennusta: python-serial ja python-gnuplot-laajennus. (Vaikka olen ymmärtänyt, että viimeisimmissä Raspian-koontiversioissa on python-sarja-laajennusstandardi, mutta se on vain turvallista.) Kirjoittamiesi asennusten asentaminen: sudo apt-get install python-serial python-gnuplot -asennetaan. Ja laitteiston asennus on valmis.

Vaihe 2: Ohjelmiston asennus - Sähköpostiasetukset ja vastaanottajat

Ennen kuin pääsemme liian pitkälle ohjelmistoon, olisi hyvä aika luoda Gmail -tili, josta voit lähettää sähköposti -ilmoituksia. (Tässä esimerkissä käytetään GMailia, mutta mitä tahansa sähköpostipalvelinta voidaan käyttää, kun tiedämme smtp -portin asetukset.) Python -koodi on melko suoraviivainen, mutta tarvittava tuonti on kriittistä. Ilman niitä mikään ei toimisi. Ajan tuonti *tuonti aika tuonti sarjatuonti smtplib tuonti Gnuplot tuonti tuonti sysViimeksi postituslista. Tietysti meidän on lisättävä sähköpostin vastaanottajat. Kukin sähköpostiosoite tallennetaan muuttujaan.

Vaihe 3: Ohjelmiston asennus - sarja -asetukset ja jäsentäminen

Seuraavaksi tarkastelemme sarja -asetuksia, on vain asetettava parametrit, jotka vastaavat anturin sarjalähtöä. Anturi antaa sarjamuotoisen merkkijonon taajuudella 9600 8 N 1, joka on vakiomuoto. Merkkijonon vastaanottamisen jälkeen on useita tapoja jäsentää tämä merkkijono pythonissa ja mahdollisesti luotettavammin. Tapa, jolla teen sen, on etsiä "temp" -merkkejä sarjajonosta. Kun se on löydetty, on vain luettava seuraavat 46 sarjamerkkiä merkkijonoksi. Kerättyä merkkijonoa voidaan nyt käsitellä kuten taulukon elementtejä. Halutut tiedot jäsennetään merkkijonosta ja tallennetaan kolmeen tiedostoon yhdessä vastaavan aikaleiman kanssa. Timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

Vaihe 4: Ohjelmiston asennus - Gnuplot

Ohjelmiston asennus - Gnuplot
Ohjelmiston asennus - Gnuplot
Ohjelmiston asennus - Gnuplot
Ohjelmiston asennus - Gnuplot
Ohjelmiston asennus - Gnuplot
Ohjelmiston asennus - Gnuplot

Gnuplot on komentorivin graafinen työkalu. Kun olet ymmärtänyt perusasiat, se voi olla melko tehokas työkalu tietojoukkojen graafiseen näyttämiseen. Kun olemme osoittaneet gnuplotille, missä tiedostossa tiedot sijaitsevat, voimme piirtää halutut arvot. Käytän aikaa X -akselilla ja lämpötilamme Y -akselilla. Ajan piirtäminen kokemukseni mukaan on vaikeinta, koska sinun on saatava aikamuoto gnuplotissa vastaamaan tekstitiedoston muotoa. Tätä kuvaa käytämme myöhemmin verkkosivullamme. Päätin käyttää-p.webp

Vaihe 5: Ohjelmiston asennus - Kynnysasetus ja sähköposti

Hälytyksen kynnys on suoritettava kokeilu- ja erehdysasetuksilla. Järjestelmän sisältävässä huoneessa ei ole ikkunoita, joten kun ilmastointi pysähtyy, se voi kuumentua erittäin nopeasti. Aluksi katsoin tietojoukkoa muutaman päivän ajan ja katselin lämpötilan vaihteluita, ennen kuin päätin hälytysarvoksi 30 astetta C. Tämä asetetaan muuttujaksi python -skriptissä. Tämä ei ehkä näytä kovin korkealta, mutta kun hälytys on lauennut, haluat silti antaa itsellesi aikaa korjata ongelma ennen kuin siitä tulee kriittinen.

Yksinkertaisuuden vuoksi lähetän yksittäisiä sähköpostiviestejä postituslistalle. Koska postituslista on lyhyt, en koskaan vaivautunut lähettämään yhtä sähköpostia useille vastaanottajille. Yksi asia on huomioitava tässä, koska käytän tätä komentosarjaa cron -tehtävänä 5 minuutin välein, et halua lähettää sähköpostia 5 minuutin välein kynnyksen laukaisun jälkeen. Tämän kiertämiseksi kirjoitan hälytyksen päivämäärän ja kellonajan tiedostoon ja tarkistan tämän tiedoston ennen sähköpostien lähettämistä, onko järjestelmä jo hälytystilassa. Kun se on hälytystilassa, se lähettää sähköpostin uudelleen vain tunnin välein ensimmäisen laukaisun jälkeen niin kauan kuin järjestelmä on hälytystilassa. Näin Gmail ei estä sähköpostiasi lähettämästä liikaa sähköpostiviestejä lyhyessä ajassa.

Vaihe 6: Ohjelmiston asennus - HTML

Koko järjestelmän seuranta tapahtuu verkkosivun kautta ja tähän tarvitaan hyvin yksinkertainen html -komentosarja. Gnuplotin luomia kuvia käytän vain kuvan samoja mittoja. Uskon, että kävin läpi noin 3 kokoa näille kuville, jotka sopivat parhaiten näyttöön. Ennen kuin luomme html -komentosarjan, luodaan sille kansio. Web -hosting -kansio sijaitsee oletusarvoisesti osoitteessa/var/www/. Vaikka tämän Raspberry pi'n ainoa tarkoitus on valvoa tätä huonetta ja antaa sähköposti -ilmoituksia, loin hyvän kodin pitämisen vuoksi erillisen kansion/var/www/-kansioon. Koska tämä kansio kuuluu pääkäyttäjälle, sinun on käytettävä sudoa kansion luomiseen. sudo mkdir/var/www/lämpötila Tässä esimerkissä käytin lämpötilaa kansion nimenä, mutta voit käyttää mitä tahansa nimeä täällä, mutta muista, että tämä on syötettävä osoiteriville nähdäksesi tämän sivun. Tämä polku tallennetaan muuttujaan python -komentosarjassa. Vaikka isännöintipaikkaa on muutettava tai komentosarjaa on muokattava toiselle järjestelmälle, se voidaan muuttaa vain tästä yhdestä paikasta. haluat suorittaa täällä. Suosittelen, että annat html -skriptille nimen "index.html", koska tämä yksinkertaistaisi tätä, kun yrität löytää tämän sivun. Tärkeintä on varmistaa, että kuvan koko on sama kuin Gnuplot -kuvakoko., sinun tarvitsee vain syöttää Raspberry Pi: n IP -osoite ja sen jälkeen /lämpötila (tai mitä ikinä annoit kansillesi). Minulla on käytössä useita järjestelmiä, jotka seuraavat eri asioita ja ne kaikki tuottavat graafisen tuloksen tuloksistaan. Joten loin sivun, jolla on linkit kaikkiin näihin sivuihin, joten minun ei tarvitse huolehtia osoitteen kirjoittamisesta aina, kun haluan käyttää näitä sivuja.

Vaihe 7: Olen elossa…

Olen käyttänyt sitä tietokonehuoneen lämpötilan seuraamiseen, mutta tämä olisi voinut olla melko paljon tietoa mistä tahansa lähteestä. Kun se voidaan tallentaa tekstitiedostoon ja tiedät sen muodon, Gnuplot voi tehdä loput. Yksi asia, jonka olen äskettäin lisännyt tähän projektiin, on lähettää jonkinlainen "syke" -sähköposti. Se on kuukauden ensimmäisenä klo 9.00. Minulla on skripti, joka suorittaa sähköpostin postituslistalle ilmoittaakseen heille, että järjestelmä toimii niin kuin pitää ja kaikki on hyvin huoneessa.

Käyttämällä cronjob -luetteloa seuraavasti:

Suositeltava: