- Componentes requeridos
- Diagrama de circuito
- Configuración del matraz en Raspberry Pi para controlar la puerta del garaje
- Creación de la secuencia de comandos de Python para el abre-puertas de garaje inteligente
- Creación de una página HTML para el servidor web Raspberry Pi
- {{pins.name}} {% if pins.state == true%} está abierto actualmente
En esta era de IoT (Internet de las cosas) donde todo se puede controlar de forma remota con su teléfono inteligente, ¿por qué llevar las llaves? Existen muchas tecnologías para admitir el control inalámbrico de dispositivos como RFID, Bluetooth, Wi-Fi, LoRa. Anteriormente construimos algunas alarmas de puertas y un circuito de control de puertas para abrir y cerrar la puerta de forma inalámbrica:
- Cerradura de puerta Arduino RFID
- Abridor de puerta automático usando Arduino
- Circuito de alarma de puerta magnética con sensor Hall
- Alarma de seguridad de puerta basada en IoT controlada por Google Assistant
Aquí, en este tutorial, crearemos un abridor de puerta de garaje inteligente con Raspberry Pi. Aquí se creará un servidor web Raspberry Pi para abrir y cerrar la puerta del garaje con su teléfono inteligente.
Componentes requeridos
- Placa Raspberry pi con Raspbian instalado
- Módulo de relé
- Conexión de cables
Se asume que su Raspberry Pi ya está flasheado con un sistema operativo y puede conectarse a Internet. De lo contrario, siga el tutorial Introducción a Raspberry Pi antes de continuar. Aquí estamos usando Rasbian Jessie instalado Raspberry Pi 3.
Aquí se utiliza un monitor externo con cable HDMI como pantalla para conectarse con Raspberry Pi. Si no tiene monitor, puede usar el cliente SSH (Putty) o el servidor VNC para conectarse a Raspberry pi usando una computadora portátil o computadora. Obtenga más información sobre cómo configurar Raspberry Pi sin cabeza aquí.
Diagrama de circuito
Conecte el mecanismo de apertura de la puerta del garaje a la salida del relé. Aquí acabamos de conectar un LED con relé para fines de demostración.
Configuración del matraz en Raspberry Pi para controlar la puerta del garaje
Aquí, hemos creado un servidor web usando Flask, que proporciona una forma de enviar los comandos desde la página web a Raspberry Pi para controlar el Robot a través de la red. 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 depurador y un servidor de desarrollo integrados, soporte para pruebas unitarias integradas, soporte para cookies seguras y es fácil de usar, estas cosas la hacen útil para el aficionado.
Ejecute los siguientes comandos para instalar el matraz en su Raspberry Pi:
sudo apt-get update sudo apt-get install python-pip python-flask
Ahora, ejecute el comando pip para instalar Flask y sus dependencias:
sudo pip instalar matraz
Puede aprender más sobre la programación usando Flask aquí, también verifique nuestros proyectos anteriores donde hemos usado Flask para controlar el robot a través del servidor web, enviar el mensaje desde la página web a Raspberry Pi y enviar el valor del peso a Raspberry Pi en Smart Container.
Ahora, escribiremos un script en Python para nuestro servidor web de puertas de garaje.
Creación de la secuencia de comandos de Python para el abre-puertas de garaje inteligente
Este script interactuará con nuestros GPIO de Raspberry Pi y configurará el servidor web. Entonces, este es el script principal de nuestra aplicación. El script de Python completo para el abridor de puertas se proporciona al final, aquí explicamos algunas partes.
Primero, crea una carpeta. Todas las demás carpetas requeridas deben estar solo en esta carpeta. Ejecute los siguientes comandos para crear la carpeta y crear el archivo python llamado app.py dentro de esta carpeta.
mkdir garage_door cd garage_door nano app.py
Esto abrirá el editor Nano donde tenemos que escribir el script.
Empiece por incluir bibliotecas importantes.
importar RPi.GPIO como GPIO desde el matraz import Flask, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Ahora, cree un diccionario como pines para almacenar el número, el nombre y el estado del pin. Puede utilizar más de un pin según su necesidad.
pins = { 14: {'nombre': 'Puerta de garaje', 'estado': GPIO.LOW} }
Luego, establezca el pin como salida y hágalo bajo inicialmente.
Para pin en pines: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Ahora, cree una función principal para leer el estado del pin y almacenar este estado en una variable.
@ app.route ("/") def main (): para pin en pines: pines = GPIO.input (pin) ..
Tenemos que pasar estos datos a nuestra página html para que podamos controlar el estado del botón de entrada.
return render_template ('main.html', ** templateData)
Ahora, cree una función para manejar las solicitudes de la URL con el número de pin y la acción en ella.
@ app.route ("/
Convierta el pin de la URL en un número entero.
changePin = int (changePin)
Si la parte de acción de la URL está "abierta", haga lo siguiente.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Puede copiar el script completo del final de este tutorial y guardarlo usando ctrl + x y luego presione enter. Hemos terminado con el script de Python. Ahora, tenemos que hacer una página HTML para interactuar con el script de Python.
Creación de una página HTML para el servidor web Raspberry Pi
En la misma carpeta garage_door , cree otra carpeta llamada templates y dentro de esta carpeta cree un archivo.html usando los siguientes comandos.
plantillas mkdir plantillas de cd nano main.html
En el editor de texto nano , escriba el código html. Puede editar el parte de la página y ajústela según su elección. Acabo de usar el esquema CSS de terceros usando la etiqueta de enlace. El código HTML completo se proporciona a continuación:
Servidor web de puerta de garaje
{% for pin in pins%}{{pins.name}} {% if pins.state == true%} está abierto actualmente
Aquí lo importante es crear un botón para abrir y cerrar la puerta y asignar un estado al botón de apertura y cierre . El botón enviará y obtendrá el estado GPIO del script de Python.
Puede utilizar el código HTML proporcionado anteriormente en el editor y guardarlo. Ahora el servidor web está listo para iniciarse.
Abra la terminal y navegue a la carpeta garage_door y ejecute el siguiente comando
sudo python app.py
Abra el navegador e ingrese su dirección IP de raspberry pi y presione enter. Para encontrar su dirección IP, puede ejecutar el siguiente comando en la terminal.
nombre de host -I
Verá una página como esta.
Asegúrese de que el módulo de relés esté conectado a raspberry pi. Presione el botón Abrir para encender el relé o para abrir la puerta del garaje. También puede ver el estado del relé. Tan pronto como encienda el relé, el texto del botón se cambiará Cerrar para apagar el relé. Ahora, cuando vuelva a hacer clic en el botón, el relé se apagará y el texto del botón cambiará a Abrir nuevamente.
Para detener el servidor presione ctrl + c.
Así que simplemente conecte este relé a algún mecanismo de apertura de puerta, que está disponible en el mercado, y comience a controlar la puerta del garaje con un teléfono inteligente.
A continuación se muestra un video de demostración.