- Componentes requeridos
- Interfaz MLX90614 con Raspberry Pi
- Interfaz de la cámara Pi con Raspberry Pi
- Configuración de correo electrónico SMTP con Raspberry Pi
- Código Python para Pi para leer la temperatura de MLX90614 y enviar un correo electrónico con una imagen
- Medición de temperatura y envío de alertas por correo con PI
Desde el brote de corona, se ha vuelto muy difícil identificar a quienes están afectados por el virus o no. Para resolver este problema, a menudo se utilizan dispositivos de temperatura para medir la temperatura corporal. Estos dispositivos tienen sensores de temperatura IR sin contacto que pueden medir la temperatura corporal sin ningún contacto físico.
Hay muchas pistolas de temperatura disponibles en el mercado, pero ninguna de ellas envía una alerta o notificación por correo electrónico a las autoridades superiores para que tomen las medidas adecuadas cuando la temperatura supera un límite en particular. En este proyecto, conectaremos un sensor de temperatura IR y enviaremos las alertas por correo electrónico con la imagen de la persona si la temperatura de alguna persona en particular excede el valor establecido.
En el mundo actual, Internet de las cosas está revolucionando nuestra vida al desarrollar una serie de sistemas que se pueden monitorear y controlar de forma remota. En este proyecto, aprovecharemos el poder de IoT y construiremos un dispositivo de monitoreo de temperatura con alertas por correo electrónico utilizando Raspberry Pi, MLX90614 y PiCamera.
Anteriormente también hemos construido otros termómetros similares para medir la temperatura corporal, puedes encontrarlos aquí.
- Termómetro digital basado en Arduino usando MAX30205
- Detección de temperatura corporal sin contacto mediante RFID y Arduino con MLX90614
- Pistola de termómetro infrarrojo sin contacto con Arduino
- Termómetro sin contacto de montaje en pared con Arduino
- Termómetro inteligente usando Arduino con la aplicación de Android
Componentes requeridos
Aquí estamos usando Raspberry Pi 3 Raspbian OS. Todos los requisitos básicos de hardware y software se discutieron anteriormente, puede buscarlos en la Introducción de Raspberry Pi y el Parpadeo del LED de Raspberry PI para comenzar, aparte de eso, necesitamos:
- Raspberry Pi 3 (cualquier versión estaría bien).
- Cámara Pi.
- MLX90614 - Sensor de temperatura IR.
- Conexión de cables.
- Tablero de circuitos.
- Fuente de alimentación (5V, 2A / 3A)
Este proyecto es simple si dividimos el proyecto en partes.
- Comprensión e interfaz de MLX90614 con Raspberry pi.
- Empezando con Pi Camera.
- Configuración de correo electrónico SMTP con Raspberry pi.
- Desarrollo y comprensión del código final.
Raspberry Pi: Raspberry Pi es una computadora del tamaño de una tarjeta de crédito que fue diseñada con fines educativos. Debido a su precio y especificaciones asombrosas como wifi integrado, Bluetooth y encabezado GPIO programable, y la cantidad de opciones posibles para crear una aplicación, fue adoptado por desarrolladores y aficionados a la electrónica. Puede buscarlo en la Introducción de Raspberry Pi y el Parpadeo de LED de Raspberry PI para comenzar con el proceso de arranque.
Sensor de temperatura IR MLX90614: Hay muchos sensores disponibles en el mercado que pueden darnos temperatura y humedad. Lo que hace que este sensor sea diferente de todos los demás sensores es que puede darnos la temperatura del objeto y otros sensores dan la temperatura ambiente. Hemos utilizado el sensor DHT11 y el LM35 ampliamente para muchas aplicaciones en las que se debe medir la temperatura o la humedad atmosférica.
Pero aquí para hacer una pistola de temperatura que no necesita contacto físico y puede medir la temperatura del objeto en lugar de la temperatura ambiente, usamos MLX90614 basado en IR. Para obtener más información sobre los circuitos de sensores de infrarrojos e infrarrojos, siga el enlace.
El sensor MLX90614 es fabricado por Melexis Microelectronics Integrated Systems, funciona según el principio del sensor de termopila infrarroja para la medición de temperatura. Estos sensores constan de dos unidades integradas internamente para dar la salida de temperatura. La primera unidad es la unidad de detección que tiene un detector de infrarrojos que es seguida por la segunda unidad que realiza el cálculo de los datos con procesamiento de señales digitales (DSP). Este sensor funciona según la ley de Stefan-Boltzmann que explica la potencia irradiada por un cuerpo negro en términos de su temperatura. En términos simples, cualquier objeto emite energía IR y su intensidad será directamente proporcional a la temperatura de ese objeto. El sensor MLX90614 convierte el valor computacional en ADC de 17 bitsy al que se puede acceder mediante el protocolo de comunicación I2C. Estos sensores miden la temperatura ambiente y la temperatura del objeto con la calibración de resolución de 0.02 ° C. Para saber más sobre las características del sensor MLX90614, consulte la hoja de datos MLX90614.
Características de MLX90614:
- Voltaje de funcionamiento: 3,6 V a 5 V
- Rango de temperatura ambiente: -40 ° C a 125 ° C
- Rango de temperatura del objeto: -70 ° C a -382,2 ° C
- Resolución / Calibración: 0.02 ° C
- ADC de 17 bits.
- Comunicación I2C.
Interfaz MLX90614 con Raspberry Pi
Primero, descargaremos la biblioteca y los paquetes necesarios para conectar correctamente el MLX90614.
Paso 1: Habilitar el I2C de la configuración de Raspberry Pi.
Escriba sudo raspi-config y luego vaya a las opciones de interfaz.
Vaya a la opción I2C y habilítela.
Paso 2: descargue el paquete / biblioteca de MLX90614 yendo a https://pypi.org/project/PyMLX90614/#files, luego haga clic derecho y copie la dirección del enlace.
Vaya a la terminal RPI y escriba wget y pegue el enlace copiado como se muestra a continuación.
Wget
Descargará la biblioteca con el nombre de archivo zip 'PyMLX90614-0.0.3.tar.gz' . luego extraiga la carpeta con la extensión de nombre de archivo tar -xf o use el siguiente comando para hacer lo mismo.
tar -xf PyMLX90614-0.0.3.tar.gz
Luego, necesitamos instalar algunos paquetes requeridos usando los siguientes comandos.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Luego vaya a la carpeta extraída usando cd PyMLX90614-0.0.3 / y ejecute el comando.
sudo python setup.py instalar
Una vez que haya terminado de seguir los pasos, simplemente conecte el sensor MLX90614 con Raspberry pi utilizando el circuito que se indica a continuación. El siguiente circuito Raspberry Pi MLX90614 fue diseñado usando fritzing.
Si las conexiones y la instalación se realizan correctamente, podemos verificar si obtenemos el valor de la dirección del sensor en el bus I2C usando el comando i2cdetect -y 1 .
Si todo funciona como se esperaba, podemos ver la siguiente salida en nuestro terminal.
0x5A representa la dirección del sensor como se menciona en la hoja de datos. El fragmento de la hoja de datos que muestra lo mismo se muestra a continuación.
Ahora, ejecutaremos crear un nuevo nombre de archivo mlxread.py y escribiremos un programa de muestra para verificar los datos del sensor. El código para el mismo se da a continuación.
desde smbus2 importar SMBus desde mlx90614 importar MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, dirección = 0x5A) imprimir "Temperatura ambiente:", sensor.get_ambient () imprimir "Temperatura del objeto:", sensor.get_object_1 () bus. cerca()
Una vez creado el archivo, lo ejecutaremos con la extensión python python mlxread.py. La salida que recibí se muestra a continuación. Ejecuté el programa varias veces para comprobar si los valores cambian al mover la mano sobre él.
Vaya, hemos interconectado con éxito MLX90614 con nuestra Raspberry Pi, como puede confirmar en la imagen de arriba.
Interfaz de la cámara Pi con Raspberry Pi
Paso 1: Habilitar la cámara desde la configuración de Raspberry Pi.
Escriba sudo raspi-config y luego vaya a las opciones de interfaz.
Vaya a Cámara y habilite la cámara.
Ahora, conecte el módulo de la cámara como se muestra a continuación.
Paso 2: Para verificar si la cámara está conectada correctamente, tomamos una imagen de prueba y la guardamos en nuestro escritorio (estamos usando la versión completa de GUI Raspbian OS)
raspistill -o Escritorio / image.jpg
Esto permitirá que su cámara haga clic en una imagen con el nombre de la imagen y la almacene en su escritorio.
Configuración de correo electrónico SMTP con Raspberry Pi
En esta sección, entenderemos cómo podemos configurar nuestra cuenta de GMAIL para enviar correos electrónicos de alerta una vez que la temperatura exceda el valor establecido predefinido.
SMTP es un protocolo simple de transferencia de correo que es un protocolo de capa de aplicación responsable del servicio de correo electrónico mediante TCP / IP. Proporciona la capacidad de enviar y recibir mensajes de correo electrónico y es administrado por el Grupo de trabajo de ingeniería de Internet (IETF).
Este tutorial solo funciona con cuentas de GMAIL y, para evitar posibles errores, se recomienda que utilice una nueva cuenta de Gmail.
De forma predeterminada, Google no permite que los usuarios envíen correos electrónicos mediante un script de Python. Para que esto funcione, tenemos que habilitar algunas aplicaciones menos seguras yendo a la configuración de la cuenta.
Paso 1: Vaya a la esquina derecha y haga clic en mi Administrar su cuenta de Google.
Paso 2: Haga clic en Seguridad y desplácese hacia abajo hasta "Acceso a aplicaciones menos seguras".
Paso 3: habilite la aplicación menos segura.
Paso 4: Repita con la otra identificación de correo electrónico también para enviar / recibir el correo electrónico desde el script de Python.
Paso 5: descargue los paquetes necesarios.
sudo apt-get install ssmtp sudo apt-get instalar mailutils
Si obtiene un error al ejecutar el comando copiando y pegando, escríbalo manualmente.
Paso 6: Después de que se realiza la instalación de todas las bibliotecas, necesitamos hacer cambios en el archivo ssmtp.conf donde tenemos que ingresar los detalles del correo electrónico del remitente
Vaya a sudo nano /etc/ssmtp/ssmtp.conf
Desplácese hacia abajo hasta el final y pegue esto, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
También he compartido una captura de pantalla de mis terminales para su referencia.
Acabo de usar una placa de pruebas para hacer mi conexión, mi configuración de hardware se parece a la de él cuando el MLX90614 y la cámara están conectados.
Código Python para Pi para leer la temperatura de MLX90614 y enviar un correo electrónico con una imagen
El programa Python realiza todas las operaciones necesarias para leer los datos del sensor, compararlos con el valor umbral, autorizar el correo electrónico y luego enviar el correo electrónico con la imagen adjunta. Al principio, necesitaremos una declaración de correo electrónico de bibliotecas, remitente y destinatario. El correo electrónico se puede enviar por smtplib, pero solo queremos que el correo electrónico esté organizado con un asunto, cuerpo y otro archivo adjunto, esto se hace con la ayuda de Extensiones de correo de Internet multipropósito (MIME). El código completo se puede encontrar al final de esta página.
importar RPi.GPIO como gpio importar picamera importar tiempo importar smtplib desde correo electrónico.MIMEMultipart importar MIMEMultipart desde correo electrónico.MIMEText importar MIMEText desde correo electrónico.MIMEBase importar MIMEBase desde codificadores de importación de correo electrónico.mime.imagen importar MIMEImagen de smbus2 importar SMBus de MLX90614
Después de eso, definimos la dirección de correo electrónico del remitente, la dirección de correo electrónico del destinatario, el asunto del correo electrónico, el cuerpo y el mensaje adjunto.
fromaddr = "[email protected]" # cambie la dirección de correo electrónico en consecuencia toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "El valor de temperatura excede la alerta" body = "Por favor, busque el adjunto imagen"
Luego, creamos una función mediante la cual podemos enviar un correo electrónico.
def sendMail (datos): mail.attach (MIMEText (cuerpo, 'plano')) imprimir datos dat = '% s.jpg'% datos imprimir dat adjunto = abrir (dat, 'rb') imagen = MIMEImage (adjunto.read ()) adjunto.close () mail.attach (imagen) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Luego, creamos una función para capturar la imagen que se envía por correo electrónico y también almacena la imagen con datos y tiempo.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) imprimir datos camera.capture ('% s. jpg '% datos) camera.stop_preview () time.sleep (1) sendMail (datos)
Luego, realizamos algunos ajustes con PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Y por último, tenemos un ciclo while (1) que se ejecutará infinitamente. Leerá los datos del sensor de temperatura MLX90614 y si la temperatura excede el valor establecido, entonces se llama a la función capture_image () que luego llama a la función sendMail (datos) para enviar la captura de imagen por correo electrónico.
Medición de temperatura y envío de alertas por correo con PI
Cuando el hardware y el software estén listos, simplemente ejecute el código Python (proporcione a continuación) en su pi. Imprimirá el valor de temperatura leído por el sensor como se muestra a continuación.
Si la temperatura del objeto excede el umbral de temperatura, entonces nuestro programa Python tomará una imagen de la cámara, la guardará en raspberry pi y también la compartirá por correo electrónico. A continuación, se muestra un ejemplo de correo electrónico enviado desde Raspberry Pi.
El funcionamiento completo del proyecto también se puede encontrar en el video vinculado a continuación. Espero que haya disfrutado del artículo, si tiene alguna pregunta, déjela en los comentarios a continuación o también puede usar nuestros foros para publicar sus preguntas y ponerse en contacto con la comunidad.