- Componenti richiesti
- Schema elettrico
- Configurazione del pallone in Raspberry Pi per il controllo della porta del garage
- Creazione dello script Python per Smart Garage Door Opener
- Creazione di una pagina HTML per il server Web Raspberry Pi
- {{pins.name}} {% if pins.state == true%} è attualmente aperto
In questa epoca dell'IoT (Internet of Things) dove tutto può essere controllato da remoto utilizzando il tuo smartphone, perché portare le chiavi con te. Esistono molte tecnologie per supportare il controllo wireless di dispositivi come RFID, Bluetooth, Wi-Fi, LoRa. In precedenza abbiamo costruito alcuni allarmi e circuiti di controllo delle porte per aprire e chiudere la porta in modalità wireless:
- Serratura per porta RFID Arduino
- Apriporta automatico utilizzando Arduino
- Circuito di allarme porta magnetico con sensore Hall
- Allarme di sicurezza per porte basato su IoT controllato da Google Assistant
Qui in questo tutorial costruiremo un apriporta per garage intelligente utilizzando Raspberry Pi. Qui verrà creato un web server Raspberry Pi per aprire e chiudere la porta del garage utilizzando il tuo smartphone.
Componenti richiesti
- Scheda Raspberry Pi con Raspbian installato al suo interno
- Modulo relè
- Collegamento dei cavi
Si presume che il tuo Raspberry Pi sia già dotato di un sistema operativo e sia in grado di connettersi a Internet. In caso contrario, segui il tutorial Introduzione a Raspberry Pi prima di procedere. Qui stiamo usando Rasbian Jessie installato Raspberry Pi 3.
Qui il monitor esterno che utilizza il cavo HDMI viene utilizzato come display per connettersi con Raspberry Pi. Se non disponi di un monitor, puoi utilizzare il client SSH (Putty) o il server VNC per connetterti a Raspberry pi utilizzando laptop o computer. Scopri di più sulla configurazione di Raspberry Pi senza testa qui.
Schema elettrico
Collegare il meccanismo di apertura della porta del garage all'uscita del relè. Qui abbiamo appena collegato un LED con relè a scopo dimostrativo.
Configurazione del pallone in Raspberry Pi per il controllo della porta del garage
Qui, abbiamo creato un server Web utilizzando Flask, che fornisce un modo per inviare i comandi dalla pagina Web a Raspberry Pi per controllare il Robot sulla rete. Flask ci consente di eseguire i nostri script Python attraverso una pagina Web e possiamo inviare e ricevere dati da Raspberry Pi al browser Web e viceversa. Flask è un microframework per Python. Questo strumento è basato su Unicode con server di sviluppo e debugger integrati, supporto per unit test integrato, supporto per cookie sicuri ed è facile da usare, queste cose lo rendono utile per l'hobbista.
Esegui i seguenti comandi per installare il pallone nel tuo Raspberry Pi:
sudo apt-get aggiornamento sudo apt-get install python-pip python-flask
Ora, esegui il comando pip per installare Flask e le sue dipendenze:
sudo pip install flask
Puoi saperne di più sulla programmazione utilizzando Flask qui, controllare anche i nostri progetti precedenti in cui abbiamo utilizzato Flask per controllare il robot tramite il server web, inviare il messaggio dalla pagina Web a Raspberry Pi e inviare il valore del peso a Raspberry Pi in Smart Container.
Ora scriveremo uno script python per il nostro server web della porta del garage.
Creazione dello script Python per Smart Garage Door Opener
Questo script interagirà con i nostri GPIO Raspberry Pi e configurerà il server web. Quindi, questo è lo script principale per la nostra applicazione. Alla fine viene fornito lo script completo Python per apriporta, qui ne abbiamo spiegato alcune parti.
Per prima cosa, crea una cartella. Tutte le altre cartelle richieste dovrebbero essere solo in questa cartella. Esegui i seguenti comandi per creare la cartella e creare il file python denominato app.py all'interno di questa cartella.
mkdir garage_door cd garage_door nano app.py
Questo aprirà l'editor Nano in cui dobbiamo scrivere lo script.
Inizia includendo importanti biblioteche.
importa RPi.GPIO come GPIO da flask importa Flask, render_template, richiesta app = Flask (__ name__, static_url_path = '/ static')
Ora, crea un dizionario come pin per memorizzare il numero, il nome e lo stato del pin. Puoi usare più di un pin in base alle tue necessità.
pins = { 14: {'name': 'Garage Door', 'state': GPIO.LOW} }
Quindi, imposta il pin come output e rendilo inizialmente basso.
Per pin in pin: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Ora, crea una funzione principale per leggere lo stato del pin e memorizzare questo stato in una variabile.
@ app.route ("/") def main (): per pin nei pin: pins = GPIO.input (pin) ..
Dobbiamo passare questi dati alla nostra pagina html in modo da poter controllare lo stato del pulsante di input.
return render_template ('main.html', ** templateData)
Ora, crea una funzione per gestire le richieste dall'URL con il numero di pin e l'azione in esso.
@ app.route ("/
Converti il pin dall'URL in un numero intero.
changePin = int (changePin)
Se la parte relativa all'azione dell'URL è "open", procedi come segue.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Puoi copiare lo script completo dalla fine di questo tutorial e salvarlo usando ctrl + x e poi premere invio. Abbiamo finito con lo script python. Ora dobbiamo creare una pagina HTML per interagire con lo script python.
Creazione di una pagina HTML per il server Web Raspberry Pi
Nella stessa cartella garage_door , crea un'altra cartella denominata templates e all'interno di questa cartella crea un file.html usando i comandi seguenti.
modelli mkdir modelli cd nano main.html
Nell'editor di testo nano , scrivi il codice html. Puoi modificare il file parte della pagina e modellala secondo la tua scelta. Ho appena usato lo schema CSS di terze parti utilizzando il tag di collegamento. Di seguito viene fornito il codice HTML completo:
Server Web Garage Door
{% for pin in pin%}{{pins.name}} {% if pins.state == true%} è attualmente aperto
Qui la parte importante è creare un pulsante per aprire e chiudere la porta e assegnare uno stato al pulsante di apertura e chiusura . Il pulsante invierà e recupererà lo stato GPIO dallo script python.
È possibile utilizzare il codice HTML indicato sopra nell'editor e salvarlo. Ora il server web è pronto per essere avviato.
Apri il terminale e vai alla cartella garage_door ed esegui il comando seguente
sudo python app.py
Apri il browser e inserisci il tuo indirizzo IP raspberry pi e premi invio. Per trovare il tuo indirizzo IP puoi eseguire il comando seguente nel terminale.
nome host -I
Vedrai una pagina come questa.
Assicurati che il modulo relè sia collegato a Raspberry Pi. Premere il pulsante Apri per accendere il relè o per aprire la porta del garage. Puoi anche vedere lo stato del relè. Non appena si accende il relè, il testo del pulsante verrà modificato Chiudi per disattivare il relè. Ora, quando si fa di nuovo clic sul pulsante, il relè verrà disattivato e il testo del pulsante verrà nuovamente modificato in Apri .
Per arrestare il server premere ctrl + c.
Quindi basta collegare questo relè ad alcuni meccanismi di apriporta, che sono prontamente disponibili sul mercato, e iniziare a controllare la porta del garage utilizzando lo smartphone.
Di seguito viene fornito un video dimostrativo.