- Components necessaris
- Esquema de connexions
- Configuració de matràs a Raspberry Pi per controlar la porta del garatge
- Creació de l’escriptura Python per a l’obridor de portes de garatge intel·ligent
- Creació d'una pàgina HTML per al servidor web Raspberry Pi
- {{pins.name}} {% si pins.state == true%} està actualment obert
En aquesta època de l’IoT (Internet de les coses), on tot es pot controlar remotament mitjançant el telèfon intel·ligent, per què portar les claus amb vosaltres. Hi ha moltes tecnologies per donar suport al control sense fils de dispositius com RFID, Bluetooth, Wi-Fi, LoRa. Anteriorment, vam crear algunes alarmes de la porta i un circuit de control de la porta per obrir i tancar la porta sense fils:
- Pany de porta RFID Arduino
- Obridor automàtic de portes amb Arduino
- Circuit d'alarma de porta magnètica mitjançant sensor Hall
- Alarma de seguretat de porta basada en l'IoT controlada per l'Assistent de Google
Aquí, en aquest tutorial, construirem un obridor de portes de garatge intel·ligent amb Raspberry Pi. Aquí es crearà un servidor web Raspberry Pi per obrir i tancar la porta del garatge mitjançant el telèfon intel·ligent.
Components necessaris
- Taula Raspberry pi amb Raspbian instal·lat
- Mòdul de relés
- Connexió de cables
Se suposa que el vostre Raspberry Pi ja està llampat amb un sistema operatiu i es pot connectar a Internet. Si no, seguiu el tutorial Introducció a Raspberry Pi abans de continuar. Aquí estem utilitzant Rasbian Jessie instal·lat Raspberry Pi 3.
Aquí el monitor extern que utilitza un cable HDMI s’utilitza com a pantalla per connectar-se amb Raspberry Pi. Si no teniu monitor, podeu utilitzar el client SSH (Putty) o el servidor VNC per connectar-vos a Raspberry pi mitjançant un ordinador portàtil o un ordinador. Obteniu més informació sobre com configurar Raspberry Pi sense cap cap aquí.
Esquema de connexions

Connecteu el mecanisme d'obertura de la porta del garatge a la sortida del relé. Aquí acabem de connectar un LED amb relé amb finalitats de demostració.

Configuració de matràs a Raspberry Pi per controlar la porta del garatge
Aquí hem creat un servidor web mitjançant Flask, que proporciona una manera d’ enviar les ordres des de la pàgina web a Raspberry Pi per controlar el robot a la xarxa. Flask ens permet executar els nostres scripts python a través d’una pàgina web i podem enviar i rebre dades de Raspberry Pi al navegador web i viceversa. Flask és un microframework per a Python. Aquesta eina està basada en Unicode i té un servidor i un depurador de desenvolupament integrats, suport integrat per a proves d’unitats, suport per a cookies segures i fàcil d’utilitzar; aquestes coses el fan útil per a l’aficionat.
Executeu les ordres següents per instal·lar el matràs al vostre Raspberry Pi:
sudo apt-get update sudo apt-get install python-pip python-flask
Ara, executeu l'ordre pip per instal·lar Flask i les seves dependències:
matràs d'instal·lació sudo pip

