- Componentes requeridos:
- Configuración de correo electrónico en Raspberry Pi para enviar correos electrónicos de alerta:
- Configuración del matraz en Raspberry Pi:
- Código HTML para página web:
- Contenedor inteligente con Raspberry Pi y sensor de peso
- Explicación del circuito:
- Explicación de trabajo:
Es posible que haya escuchado sobre Smart Refrigerator, que puede ordenar automáticamente los alimentos que se están agotando en el refrigerador, por lo que, inspirando, estamos construyendo un contenedor inteligente Raspberry Pi utilizando una celda de carga y un sensor de peso HX711. Este contenedor inteligente puede informarle sobre su estado, como si está lleno o vacío, enviando un correo a su ID de correo electrónico. También podemos monitorear el peso del contenedor en tiempo real usando un navegador web, y eso lo convierte en un proyecto de IoT donde puede monitorear su contenedor desde cualquier lugar usando Internet. Aquí, el peso del contenedor se actualizará cada 5 segundos en el navegador web, esta duración se puede cambiar fácilmente en un archivo de código HTML. Hemos establecido el valor de peso umbral de 300 gramos para enviar el correo electrónico sobre eso " El contenedor está lleno ”, este límite también se puede cambiar. Consulte el video al final de este tutorial.
Si no está familiarizado con la celda de carga y el módulo HX711, consulte nuestros proyectos anteriores, puerta automática con detección de peso basada en Raspberry Pi y medición de peso Arduino utilizando la celda de carga y el módulo HX711.
Componentes requeridos:
Aquí estamos usando Raspberry Pi 3 Raspbian Jessie 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 (cualquier modelo debería funcionar)
- Célula de carga
- Módulo amplificador de celda de carga HX711
- LCD de 16x2
- Fuente de energía o banco de energía
- Cables de conexión
- Tablero de circuitos
- Pernos de tuerca, marco y base
Aquí hemos adjuntado una base de madera con la celda de carga para mayor estabilidad, con la ayuda de tuercas y pernos, como se muestra a continuación. Obtenga más información sobre la celda de carga y el módulo sensor de peso HX711 aquí.
Configuración de correo electrónico en Raspberry Pi para enviar correos electrónicos de alerta:
Para enviar el correo desde Raspberry Pi, que contiene el estado de Contenedor (Lleno o vacío), necesitamos instalar un software. Aquí estamos usando ssmtp, que es una solución fácil y buena para enviar correo usando la línea de comando o usando Python Script. Necesitamos instalar dos bibliotecas para enviar correos usando SMTP:
Sudo apt-get install ssmtp sudo apt-get install mailutils
Después de instalar las bibliotecas, el usuario debe abrir el archivo ssmtp.conf y editar este archivo de configuración como se muestra en la imagen a continuación y luego guardar el archivo. Para guardar y salir del archivo, presione 'CTRL + x', luego 'y' y luego presione 'enter'.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
También podemos probarlo enviando un correo de prueba emitiendo el siguiente comando, recibirá el correo en la dirección de correo electrónico mencionada si todo funciona bien:
echo "Hola Saddam" - mail -s "Probando…" [email protected]
A continuación se muestra la instantánea de los correos electrónicos de alerta que obtuvimos durante nuestras pruebas.
Configuración del matraz en Raspberry Pi:
Aquí, hemos creado un servidor web, que proporciona una forma de enviar el valor de peso del contenedor desde Raspberry Pi a la red utilizando Flask en un navegador web. Flask nos permite ejecutar nuestros scripts de Python a través de una página web y podemos enviar y recibir datos desde Raspberry Pi al navegador web y viceversa. Flask es un microframework para Python. Esta herramienta está basada en Unicode y tiene un servidor de desarrollo y un depurador integrados, soporte para pruebas unitarias integradas, soporte para cookies seguras y es fácil de usar, estas cosas la hacen útil para los aficionados .
Instale un paquete de soporte de matraces en la Raspberry Pi usando el comando dado:
$ pip instalar Frasco
Entonces podemos usar el matraz simplemente importándolo en nuestro programa, como si hubiéramos importado los siguientes paquetes de matraces para este proyecto:
desde el matraz import Flask, render_template, request, jsonify
Puede obtener más información sobre la programación usando Flask aquí, también consulte nuestro proyecto anterior donde hemos usado Flask para enviar el mensaje desde la página web a Raspberry Pi.
Código HTML para página web:
También hemos creado una página web utilizando lenguaje HTML para mostrar el peso y el mensaje de alerta en el navegador web. Hemos utilizado un pequeño script jQuery para cargar la página (llamando a / show_weight) cada 5 segundos para que podamos obtener el valor del peso en tiempo real. A continuación se muestra el código HTML para la página web que incluye jQuery:
Resumen de circuitos
Contenedor inteligente con Raspberry Pi y sensor de peso
Peso del envase: 302 gramos
(Actualizando cada 5 segundos)¡¡¡Alerta!!!
El contenedor está lleno.
Correo electrónico enviado.
El usuario debe copiar y pegar el código HTML dado anteriormente en algún editor de texto (bloc de notas) y guardar el archivo con la extensión.HTML (web.html). Luego, coloque este archivo HTML en la carpeta / templates con respecto a la ubicación de su script de Python. Significa que necesita crear una carpeta llamada templates, donde ha puesto su archivo de código Python para este contenedor Raspberry Pi Smart, luego ponga el archivo web.html en esta carpeta de plantillas . Este paso es importante, de lo contrario nuestro proyecto no funcionará. Puede abrir directamente el archivo web.html haciendo doble clic en él para obtener la salida del código HTML y verá la página web como se muestra a continuación. Verifique más a fondo todo el proceso en el video de demostración al final. Una vez que hayamos terminado con la programación y todo, podemos ejecutar el código Python en Raspberry Pi y abrir IP_address_of_your_Pi: 5010 en el navegador web (como
La página web también mostrará un mensaje de ALERTA cuando el peso del contenedor supere los 300 gramos como se muestra a continuación:
Puede verificar la dirección IP de su Raspberry Pi usando el comando ifconfig :
ifconfig
Explicación del circuito:
Las conexiones para este contenedor inteligente de IoT son sencillas y, a continuación, se muestra un esquema. Los pines RS, EN, d4, d5, d6 y d7 del LCD de 16x2 están conectados con el pin GPIO número 18, 23, 24, 25, 8 y 7 de Raspberry Pi respectivamente y los pines DT y SCK del módulo HX711 están conectados directamente con el GPIO de Raspberry Pi pin 27 y 17. Las conexiones de la celda de carga con el módulo HX711 ya se explicaron anteriormente y también se muestran en el diagrama de circuito a continuación.
Explicación de trabajo:
Trabajar con este contenedor inteligente es fácil. En este proyecto, hemos utilizado Raspberry Pi 3 para controlar todo el proceso. La celda de carga detecta el peso del contenedor y suministra un voltaje analógico eléctrico al módulo amplificador de carga HX711. HX711 es un ADC de 24 bits, que amplifica y convierte la salida de la celda de carga en formato digital. Luego, este valor amplificado se alimenta a la Raspberry Pi. Ahora Raspberry Pi calcula la salida de HX711 y la convierte en el valor de peso.
Luego, este valor de peso se compara con el valor de umbral predefinido (300 gramos) usando el código Raspberry Pi y Python, si el peso del contenedor supera los 300 g, entonces Raspberry Pi envía un correo electrónico indicando que "Alerta de contenedor inteligente…. Contenedor lleno". Y si el peso permanece por debajo de los 300 g, Raspberry Pi envía un correo electrónico que indica "Alerta de contenedor inteligente… El contenedor está vacío".
El peso también se puede monitorear usando el navegador web, solo necesita abrir su dirección IP de Raspberry Pi con el puerto 5010 como http://192.168.1.100:5010 (reemplace la dirección IP con su dirección). Aquí hemos utilizado Flask para enviar los datos de Raspberry Pi a la página web a través de la red. Esta página se actualizará automáticamente cada 5 segundos y obtendremos datos actualizados, para esto hemos usado jQuery como se explicó anteriormente.
También se ha utilizado una pantalla LCD opcional de 16x2 para mostrar los mensajes de peso y estado.
El código completo de Python se proporciona a continuación, donde hemos escrito funciones para conducir LCD, para leer el valor de peso de la celda de carga, para mostrar datos en la página web, etc. Puede entenderlos fácilmente o si es un principiante, consulte nuestros Tutoriales anteriores de Raspberry Pi.