Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Raspberry Pi monitorando a temperatura ambiente com saída de imagem Gnuplot e capacidade de alerta por e-mail


Onde eu trabalho, há uma sala muito importante que abriga muitos computadores. A temperatura ambiente desta sala tem que ser muito fria para otimizar o desempenho desses sistemas.
Fui solicitado a criar um sistema de monitoramento que tivesse a capacidade de enviar algum tipo de alerta a algumas pessoas que as notificariam que algo está errado com o ar condicionado naquela sala.
O hardware para esta construção, usei Raspberry pi e um sensor de temperatura e umidade USB.

Para monitoramento, usei o Gnuplot para traçar três gráficos de temperatura e criar imagens desses gráficos. Em seguida, criei uma página HTML dedicada que será hospedada no Raspberry pi para que as condições atuais, aquelas imagens de saída do gnuplot, possam ser monitoradas a partir de uma página da web em nossa rede.

Para alertar, optei por usar o Gmail. Eu tinha encontrado alguns códigos de exemplo em uma revista Linux User. (Claro que você pode usar qualquer servidor de e-mail, uma vez que você saiba as atribuições de porta necessárias.)
Para isso, criei uma conta de e-mail do Gmail dedicada para esses alertas. Também como um recurso adicional, quando um alerta é disparado, eu anexei um gráfico ao e-mail para que a pessoa que recebesse o e-mail pudesse ter uma ideia de quão drástico foi o aumento que causou o alerta.

Etapa 1:A configuração do hardware

Não há muito para configurar o hardware. O Raspberry pi está executando Raspian e o sensor de temperatura USB simplesmente se conecta diretamente a uma das portas USB.


O consumo de energia desse sensor é mínimo e, como resultado, liguei diretamente do Raspberry pi. No entanto, para dispositivos alimentados por USB com um pouco mais de consumo de energia, eu recomendaria alimentá-los por meio de um hub USB alimentado e não diretamente da porta USB do Raspberry pi.

Assim que o sensor de temperatura é ligado, ele fornece uma string serial que contém as leituras de temperatura e umidade das condições atuais.

temperatura =20,9 ° C umidade =62,7% ponto de orvalho =13,0 ° C

Um script python analisa essa string e armazena os valores de temperatura e umidade em três arquivos de texto a cada cinco minutos; arquivos de texto diários de 24 horas e 48 horas (as diferenças serão discutidas posteriormente na seção HTML). A partir desses arquivos, o Gnuplot irá gerar os gráficos e posteriormente as imagens do conjunto de dados em cada arquivo.

Antes de discutir o script python, falarei sobre como preparar o Raspberry pi.

Como o monitoramento deve ser feito online, um servidor web precisa ser instalado. Eu tentei alguns deles no meu tempo no Raspberry pi, mas embora seja um pouco grande, eu prefiro o Apache. Para instalar o Apache no seu Raspberry pi, basta digitar:

sudo apt-get install apache2

Ele lhe dará um prompt antes de instalar, pressione “y” para sim e
e o Apache será instalado em alguns minutos, dependendo do seu pi do Raspberry.

Feito isso, você deve instalar dois plug-ins python:python-serial e o plug python-gnuplot. (Embora eu tenha percebido que as compilações recentes do Raspian têm o padrão de plug-in python-serial, mas apenas por segurança.)

Para instalar aqueles que você digita:

sudo apt-get install python-serial python-gnuplot

Mais uma vez, após reconhecer os prompts, esses plug-ins serão instalados.

E com isso a configuração do hardware está completa.

Etapa 2:Configuração do software - Configuração de e-mail e destinatários

criar endereço de email


Antes de entrarmos muito no software, é um bom momento para criar uma conta do Gmail para enviar seus alertas de e-mail. (Este exemplo usa o GMail, mas qualquer servidor de e-mail pode ser usado uma vez que conheçamos as configurações da porta smtp)

O código python é bastante simples, mas as importações necessárias são críticas. Sem eles nada funcionaria.

desde a importação do tempo *
tempo da importação

import serial

importar smtplib

importar Gnuplot

importar os

import sys

Finalmente, a lista de discussão. Claro que temos que adicionar os destinatários do e-mail. Cada endereço de e-mail é salvo em uma variável.

from_address =‘[email protegido]’
to_address1 =‘destinatário1.mail.com’

to_address2 =‘destinatário2.mail.com’

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

password =‘custom_email_password’

Etapa 3:Configuração do software - configuração serial e análise


A seguir, examinamos a configuração serial.