Podeu obtenir més informació sobre la programació mitjançant Flask aquí, consultar també els nostres projectes anteriors en què hem utilitzat Flask per controlar el robot a través del servidor web, enviar el missatge de la pàgina web a Raspberry Pi i enviar valor de pes a Raspberry Pi a Smart Container.
Ara escriurem un script Python per al nostre servidor web de porta de garatge.
Creació de l’escriptura Python per a l’obridor de portes de garatge intel·ligent
Aquest script interactuarà amb els nostres GPIO de Raspberry Pi i configurarà el servidor web. Per tant, aquest és el guió bàsic de la nostra aplicació. El script complet de Python per a l'obertura de portes es dóna al final, aquí n'hem explicat poques parts.
En primer lloc, feu una carpeta. La resta de carpetes necessàries només haurien d’estar en aquesta carpeta. Executeu a continuació les ordres per crear una carpeta i el fitxer create python anomenat app.py dins d'aquesta carpeta.
mkdir garage_door cd garage_door nano app.py
Això obrirà l'editor Nano on haurem d'escriure el guió.
Comenceu per incloure biblioteques importants.
importar RPi.GPIO com a GPIO des del flascó importar Flask, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Ara, creeu un diccionari com a pins per emmagatzemar el número de pin, el nom i l'estat del pin. Podeu utilitzar més d'un pin segons les vostres necessitats.
pins = { 14: {'name': 'Porta del garatge', 'state': GPIO.LOW} }
A continuació, configureu el pin com a sortida i baixeu-lo inicialment.
Per a pin a pins: GPIO.setup (pin, GPIO.OUT) sortida GPIO. (pin, GPIO.LOW)
Ara, feu una funció principal per llegir l’estat del pin i emmagatzemar-lo en una variable.
@ app.route ("/") def main (): per pin en pins: pins = GPIO.input (pin) ..
Hem de passar aquestes dades a la nostra pàgina html perquè puguem controlar l’estat del botó d’entrada.
return render_template ('main.html', ** templateData)
Ara, feu una funció per gestionar les sol·licituds de l'URL amb el número de PIN i l'acció.
@ app.route ("/
Convertiu el PIN de l'URL en un enter.
changePin = int (changePin)
Si la part d'acció de l'URL està "oberta", feu el següent.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Podeu copiar l'script complet del final d'aquest tutorial i desar-lo amb ctrl + x i, a continuació, premeu Retorn. Ho hem fet amb l'script python. Ara hem de crear una pàgina HTML per interactuar amb l’escriptura python.
Creació d'una pàgina HTML per al servidor web Raspberry Pi
A la mateixa carpeta garage_door , creeu una altra carpeta anomenada plantilles i dins d’aquesta carpeta feu un fitxer.html mitjançant les ordres següents.
mkdir templates cd templates nano main.html

A l’ editor de text nano , escriviu el codi html. Podeu editar el fitxer part de la pàgina i estileu-la segons la vostra elecció. Acabo d'utilitzar l'esquema CSS de tercers mitjançant l'etiqueta d'enllaç. A continuació es dóna el codi HTML complet:
Servidor web Garage Door
{% per al pin als pins%}{{pins.name}} {% si pins.state == true%} està actualment obert
Aquí la part important és crear un botó per obrir i tancar la porta i assignar un estat per obrir i tancar el botó. El botó enviarà i recuperarà l’estat GPIO des de l’escriptura python.
Podeu utilitzar el codi HTML indicat anteriorment a l’editor i desar-lo. Ara el servidor web està llest per iniciar-se.
Obriu el terminal i aneu a la carpeta garage_door i executeu l'ordre següent
sudo python app.py

Obriu el navegador i introduïu la vostra adreça IP de raspberry pi i premeu Intro. Per trobar la vostra adreça IP, podeu executar l'ordre següent al terminal.
nom d'amfitrió -I
Veureu una pàgina com aquesta.

Assegureu-vos que el mòdul de relé estigui connectat a raspberry pi. Premeu el botó Obre per activar el relé o per obrir la porta del garatge. També podeu veure l’estat del relé. Tan bon punt activeu el relé, es canviarà el text del botó Tanca per apagar el relé. Ara, quan torneu a fer clic al botó, el relé es desactivarà i el text del botó es tornarà a Obrir .
Per aturar el servidor, premeu ctrl + c.
Per tant, només cal connectar aquest relé a algun mecanisme d’obertura de portes, que està disponible al mercat, i començar a controlar la porta del garatge mitjançant un telèfon intel·ligent.
A continuació es mostra un vídeo de demostració.
