- Componentes necessários
- Interface MLX90614 com Raspberry Pi
- Interface de câmera Pi com Raspberry Pi
- Configurando e-mail SMTP com Raspberry Pi
- Código Python para Pi ler a temperatura de MLX90614 e enviar e-mail com imagem
- Medir a temperatura e enviar alerta de correio com PI
Desde o surto de corona, ficou muito difícil identificar quem é ou não afetado pelo vírus. Para resolver esse problema, dispositivos de temperatura costumam ser usados para medir a temperatura corporal. Esses dispositivos possuem sensores de temperatura IR sem contato que podem medir a temperatura corporal sem qualquer contato físico.
Existem muitas pistolas de temperatura disponíveis no mercado, mas nenhuma delas dá qualquer alerta ou notificação por e-mail para autoridades superiores para tomar as ações adequadas quando a temperatura ultrapassar um determinado limite. Neste projeto faremos a interface com um sensor de temperatura IR e enviaremos o e-mail de alertas com a imagem da pessoa caso a temperatura de alguma pessoa em particular ultrapasse o valor definido.
No mundo de hoje, a Internet das Coisas está revolucionando nossa vida ao desenvolver uma série de sistemas que podem ser monitorados e controlados remotamente. Neste projeto, vamos aproveitar o poder da IoT e construir um dispositivo de monitoramento de temperatura com alertas de e-mail usando Raspberry Pi, MLX90614 e PiCamera.
Anteriormente, também construímos outros termômetros semelhantes para medição da temperatura corporal, você pode encontrá-los aqui.
- Termômetro digital baseado em Arduino usando MAX30205
- Triagem de temperatura corporal sem contato usando RFID e Arduino com MLX90614
- Pistola termômetro infravermelho sem contato usando Arduino
- Termômetro sem contato de montagem em parede usando Arduino
- Termômetro inteligente usando Arduino com aplicativo Android
Componentes necessários
Aqui, estamos usando o sistema operacional Raspberry Pi 3 Raspbian. Todos os requisitos básicos de hardware e software foram discutidos anteriormente. Você pode consultá-los na introdução do Raspberry Pi e no LED Raspberry PI piscando para começar, exceto pelo que precisamos:
- Raspberry Pi 3 (qualquer versão seria adequada).
- Pi Camera.
- MLX90614 - Sensor de temperatura IR.
- Fios de conexão.
- Breadboard.
- Fonte de alimentação (5V, 2A / 3A)
Este projeto é simples se dividirmos o projeto em partes.
- Compreendendo e fazendo a interface do MLX90614 com o Raspberry pi.
- Introdução à câmera Pi.
- Configurando e-mail SMTP com Raspberry pi.
- Desenvolvimento e compreensão do código final.
Raspberry Pi: Raspberry Pi é um computador do tamanho de um cartão de crédito que foi projetado para fins educacionais. Devido ao seu preço e especificações incríveis, como wi-fi integrado, Bluetooth e cabeçalho GPIO programável, e o número de opções possíveis para criar um aplicativo, ele foi adotado por desenvolvedores e entusiastas de eletrônicos. Você pode procurar em Raspberry Pi Introdução e Raspberry PI LED piscando para começar o processo de inicialização.
Sensor de temperatura infravermelho MLX90614: Existem muitos sensores disponíveis no mercado que podem nos fornecer temperatura e umidade. O que torna este sensor diferente de todos os outros sensores é que ele pode nos fornecer a temperatura do objeto e outros sensores fornecem a temperatura ambiente. Temos usado o sensor DHT11 e o LM35 extensivamente para muitas aplicações onde a umidade atmosférica ou temperatura devem ser medidas.
Mas aqui para fazer uma pistola de temperatura que não precisa de contato físico e pode medir a temperatura do objeto em vez da temperatura ambiente, usamos o MLX90614 baseado em infravermelho. Para saber mais sobre circuitos de sensores infravermelhos e IR, siga o link.
O sensor MLX90614 é fabricado pela Melexis Microelectronics Integrated systems, funciona segundo o princípio do sensor termopilha infravermelho para medição de temperatura. Esses sensores consistem em duas unidades incorporadas internamente para fornecer a saída de temperatura. A primeira unidade é a unidade de detecção que possui um detector de infravermelho que é seguido pela segunda unidade que realiza o cálculo dos dados com processamento digital de sinal (DSP). Este sensor funciona com base na lei de Stefan-Boltzmann, que explica a energia irradiada por um corpo negro em termos de sua temperatura. Em termos simples, qualquer objeto emite energia IV e a intensidade dessa energia será diretamente proporcional à temperatura desse objeto. O sensor MLX90614 converte o valor computacional em ADC de 17 bitse que pode ser acessado usando o protocolo de comunicação I2C. Esses sensores medem a temperatura ambiente, bem como a temperatura do objeto, com calibração de resolução de 0,02 ° C. Para saber mais sobre os recursos do sensor MLX90614, consulte a Folha de Dados MLX90614.
Características do MLX90614:
- Tensão operacional: 3,6 V a 5 V
- Faixa de temperatura ambiente: -40 ° C a 125 ° C
- Faixa de temperatura do objeto: -70 ° C a -382,2 ° C
- Resolução / calibração: 0,02 ° C
- ADC de 17 bits.
- Comunicação I2C.
Interface MLX90614 com Raspberry Pi
Primeiro, faremos o download da biblioteca e dos pacotes necessários para fazer a interface com êxito do MLX90614.
Etapa 1: Habilitando a configuração I2C do Raspberry Pi.
Digite sudo raspi-config e vá para as opções de interface.
Vá para a opção I2C e ative-a.
Etapa 2: Baixe o pacote / biblioteca de MLX90614 acessando https://pypi.org/project/PyMLX90614/#files, clique com o botão direito e copie o endereço do link.
Vá para o terminal RPI e digite wget e cole o link copiado como abaixo.
Wget
Ele fará o download da biblioteca no nome de arquivo zip 'PyMLX90614-0.0.3.tar.gz' . em seguida, extraia a pasta com a extensão do nome do arquivo tar -xf ou use o comando abaixo para fazer o mesmo.
tar -xf PyMLX90614-0.0.3.tar.gz
Então, precisamos instalar alguns pacotes necessários usando os comandos abaixo.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Em seguida, vá para a pasta extraída usando cd PyMLX90614-0.0.3 / e execute o comando.
sudo python setup.py install
Quando terminar de seguir as etapas, basta conectar o sensor MLX90614 com o Raspberry pi usando o circuito fornecido a seguir. O circuito Raspberry Pi MLX90614 abaixo foi projetado usando fritzing.
Se as conexões e a instalação forem feitas corretamente, podemos verificar se obtemos o valor do endereço do sensor no barramento I2C usando o comando i2cdetect -y 1 .
Se tudo funcionar como esperado, podemos ver a saída abaixo em nosso terminal.
0x5A representa o endereço do sensor conforme mencionado na folha de dados. O snippet de folha de dados mostrando o mesmo é fornecido abaixo.
Agora, faremos um novo nome de arquivo mlxread.py e escreveremos um programa de amostra para verificar os dados do sensor. O código para o mesmo é fornecido abaixo.
from smbus2 import SMBus from mlx90614 import MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, endereço = 0x5A) print "Temperatura ambiente:", sensor.get_ambient () print "Temperatura do objeto:", sensor.get_object_1 () bus. Fechar()
Assim que o arquivo for criado, iremos executá-lo com a extensão python python mlxread.py. A saída que recebi é mostrada abaixo. Executei o programa várias vezes para verificar se os valores mudam conforme movo minha mão sobre ele.
Uau, fizemos a interface do MLX90614 com o nosso Raspberry Pi com sucesso, como você pode confirmar na imagem acima.
Interface de câmera Pi com Raspberry Pi
Etapa 1: Habilitando a configuração da câmera do Raspberry Pi.
Digite sudo raspi-config e vá para as opções de interface.
Vá para Câmera e habilite a câmera.
Agora, conecte o módulo da câmera conforme mostrado abaixo.
Passo 2: Para verificar se a câmera está conectada corretamente, pegamos uma imagem de teste e salvamos em nossa área de trabalho (estamos usando a versão do Raspbian OS com GUI completo)
raspistill -o Desktop / image.jpg
Isso permitirá que sua câmera clique em uma imagem com o nome da imagem e armazene-a na sua área de trabalho.
Configurando e-mail SMTP com Raspberry Pi
Nesta seção, entenderemos como podemos configurar nossa conta GMAIL para enviar e-mails de alerta quando a temperatura exceder o valor predefinido.
SMTP é um protocolo de transferência de correio simples, que é um protocolo de camada de aplicativo responsável pelo serviço de e-mail usando TCP / IP. Ele fornece a capacidade de enviar e receber mensagens de e-mail e é gerenciado pela Internet Engineering Task Force (IETF).
Este tutorial funciona apenas com contas GMAIL e para evitar possíveis erros, seria recomendado se você usar uma conta do Gmail nova.
Por padrão, o Google não permite que os usuários enviem e-mail usando o script Python. Para fazer isso funcionar, temos que habilitar alguns aplicativos menos seguros acessando as configurações de conta.
Passo 1: Vá para o canto direito e clique em Gerenciar sua conta do Google.
Passo 2: Clique em Segurança e role para baixo até “Acesso ao aplicativo menos seguro”.
Passo 3: Habilite o aplicativo menos seguro.
Passo 4: Repita com o outro id de e-mail também para enviar / receber o e-mail do script python.
Passo 5: Baixe os pacotes necessários.
sudo apt-get install ssmtp sudo apt-get install mailutils
Se você estiver recebendo um erro ao executar o comando copiando e colando, digite-o manualmente.
Passo 6: Após a instalação de todas as bibliotecas, precisamos fazer alterações no arquivo ssmtp.conf, onde temos que inserir os detalhes do e-mail do remetente
Vá para sudo nano /etc/ssmtp/ssmtp.conf
Role para baixo até o final e cole isso, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Também compartilhei uma captura de tela dos meus terminais para sua referência.
Acabei de usar uma placa de ensaio para fazer minha conexão, minha configuração de hardware se parece com a dele quando o MLX90614 e a câmera estão conectados.
Código Python para Pi ler a temperatura de MLX90614 e enviar e-mail com imagem
O programa python faz todas as operações necessárias para ler os dados do sensor, compará-los com o valor limite, autorizar o e-mail e, em seguida, enviar o e-mail com a imagem anexada. No início, exigiremos a declaração de e-mail das bibliotecas, do remetente e do destinatário. O email pode ser enviado por smtplib, mas queremos apenas que o email seja organizado com assunto, corpo e outro anexo, isso é feito com a ajuda de Multipurpose Internet Mail Extensions (MIME). O código completo pode ser encontrado no final desta página.
importar RPi.GPIO como gpio importar picamera importar tempo importar smtplib de email.MIMEMultipart importar MIMEMultipart de email.MIMEText importar MIMEText de email.MIMEBase importar MIMEBase de email importar codificadores de email.mime.image importar MIMEImage de smbus2 importar SMBus de smbus2 importar SMBus de mlx90614
Depois disso, definimos o endereço de e-mail do remetente, o endereço de e-mail do destinatário, o assunto do e-mail, o corpo e a mensagem em anexo.
fromaddr = "[email protected]" # altere o endereço de e-mail de acordo com toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Valor de temperatura excedeu o alerta" body = "Encontre o anexo imagem"
Em seguida, criamos uma função com a qual podemos enviar um e-mail.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (image) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Em seguida, criamos uma função para capturar a imagem que é enviada por e-mail e também armazena a imagem com dados e hora.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) dados de impressão camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (dados)
Em seguida, fazemos algumas configurações com PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
E, por fim, temos um loop while (1) que será executado infinitamente. Ele lerá os dados do sensor de temperatura MLX90614 e se a temperatura ultrapassar o valor definido, a função capture_image () é chamada, a qual chama a função sendMail (dados) para enviar a captura da imagem por e-mail.
Medir a temperatura e enviar alerta de correio com PI
Quando o hardware e o software estiverem prontos, apenas execute o código Python (fornecido abaixo) em seu pi. Ele imprimirá o valor da temperatura lida do sensor, conforme mostrado abaixo.
Se a temperatura do objeto ultrapassar a temperatura limite, nosso programa python irá tirar uma imagem da câmera, salvá-la no raspberry pi e também compartilhá-la por e-mail. Um exemplo de e-mail enviado de raspberry Pi é mostrado abaixo.
O funcionamento completo do projeto também pode ser encontrado no vídeo no link abaixo. Espero que tenha gostado do artigo, se você tiver alguma dúvida deixe nos comentários abaixo ou você também pode usar nossos fóruns para postar suas dúvidas e entrar em contato com a comunidade.