Съдържание:

Контролиран от Raspberry Pi контрол на стайната температура с изход за изображение Gnuplot и възможност за предупреждение по имейл: 7 стъпки
Контролиран от Raspberry Pi контрол на стайната температура с изход за изображение Gnuplot и възможност за предупреждение по имейл: 7 стъпки

Видео: Контролиран от Raspberry Pi контрол на стайната температура с изход за изображение Gnuplot и възможност за предупреждение по имейл: 7 стъпки

Видео: Контролиран от Raspberry Pi контрол на стайната температура с изход за изображение Gnuplot и възможност за предупреждение по имейл: 7 стъпки
Видео: Sonoff SNZB-02 Zigbee датчик температуры и влажности, Tuya Smart, интеграция в Home Assistant 2024, Юни
Anonim
Контролиран от Raspberry Pi контрол на стайната температура с Gnuplot изход на изображение и възможност за предупреждение по имейл
Контролиран от Raspberry Pi контрол на стайната температура с Gnuplot изход на изображение и възможност за предупреждение по имейл

Там, където работя, има много важна стая, в която има много компютри. Температурата на околната среда на тази стая трябва да бъде много ниска, за да се оптимизират работата на тези системи. Бях помолен да измисля система за мониторинг, която има способността да изпраща някаква форма на предупреждение до няколко души, които да ги уведомяват, че нещо не е наред с климатика в тази стая. Хардуерът за тази конструкция използвах Raspberry pi и USB сензор за температура и влажност. За мониторинг използвах Gnuplot, за да начертая три температурни графики и да създам изображение на тези графики. След това създадох специална HTML страница, която ще бъде хоствана на Raspberry pi, така че настоящите условия, тези изходни изображения на gnuplot, могат да бъдат наблюдавани от уеб страница в нашата мрежа. За предупреждение избрах да отида с Gmail. Открих примерен код в списание за потребители на Linux. (Разбира се, можете да използвате всеки пощенски сървър, след като знаете необходимите пристанищни назначения.) За целта създадох специален имейл акаунт в Gmail за тези сигнали. Също като допълнителна функция, когато е задействан сигнал, прикачвам една графика към имейла, така че лицето, което получава имейла, да добие представа колко драстично увеличение е причинило сигнала.

Стъпка 1: Настройка на хардуера

Настройката на хардуера
Настройката на хардуера

Няма много за настройка на хардуера. Raspberry pi работи с Raspian и USB температурният сензор просто се включва директно в един от USB портовете. Консумацията на енергия на този сензор е минимална и в резултат на това го захранвах директно от Raspberry pi. Въпреки това, за устройства с USB захранване с малко по -голяма консумация на енергия, бих препоръчал да ги захранвате през захранван USB хъб, а не директно от USB порта на Raspberry pi. След като сензорът за температура се захранва, той осигурява сериен низ, който съдържа температурата и показания за влажност на текущите условия. температура = 20.9 ° C влажност = 62.7% точка на оросяване = 13.0 ° CA python скрипт анализира този низ и съхранява стойностите на температурата и влажността в три текстови файла на всеки пет минути; ежедневно, 24 часа и 48 часа текстови файлове (Разликите ще бъдат обсъдени по -късно в раздела HTML). От тези файлове Gnuplot ще генерира графиките и впоследствие изображенията на набора от данни във всеки файл. Преди да обсъдя скрипта на python, ще говоря за приготвянето на Raspberry pi. Тъй като мониторингът трябва да се извършва онлайн, трябва да се инсталира уеб сървър. Опитах няколко от тях на времето си на Raspberry pi, но въпреки че е малко голям, предпочитам Apache. За да инсталирате Apache на вашия Raspberry pi, просто въведете: sudo apt-get install apache2 Той ще ви подкани, преди да се инсталира, натиснете "y" за да и и Apache ще бъде инсталиран няколко минути в зависимост от вашия Raspberry pi. е готово, трябва да инсталирате две приставки на python: python-serial и приставката python-gnuplot. (Въпреки че разбрах, че последните версии на Raspian имат стандарт за добавка python-serial, но само за да бъдат в безопасност.) За да инсталирате тези, които въвеждате: sudo apt-get install python-serial python-gnuplot Веднъж отново след потвърждаване на подканите, тези щепсели -in ще бъдат инсталирани. И с това хардуерната настройка е завършена.

Стъпка 2: Настройка на софтуера - Настройка на имейл и получатели

създайте имейл адрес Преди да навлезем твърде далеч в софтуера сега би било подходящ момент да създадем акаунт в Gmail, от който да изпращате вашите имейл сигнали. (Този пример използва GMail, но всеки пощенски сървър може да се използва, след като знаем настройките на smtp порта) Кодът на python е доста ясен, но необходимите импорти са критични. Без тях нищо няма да работи. От време импортиране *време за импортиране серийно импортиране smtplib импортиране Gnuplot импорт os импортиране sys Накрая, пощенският списък. Разбира се, трябва да добавим получателите на имейла. Всеки имейл адрес се записва в променлива.

Стъпка 3: Настройка на софтуера - Серийна настройка и разбор

