Obsah:

Monitorování pokojové teploty řízené malinou Pi s výstupem obrazu Gnuplot a možností upozornění e -mailem: 7 kroků
Monitorování pokojové teploty řízené malinou Pi s výstupem obrazu Gnuplot a možností upozornění e -mailem: 7 kroků

Video: Monitorování pokojové teploty řízené malinou Pi s výstupem obrazu Gnuplot a možností upozornění e -mailem: 7 kroků

Video: Monitorování pokojové teploty řízené malinou Pi s výstupem obrazu Gnuplot a možností upozornění e -mailem: 7 kroků
Video: Jak ovládat a sledovat tepelné čerpadlo s klimatizací, vlastní levné kutilské vytápění. 2024, Červen
Anonim
Monitorování pokojové teploty pomocí Raspberry Pi s výstupem obrazu Gnuplot a možností upozornění e -mailem
Monitorování pokojové teploty pomocí Raspberry Pi s výstupem obrazu Gnuplot a možností upozornění e -mailem

Tam, kde pracuji, je velmi důležitá místnost, ve které je spousta počítačů. Pro optimalizaci výkonu těchto systémů musí být okolní teplota této místnosti velmi chladná. Byl jsem požádán, abych přišel s monitorovacím systémem, který má schopnost odeslat nějakou formu upozornění několika lidem, kteří je upozorní, že s klimatizací v té místnosti není něco v pořádku. Hardware pro tuto stavbu jsem použil Raspberry pi a snímač teploty a vlhkosti USB. Pro monitorování jsem použil Gnuplot k vykreslení tří teplotních grafů a vytvoření obrazu těchto grafů. Poté jsem vytvořil vyhrazenou stránku HTML, která bude hostována na Raspberry pi, takže současné podmínky, tyto výstupní obrázky gnuplot, lze sledovat z webové stránky v naší síti. Pro upozornění jsem se rozhodl pro Gmail. Našel jsem nějaký ukázkový kód v časopise Linux User. (Samozřejmě můžete použít jakýkoli poštovní server, jakmile znáte potřebné přiřazení portů.) Za tímto účelem jsem pro tyto výstrahy vytvořil vyhrazený e -mailový účet Gmail. Také jako přidaná funkce, když bylo spuštěno upozornění, přikládám k e -mailu jeden graf, aby osoba, která e -mail obdržela, získala představu o tom, jak drastické zvýšení způsobilo varování.

Krok 1: Nastavení hardwaru

Nastavení hardwaru
Nastavení hardwaru

Nastavení hardwaru není mnoho. Na Raspberry pi běží Raspian a teplotní senzor USB se jednoduše zapojuje přímo do jednoho z USB portů. Spotřeba energie tohoto snímače je minimální a v důsledku toho jsem jej napájel přímo z Raspberry pi. U zařízení napájených USB s o něco větší spotřebou energie bych však doporučil napájet je přes napájený rozbočovač USB a ne přímo z USB portu Raspberry pi. Jakmile je teplotní čidlo napájeno, poskytuje sériový řetězec, který obsahuje teplotu a odečty vlhkosti aktuálních podmínek. teplota = 20,9 ° C vlhkost = 62,7% rosný bod = 13,0 ° Python skript CA analyzuje tento řetězec a ukládá hodnoty teploty a vlhkosti do tří textových souborů každých pět minut; textové soubory denně, 24 hodin a 48 hodin (Rozdíly budou diskutovány později v sekci HTML). Z těchto souborů Gnuplot vygeneruje grafy a následně obrázky datové sady v každém souboru. Než budu diskutovat o skriptu pythonu, promluvím o přípravě Raspberry pi. Protože monitorování probíhá online, je třeba nainstalovat webový server. Zkoušel jsem několik z nich ve své době na Raspberry pi, ale i když je to trochu velké, dávám přednost Apache. Chcete-li nainstalovat Apache na váš Raspberry pi, jednoduše zadejte: sudo apt-get install apache2 Zobrazí se výzva před instalací, stiskněte "y" pro ano a Apache bude nainstalován několik minut v závislosti na vašem Raspberry pi. Jakmile to je hotovo, musíte nainstalovat dva moduly plug-in pythonu: python-serial a python-gnuplot plug. (I když jsem si uvědomil, že nedávné verze Raspian mají standard plug-in python-serial, ale jen pro jistotu.) Chcete-li nainstalovat ty, které napíšete: sudo apt-get install python-serial python-gnuplotOnce znovu po potvrzení výzev, tyto plug -ins budou nainstalovány. A tím je nastavení hardwaru dokončeno.