É apenas uma questão de configurar parâmetros que correspondam à saída serial do sensor. O sensor emite uma string serial em 9600 8 N 1, que é um formato padrão.

Após o recebimento da string, há várias maneiras de analisá-la em python e, possivelmente, de maneira mais confiável. A maneira como faço isso é procurar os caracteres “temporários” na string serial. Uma vez localizado, é simplesmente uma questão de ler os próximos 46 caracteres seriais em uma string.

A string coletada agora pode ser endereçada como elementos em uma matriz. Os dados desejados são analisados ​​a partir da string e salvos nos três arquivos junto com seu carimbo de data / hora correspondente.

timestamp =strftime (“% d% b% Y% H:% M:% S“, hora local ())

Etapa 4:Configuração do software - Gnuplot


Gnuplot é uma ferramenta gráfica de linha de comando. Depois de descobrir o básico, ele pode ser uma ferramenta muito poderosa para a exibição gráfica de conjuntos de dados.

O Gnuplot pode plotar diretamente de um arquivo de texto formatado e acontece que temos um da etapa de análise anterior.

Assim que indicarmos ao gnuplot onde os dados estão localizados no arquivo, podemos plotar os valores desejados. Vou usar o tempo no eixo X e nossa temperatura no eixo Y.

Plotar o tempo com a minha experiência é o mais difícil, pois você tem que obter o formato da hora no gnuplot para coincidir com o formato do arquivo de texto.

Após todas as opções de gráfico estarem completas e de acordo com sua preferência, o Gnuplot pode então criar uma imagem a partir deste gráfico. Esta será a imagem que usaremos em nossa página da Web posteriormente. Optei por uma imagem .png e, como desejo substituir a imagem antiga na página da Web, cada imagem tem o mesmo nome para que esta linha de código não precise ser alterada.

A configuração do tamanho da imagem está ligada à otimização da página html. Primeiro brinquei com os tamanhos padrão e depois experimentei fazer a imagem caber na tela. Para este projeto, não estou armazenando imagens antigas, portanto o tamanho físico do arquivo armazenado não é um fator importante no precioso armazenamento do Raspberry pi.

Aqui está um trecho de código para criar e armazenar a imagem do gráfico daily.png.

g =Gnuplot.Gnuplot (debug =debug)

g (‘cd“ ‘+ caminho +‘ ”‘)
g (‘definir hora xdata’)

g (‘definir timefmt“% d% b% Y% H:% M:% S ”‘)

g (‘definir formato x“% H:% M \\ n% d% b ”‘)

g (‘definir título” Exibição da temperatura atual diária ”‘)

g (‘desligar chave’)

g (‘definir grade’) g (‘definir xlabel“ Hora \\ nData ”‘)

g (‘definir yrange [15.0:35.0]’)

g (‘definir ilabel” Temperatura “‘)

g (‘definir arquivo de dados faltando“ NaN ”‘)

g ('definir o tamanho do PNG do terminal 800.400')

g (‘definir saída“ daily.png ”‘)

g (‘traçar“ daily.dat ”usando 1:($ 3) com linhas’)

NOTA:A linha onde se lê g (‘definir arquivo de dados faltando" NaN "‘), o objetivo desta linha é traçar um espaço em branco no gráfico. A variável “NaN” é gravada no arquivo se o script python detectar algo estranho para uma determinada leitura ou transmissão serial.

Como você pode ver nos três gráficos acima, o daily.png mostra a hora atual dos dados enquanto o 24_hour.png tem as mesmas informações exibidas em uma escala de 24 horas. O gráfico 48_hour.png mostra as últimas 48 horas de dados do sensor.







Para mais detalhes:Monitoramento de temperatura ambiente controlado do Raspberry Pi com saída de imagem Gnuplot e capacidade de alerta por e-mail

Processo de manufatura

  1. Controle de acesso com QR, RFID e verificação de temperatura
  2. Meça temperaturas com um sensor DS18B20 de 1 fio e Raspberry Pi
  3. Monitoramento da temperatura ambiente com Raspberry Pi e Nagios
  4. Ler a temperatura com DS18B20 | Raspberry Pi 2
  5. Monitor de temperatura e umidade da casa (ambiente) com gráfico baseado na web - Raspberry Pi
  6. Monitoramento de temperatura no Raspberry Pi
  7. Medindo a temperatura com RASPBERRY PI
  8. Sensor de temperatura Python e Raspberry Pi
  9. Monitoramento da temperatura ambiente com Moteino e Raspberry Pi
  10. Temperatura e umidade fáceis no Raspberry Pi