След това разглеждаме серийната настройка. Това е само въпрос на настройка на параметри, които съответстват на серийния изход от сензора. Сензорът извежда сериен низ при 9600 8 N 1, който е стандартен формат. След като низът е получен, има няколко начина за анализиране на този низ в python и най -вероятно по -надеждно. Начинът, по който го правя, е да търся символите "temp" в серийния низ. След като бъде локализиран, просто е въпрос на четене на следващите 46 последователни знака в низ. Събраният низ вече може да бъде адресиран като елементи в масив. Желаните данни се анализират от низа и се запазват в трите файла заедно със съответния им времеви печат. Timestamp = strftime ("%d%b%Y%H:%M:%S", localtime ())

Стъпка 4: Настройка на софтуера - Gnuplot

Софтуерна настройка - Gnuplot
Софтуерна настройка - Gnuplot
Софтуерна настройка - Gnuplot
Софтуерна настройка - Gnuplot
Софтуерна настройка - Gnuplot
Софтуерна настройка - Gnuplot

Gnuplot е графичен инструмент от командния ред. След като сте разбрали основите, това може да бъде доста мощен инструмент за графично показване на набори от данни. Gnuplot може да начертае директно от форматиран текстов файл и ние случайно имаме такъв от стъпката за синтактичен анализ преди. След като посочим gnuplot къде във файла се намират данните, можем да начертаем желаните стойности. Ще използвам времето по оста X и нашата температура по оста Y. Начертаването на времето от моя опит е най -трудното, тъй като трябва да получите времевия формат в gnuplot, за да съответства на формата на текстовия файл. След като всички опции за графики са пълни и според вашите предпочитания, Gnuplot може да създаде изображение на тази графика. Това ще бъде изображението, което ще използваме на нашата уеб страница по -късно. Избрах да използвам-p.webp

Стъпка 5: Настройка на софтуера - Настройка на прага и изпращане по имейл

Прагът за предупреждение трябва да бъде направен чрез опит и грешка за вашата настройка. стаята, в която се помещават системите, няма прозорци, така че след като климатикът спре, той може да се нагрее много бързо. Първоначално разглеждах набора от данни в продължение на няколко дни и наблюдавах колебанията в температурата, преди да реша стойността на сигнала от 30 градуса С. Това е зададено като променлива в рамките на python scipt. Това може да не изглежда много високо, но след като сигналът е задействан, все пак искате да си дадете време да отстраните проблема, преди да стане критичен.

За по -просто, изпращам отделни имейли до списъка с пощенски адреси. Тъй като пощенският списък е кратък, никога не съм се притеснявал да изпратя един имейл до няколко получатели. Едно нещо, което трябва да се отбележи тук, тъй като изпълнявам този скрипт като задача cron на всеки 5 минути, не искате да изпращате имейли на всеки 5 минути, след като прагът е задействан. За да заобиколя това, записвам датата и часа на сигнала във файл и проверявам този файл, преди да изпратя имейли, за да видя дали системата вече е в състояние на предупреждение. Веднъж в състояние на предупреждение, той ще изпраща отново имейл всеки час след първото задействане, докато системата е в състояние на предупреждение. По този начин Gmail не блокира имейла ви да изпраща твърде много имейли за кратък период от време.

Стъпка 6: Настройка на софтуера - HTML

Мониторингът на цялата система се извършва чрез уеб страница и за това е необходим много основен html скрипт. Изображенията, които Gnuplot създаде, просто просто използвам обратно същите размери на изображението. Вярвам, че преминах през около 3 размера за тези изображения, които дават най -доброто място на моя екран. Преди да създадем html скрипт, нека създадем папка за него. По подразбиране папката за уеб хостинг се намира на адрес/var/www/. Въпреки че единствената цел на Raspberry pi е да наблюдава тази стая и да изпраща сигнали по имейл, за добро домашно поддържане създадох отделна папка в/var/www/папката. Тъй като тази папка принадлежи на root потребителя, трябва да използвате sudo за създаване на папка е това местоположение. sudo mkdir/var/www/temperature В този пример използвах температурата като име на папката, но можете да използвате всяко име тук, но запомнете, тъй като това ще трябва да бъде въведено в адресната лента, за да видите тази страница. Този път се съхранява в променлива в скрипта на python. Дори ако местоположението на хостинга трябва да бъде променено или скриптът трябва да бъде променен за друга система, той може просто да бъде променен от това едно място. Сега можем да създадем нашия html скрипт в тази папка, като не забравяме да използваме sudo пред всички команди, които искате да изпълните тук. Бих ви препоръчал да назовете html скрипта „index.html“, тъй като това би опростило това, когато се опитвате да намерите тази страница. Най -важното е да се уверите, че размерът на изображението е същият като размера на изображението от Gnuplot. За да видите тази страница, просто трябва да въведете IP адреса на Raspberry Pi, последван от /temperature (или каквото и да е името на вашата папка). Имам няколко работещи системи, които наблюдават различни неща и всички те произвеждат графичен изход на техните резултати. Затова създадох страница, която има връзки към всички тези страници, така че не трябва да се притеснявам да въвеждам адреса всеки път, когато искам достъп до тези страници.

Стъпка 7: Жив съм …

Използвах това, за да наблюдавам температурата в компютърна зала, но това можеше да са почти данни от всеки източник. След като може да се съхранява в текстов файл и знаете, че е във формат, Gnuplot може да свърши останалото. Това е на първия от месеца в 9 часа сутринта. Имам скрипт, който се изпълнява, който изпраща имейл до пощенския списък, за да ги уведоми, че системата работи както трябва и всичко е наред в стаята.

Използване на списъка с cronjob като:

Препоръчано: