Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Контролируемый мониторинг температуры в помещении 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 ° C

Сценарий 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

Еще раз после подтверждения запросов эти плагины будут установлены.

На этом настройка оборудования завершена.

Шаг 2. Настройка программного обеспечения - настройка электронной почты и получатели

создать адрес электронной почты

Прежде чем мы углубимся в программное обеспечение, сейчас самое время создать учетную запись Gmail, с которой будут отправляться оповещения по электронной почте. (В этом примере используется GMail, но можно использовать любой почтовый сервер, если нам известны настройки порта smtp)

Код на Python довольно прост, но необходимый импорт имеет решающее значение. Без них ничего бы не получилось.

от времени импорта *
времени импорта

импортный серийный

импортировать smtplib

импортировать Gnuplot

импорт ОС

импортная система

Наконец, список рассылки. Конечно, мы должны добавить получателей электронного письма. Каждый адрес электронной почты сохраняется в переменной.

from_address =‘[адрес электронной почты защищен]’
to_address1 =‘recipient1.mail.com’

to_address2 =«recipient2.mail.com»

username =‘[email protected] @ gmail.com’

пароль =‘custom_email_password’

Шаг 3. Настройка программного обеспечения - настройка последовательного порта и анализ

Затем мы посмотрим на настройку последовательного порта.

Это просто вопрос настройки параметров, которые соответствуют последовательному выходному сигналу датчика. Датчик выдает последовательную строку 9600 8 N 1, которая является стандартным форматом.

После того, как строка была получена, есть несколько способов разобрать эту строку в python и, возможно, более надежно. Я ищу «временные» символы в последовательной строке. После нахождения достаточно просто прочитать следующие 46 последовательных символов в строке.

Теперь к собранной строке можно обращаться как к элементам массива. Требуемые данные извлекаются из строки и сохраняются в трех файлах вместе с соответствующей меткой времени.

timestamp =strftime («% d% b% Y% H:% M:% S», localtime ())

Шаг 4. Настройка программного обеспечения - Gnuplot

Gnuplot - графический инструмент командной строки. Как только вы разберетесь с основами, это может стать довольно мощным инструментом для графического отображения наборов данных.

Gnuplot может рисовать прямо из форматированного текстового файла, и у нас так получилось, что он уже есть на предыдущем этапе синтаксического анализа.

Как только мы укажем gnuplot, где в файле находятся данные, мы можем построить желаемые значения. Я собираюсь использовать время по оси X и нашу температуру по оси Y.

По моему опыту, график времени является самым сложным, так как вам нужно получить формат времени в gnuplot, чтобы он соответствовал формату текстового файла.

После того, как все параметры построения графиков заполнены и по вашему усмотрению, Gnuplot может создать изображение для этого графика. Это будет изображение, которое мы будем использовать на нашей веб-странице позже. Я решил использовать изображение .png, и, поскольку я хочу заменить старое изображение на веб-странице, каждое изображение имеет одно и то же имя, поэтому эту строку кода не нужно менять.

Настройка размера изображения связана с оптимизацией HTML-страницы. Сначала я поигрался со стандартными размерами, а затем поэкспериментировал, чтобы изображение соответствовало моему экрану. В этом проекте я не храню старые изображения, поэтому физический размер файла в хранилище не является важным фактором для драгоценного хранилища Raspberry pi.

Вот фрагмент кода для создания и сохранения изображения графика daily.png.

g =Gnuplot.Gnuplot (отладка =отладка)

g (‘cd“ ‘+ path +‘ ”‘)
g (‘set xdata time’)

g («установить timefmt«% d% b% Y% H:% M:% S »‘)

g («установить формат x«% H:% M \\ n% d% b »‘)

g («установить заголовок« Отображение текущей суточной температуры »‘)

g («выключить ключ»)

g («установить сетку») g («установить xlabel« Время \\ nДата »‘)

g (‘установить диапазон изменения [15.0:35.0]’)

g («установить ярлык» Температура «‘)

g («установить файл данных без« NaN »‘)

g («установить размер терминала png 800,400»)

g («установить вывод« daily.png »‘)

g («построить« daily.dat »с использованием 1:(3 доллара США) с линиями»)

ПРИМЕЧАНИЕ:Строка, которая читает g («установить файл данных без« NaN »»), цель этой строки - нанести на график пустое пространство. Переменная «NaN» записывается в файл, если скрипт python обнаруживает что-нибудь странное для данного чтения или последовательной передачи.

Как видно из трех приведенных выше графиков, daily.png отображает текущее время данных, тогда как 24_hour.png отображает ту же информацию в 24-часовом масштабе. На графике 48_hour.png показаны данные датчика за последние 48 часов.

Подробнее:контролируемый мониторинг температуры в помещении Raspberry Pi с выводом изображения Gnuplot и возможностью оповещения по электронной почте


Производственный процесс

  1. Контроль доступа с помощью QR, RFID и проверки температуры
  2. Измерение температуры с помощью однопроводного датчика DS18B20 и Raspberry Pi
  3. Мониторинг комнатной температуры с Raspberry Pi и Nagios
  4. Считать температуру с помощью DS18B20 | Raspberry Pi 2
  5. Монитор температуры и влажности в домашних условиях (в комнате) с веб-диаграммой - Raspberry Pi
  6. Мониторинг температуры на Raspberry Pi
  7. Измерение температуры с помощью RASPBERRY PI
  8. Датчик температуры Python и Raspberry Pi
  9. Мониторинг комнатной температуры с помощью Moteino’s и Raspberry Pi
  10. Простая температура и влажность на Raspberry Pi