Krok 2: Nastavení softwaru - Nastavení e -mailu a příjemci

vytvořit e -mailovou adresu Než se dostaneme příliš daleko k softwaru, nyní by bylo vhodné vytvořit si účet Gmail, ze kterého budete zasílat e -mailová upozornění. (Tento příklad používá GMail, ale lze použít jakýkoli poštovní server, jakmile budeme znát nastavení portu smtp) Kód pythonu je docela přímočarý, ale důležité jsou importy. Bez nich by nic nefungovalo. Od času importu *importu času importu sériového importu smtplib importu Gnuplot importu os importu sysKonečně seznamu adresátů. Samozřejmě musíme přidat příjemce e -mailu. Každá e -mailová adresa je uložena v proměnné.from_address ='[email protected]'to_address1 = 'recipient1.mail.com' to_address2 = 'recipient2.mail.com'username =' [email protected] 'heslo =' custom_email_password '

Krok 3: Nastavení softwaru - sériové nastavení a analýza

Dále se podíváme na sériové nastavení. Je to jen otázka nastavení parametrů, které odpovídají sériovému výstupu ze snímače. Senzor vydává sériový řetězec na 9600 8 N 1, což je standardní formát. Poté, co byl řetězec přijat, existuje několik způsobů, jak tento řetězec analyzovat v pythonu a dost možná spolehlivěji. Způsob, jakým to dělám, je hledat znaky „temp“v sériovém řetězci. Jakmile je nalezen, je to jen otázka načtení dalších 46 sériových znaků do řetězce. Shromážděný řetězec lze nyní adresovat jako prvky v poli. Požadovaná data jsou analyzována z řetězce a uložena do tří souborů spolu s odpovídajícím časovým razítkem. Timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

Krok 4: Nastavení softwaru - Gnuplot

Nastavení softwaru - Gnuplot
Nastavení softwaru - Gnuplot
Nastavení softwaru - Gnuplot
Nastavení softwaru - Gnuplot
Nastavení softwaru - Gnuplot
Nastavení softwaru - Gnuplot

Gnuplot je grafický nástroj příkazového řádku. Jakmile zjistíte základy, může to být docela účinný nástroj pro grafické zobrazení datových sad. GNuplot může vykreslovat přímo z formátovaného textového souboru a my jsme náhodou měli jeden z kroku analýzy dříve. Jakmile označíme gnuplot, kde se v souboru data nacházejí, můžeme vykreslit požadované hodnoty. Použiji čas na ose X a naši teplotu na ose Y. Vykreslení času z mé zkušenosti je nejtěžší, protože musíte získat časový formát v gnuplot, aby odpovídal formátu textového souboru. Poté, co jsou všechny možnosti grafů kompletní a podle vašich preferencí, Gnuplot pak může vytvořit obrázek tohoto grafu. Toto bude obrázek, který použijeme na naší webové stránce později. Rozhodl jsem se jít s obrázkem-p.webp

Krok 5: Nastavení softwaru - nastavení prahu a odeslání e -mailem

