Índice:
- Etapa 1: A configuração do hardware
- Etapa 2: configuração do software - configuração do e-mail e destinatários
- Etapa 3: configuração do software - configuração serial e análise
- Etapa 4: Configuração do software - Gnuplot
- Etapa 5: Configuração do software - Configuração de limite e envio por e-mail
- Etapa 6: Configuração do software - HTML
- Etapa 7: I'm Alive…
Vídeo: Monitoramento de temperatura ambiente controlado do Raspberry Pi com saída de imagem Gnuplot e capacidade de alerta de e-mail: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Onde eu trabalho, há uma sala muito importante que abriga muitos computadores. A temperatura ambiente desta sala deve ser muito baixa para otimizar o desempenho desses sistemas. Pediram-me para criar um sistema de monitoramento que tivesse a capacidade de enviar algum tipo de alerta a algumas pessoas que as notificaria de que algo estava errado com o ar condicionado daquela sala. O hardware para esta construção, usei Raspberry pi e um sensor USB de temperatura e umidade. 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 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 é acionado, 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. Uma vez que o sensor de temperatura é alimentado, ele fornece uma string serial que contém a temperatura e leituras de umidade das condições atuais. temperatura = 20,9 ° C umidade = 62,7% ponto de orvalho = 13,0 ° CA o 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. Já experimentei alguns deles no Raspberry pi, mas embora seja um pouco grande, 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 o Apache será instalado alguns minutos dependendo do seu Raspberry pi. Uma vez que estiver pronto, você deve instalar dois plug-ins python: python-serial e o plug python-gnuplot. (Embora eu tenha percebido que versões recentes do Raspian têm o padrão de plug-in python-serial, mas apenas por segurança.) Para instalá-los, digite: sudo apt-get install python-serial python-gnuplotOnce novamente após reconhecer os prompts, estes plugam -ins será instalado. E com isso a configuração do hardware está completa.
Etapa 2: configuração do software - configuração do e-mail e destinatários
crie um endereço de e-mailAntes de entrarmos muito no software agora é 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.from time import * import time import serial import smtplib import Gnuplot import os import sysFinalmente, 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 protected]'to_address1 = 'destinatário1.mail.com' para_address2 = 'destinatário2.mail.com'username =' [email protected] 'senha =' custom_email_password '
Etapa 3: configuração do software - configuração serial e análise
A seguir, verificamos a configuração serial. É apenas uma questão de configurar os parâmetros que correspondem à 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 é procurando 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 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. Uma vez que você tenha descoberto 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 de hora no gnuplot para coincidir com o formato do arquivo de texto. Depois que todas as opções de gráfico estiverem completas e de acordo com sua preferência, o Gnuplot pode criar uma imagem desse gráfico. Esta será a imagem que usaremos em nossa página da Web posteriormente. Optei por uma imagem-p.webp
Etapa 5: Configuração do software - Configuração de limite e envio por e-mail
O limite para o alerta deve ser feito por tentativa e erro para sua configuração. o cômodo que abriga os sistemas não tem janelas, portanto, quando o ar condicionado é desligado, ele pode ficar muito quente e muito rápido. Inicialmente, olhei para o conjunto de dados por alguns dias e observei as variações de temperatura antes de decidir sobre o valor de alerta de 30 graus C. Isso é definido como uma variável no scipt python. Isso pode não parecer muito alto, mas uma vez que o alerta tenha sido acionado, você ainda deseja ter tempo para retificar o problema antes que ele se torne crítico.
Para simplificar, estou enviando e-mails individuais para a lista de mala direta. Como a lista de discussão é curta, nunca me preocupei em enviar um e-mail para vários destinatários. Uma coisa a ser observada aqui: como estou executando este script como um cron job a cada 5 minutos, você não deseja enviar e-mails a cada 5 minutos depois que o limite for acionado. Para contornar isso, escrevo a data e hora do alerta em um arquivo e verifico esse arquivo antes de enviar qualquer e-mail para ver se o sistema já está em estado de alerta. Uma vez em estado de alerta, ele só reenviará um e-mail a cada hora após o primeiro acionador, enquanto o sistema estiver em estado de alerta. Dessa forma, o Gmail não impede que seu e-mail envie muitos e-mails em um curto período de tempo.
Etapa 6: Configuração do software - HTML
O monitoramento de todo o sistema é feito através de uma página web e para isso é necessário um script html muito básico. As imagens que o Gnuplot criou eu simplesmente uso de volta as mesmas dimensões da imagem. Acredito que passei por cerca de 3 tamanhos para essas imagens que deram o melhor ajuste na minha tela. Antes de criarmos o script html, vamos criar uma pasta para ele. Por padrão, a pasta de hospedagem na web está localizada em / var / www /. Embora o único propósito do Raspberry pi 'seja monitorar esta sala e emitir alertas de e-mail, para uma boa manutenção, criei uma pasta separada na pasta / var / www /. Uma vez que esta pasta pertence ao usuário root, você deve usar sudo para criar uma pasta neste local. sudo mkdir / var / www / temperatureNeste exemplo usei a temperatura como o nome da pasta, mas você pode usar qualquer nome aqui, mas lembre-se, pois isso terá que ser inserido na barra de endereço para visualizar esta página. Este caminho é armazenado em uma variável dentro do script python. Mesmo que o local de hospedagem tenha que ser alterado ou o script tenha que ser modificado para outro sistema, ele pode ser apenas alterado a partir deste local. Agora podemos criar nosso script html nesta pasta lembrando de usar sudo na frente de quaisquer comandos que você deseja executar aqui. Eu recomendaria que você nomeasse o script html "index.html", pois isso simplificaria isso ao tentar encontrar esta página. O fundamental é ter certeza de que o tamanho da imagem é igual ao tamanho da imagem do Gnuplot. Para visualizar esta página, você simplesmente tem que inserir o endereço IP do Raspberry Pi seguido por / temperatura (ou o que quer que você nomeie sua pasta). Tenho vários sistemas em funcionamento monitorando coisas diferentes e todos eles produzem alguma saída gráfica de seus resultados. Portanto, criei uma página que contém links para todas essas páginas para que não precise me preocupar em inserir o endereço toda vez que quiser acessar essas páginas.
Etapa 7: I'm Alive…
Eu usei isso para monitorar a temperatura em uma sala de computador, mas podem ter sido dados de qualquer fonte. Uma vez que pode ser armazenado em um arquivo de texto e você conhece seu formato, o Gnuplot pode fazer o resto. Uma coisa que eu adicionei recentemente a este projeto é enviar uma espécie de e-mail de "pulsação". Isso é no primeiro dia do mês, às 9h, eu tenho um script que executa e-mails para a lista de e-mails para que saibam que o sistema está funcionando como deveria e que tudo está bem na sala.
Usando a lista de cronjob como:
Recomendado:
Mood Speaker - um poderoso alto-falante para música ambiente a ser tocada com base na temperatura ambiente: 9 etapas
Mood Speaker - um alto-falante poderoso para música ambiente a ser tocada com base na temperatura ambiente: Olá! Para meu projeto escolar no MCT Howest Kortrijk, fiz um Mood Speaker, que é um dispositivo de alto-falante Bluetooth inteligente com diferentes sensores, um LCD e WS2812b tira de LED incluída. O alto-falante reproduz música de fundo com base na temperatura, mas pode
Monitoramento de temperatura e umidade ambiente com ESP32 e AskSensors Cloud: 6 etapas
Monitoramento de temperatura e umidade da sala com o ESP32 e AskSensors Cloud: Neste tutorial, você aprenderá como monitorar a temperatura e a umidade de sua sala ou mesa usando o DHT11 e o ESP32 conectado à nuvem. Nossas atualizações de tutoriais podem ser encontradas aqui.DHT11 Especificações: O sensor DHT11 é capaz de medir a temperatura
Processamento de imagem com o Raspberry Pi: Instalando OpenCV e separação de cores de imagem: 4 etapas
Processamento de imagem com o Raspberry Pi: Instalando o OpenCV e a separação de cores da imagem: Esta postagem é o primeiro de vários tutoriais de processamento de imagem que estão por vir. Damos uma olhada mais de perto nos pixels que compõem uma imagem, aprendemos como instalar o OpenCV no Raspberry Pi e também escrevemos scripts de teste para capturar uma imagem e também c
Monitoramento de temperatura do Nodemcu ESP8266 usando DHT11 em um servidor da Web local - Obtenha a temperatura e umidade da sala no seu navegador: 6 etapas
Monitoramento de temperatura Nodemcu ESP8266 usando DHT11 em um servidor da Web local | Obtenha a temperatura e umidade da sala no seu navegador: Olá, pessoal, hoje vamos fazer um teste de umidade & sistema de monitoramento de temperatura usando ESP 8266 NODEMCU & Sensor de temperatura DHT11. A temperatura e a umidade serão obtidas no DHT11 Sensor & pode ser visto em um navegador cuja página da web será gerenciada
Sistemas de alerta de inundação - Níveis de água + Guia de monitoramento do sensor de IoT: 6 etapas
Sistemas de alerta de inundação - Níveis de água + Guia de monitoramento do sensor de IoT: Você precisa monitorar os níveis de água? Você aprenderá a fazer sistemas de monitoramento de nível de água neste tutorial. Esses dispositivos IoT industriais são implantados como sistemas de alerta de inundação nos EUA. Para manter você e sua comunidade seguros, as Smart Cities precisam mo