Prahová hodnota pro výstrahu musí být u vašeho nastavení provedena metodou pokusu a omylu. místnost, ve které jsou umístěny systémy, nemá okna, takže jakmile se klimatizace zastaví, může se velmi rychle velmi zahřát. Zpočátku jsem několik dní prohlížel soubor dat a sledoval kolísání teploty, než jsem se rozhodl pro výstražnou hodnotu 30 stupňů C. Toto je nastaveno jako proměnná v pythonu. To se nemusí zdát příliš vysoké, ale jakmile bude výstraha spuštěna, stále si chcete dát čas na odstranění problému, než se stane kritickým.

Pro jednoduchost posílám jednotlivé e -maily do seznamu adresátů. Protože je seznam adresátů krátký, nikdy jsem se neobtěžoval odeslat jeden e -mail několika příjemcům. Zde je třeba poznamenat jednu věc, protože tento skript spouštím jako úlohu cron každých 5 minut, nechcete po spuštění prahu odesílat e -maily každých 5 minut. Abych to obešel, napíšu datum a čas výstrahy do souboru a před odesláním e -mailů tento soubor zkontroluji, abych zjistil, zda je systém již ve stavu výstrahy. Jakmile je ve stavu výstrahy, odešle e -mail pouze každou hodinu po prvním spuštění tak dlouho, dokud bude systém v pohotovostním stavu. Gmail tak nezablokuje odesílání příliš velkého počtu e -mailů za krátkou dobu.

Krok 6: Nastavení softwaru - HTML

Monitorování celého systému se provádí prostřednictvím webové stránky a je k tomu zapotřebí velmi základní html skript. Obrázky, které vytvořil Gnuplot, jednoduše použiji zpět stejné rozměry obrázku. Věřím, že jsem prošel asi 3 velikostmi těchto obrázků, které nejlépe vyhovovaly mé obrazovce. Než vytvoříme skript html, vytvořme pro něj složku. Ve výchozím nastavení je složka webhostingu umístěna na/var/www/. Ačkoli jediným účelem tohoto Raspberry pi je monitorovat tuto místnost a vydávat e -mailová upozornění, pro dobré udržování domu jsem vytvořil samostatnou složku ve složce/var/www/. Protože tato složka patří uživateli root, musíte k vytvoření složky použít sudo. sudo mkdir/var/www/teplota V tomto příkladu jsem jako název složky použil teplotu, ale můžete zde použít libovolný název, ale pamatujte si, že pro zobrazení této stránky bude nutné zadat tento řádek do adresního řádku. Tato cesta je uložena v proměnné ve skriptu pythonu. Dokonce i když je třeba změnit umístění hostitele nebo upravit skript pro jiný systém, lze jej změnit pouze z tohoto jednoho místa. Nyní můžeme v této složce vytvořit náš skript html, který pamatuje na použití sudo infront jakékoli příkazy, které vám chcete zde popravit. Doporučil bych vám pojmenovat html skript „index.html“, protože by to zjednodušilo při pokusu o nalezení této stránky. Zásadní věcí je zajistit, aby velikost obrázku byla stejná jako velikost obrázku z Gnuplotu. Chcete -li zobrazit tuto stránku Jednoduše musíte zadat IP adresu Raspberry Pi následovanou /teplotu (nebo jakkoli jste pojmenovali svou složku) Mám několik systémů, které monitorují různé věci a všechny produkují nějaký grafický výstup svých výsledků. Vytvořil jsem tedy stránku, která obsahuje odkazy na všechny tyto stránky, takže si nemusím dělat starosti se zadáváním adresy pokaždé, když se chci na tyto stránky dostat.

Krok 7: Jsem naživu…

Použil jsem to ke sledování teploty v počítačové místnosti, ale mohla to být do značné míry data z jakéhokoli zdroje. Jakmile to může být uloženo v textovém souboru a víte, že je to formát, Gnuplot může udělat zbytek. Jedna věc, kterou jsem nedávno přidal do tohoto projektu, je poslat e -mail „prezenčního signálu“. To je první v měsíci v 9 hodin, mám spuštěný skript, který posílá e -maily na seznam adresátů, aby věděli, že systém běží tak, jak by měl a vše je v pořádku.

Použití seznamu cronjob jako:

Doporučuje: