- Erforderliche Komponenten
- Schaltplan
- Kolbeneinrichtung in Raspberry Pi zur Steuerung des Garagentors
- Erstellen des Python-Skripts für den intelligenten Garagentoröffner
- HTML-Seite für Raspberry Pi Webserver erstellen
- {{pins.name}} {% wenn pins.state == true%} derzeit geöffnet ist
In Zeiten des Internet der Dinge (Internet of Things), in denen alles mit Ihrem Smartphone ferngesteuert werden kann, sollten Sie Schlüssel mitnehmen. Es gibt viele Technologien zur Unterstützung der drahtlosen Steuerung von Geräten wie RFID, Bluetooth, Wi-Fi und LoRa. Wir haben zuvor einige Türalarme und Türsteuerkreise gebaut, um die Tür drahtlos zu öffnen und zu schließen:
- Arduino RFID Türschloss
- Automatischer Türöffner mit Arduino
- Magnetischer Türalarmkreis mit Hallsensor
- IoT-basierter Türsicherheitsalarm, der von Google Assistant gesteuert wird
Hier in diesem Tutorial bauen wir einen intelligenten Garagentoröffner mit Raspberry Pi. Hier wird ein Raspberry Pi-Webserver erstellt, um das Garagentor mit Ihrem Smartphone zu öffnen und zu schließen.
Erforderliche Komponenten
- Himbeer-Pi-Board mit installiertem Raspbian
- Relaismodul
- Kabel anschließen
Es wird davon ausgegangen, dass Ihr Raspberry Pi bereits mit einem Betriebssystem geflasht ist und eine Verbindung zum Internet herstellen kann. Wenn nicht, befolgen Sie das Tutorial Erste Schritte mit Raspberry Pi, bevor Sie fortfahren. Hier verwenden wir Rasbian Jessie installiert Raspberry Pi 3.
Hier wird ein externer Monitor mit HDMI-Kabel als Anzeige für die Verbindung mit Raspberry Pi verwendet. Wenn Sie keinen Monitor haben, können Sie den SSH-Client (Putty) oder den VNC-Server verwenden, um über einen Laptop oder Computer eine Verbindung zu Raspberry pi herzustellen. Weitere Informationen zum kopflosen Einrichten von Raspberry Pi finden Sie hier.
Schaltplan
Verbinden Sie den Garagentoröffnungsmechanismus mit dem Ausgang des Relais. Hier haben wir gerade eine LED mit Relais zu Demonstrationszwecken angeschlossen.
Kolbeneinrichtung in Raspberry Pi zur Steuerung des Garagentors
Hier haben wir mit Flask einen Webserver erstellt, mit dem die Befehle von der Webseite an Raspberry Pi gesendet werden können, um den Roboter über das Netzwerk zu steuern. Mit Flask können wir unsere Python-Skripte über eine Webseite ausführen und Daten von Raspberry Pi an den Webbrowser senden und empfangen und umgekehrt. Flask ist ein Mikroframework für Python. Dieses Tool basiert auf Unicode und verfügt über einen integrierten Entwicklungsserver und Debugger, integrierte Unterstützung für Komponententests, Unterstützung für sichere Cookies und ist einfach zu bedienen. Diese Dinge machen es für den Bastler nützlich.
Führen Sie die folgenden Befehle aus, um die Flasche in Ihrem Raspberry Pi zu installieren:
sudo apt-get update sudo apt-get installiere python-pip python-flask
Führen Sie nun den Befehl pip aus, um Flask und seine Abhängigkeiten zu installieren:
Sudo Pip Einbaukolben
Weitere Informationen zur Programmierung mit Flask finden Sie hier. Überprüfen Sie auch unsere vorherigen Projekte, in denen wir Flask zur Steuerung des Roboters über den Webserver verwendet haben, senden Sie die Nachricht von der Webseite an Raspberry Pi und senden Sie den Gewichtswert an Raspberry Pi in Smart Container.
Jetzt schreiben wir ein Python-Skript für unseren Garagentor-Webserver.
Erstellen des Python-Skripts für den intelligenten Garagentoröffner
Dieses Skript interagiert mit unseren Raspberry Pi-GPIOs und richtet den Webserver ein. Dies ist also das Kernskript für unsere Anwendung. Das vollständige Python-Skript für den Türöffner finden Sie am Ende. Hier haben wir einige Teile davon erklärt.
Erstellen Sie zunächst einen Ordner. Alle anderen erforderlichen Ordner sollten sich nur in diesem Ordner befinden. Führen Sie die folgenden Befehle aus, um einen Ordner und die Python-Erstellungsdatei mit dem Namen app.py in diesem Ordner zu erstellen.
mkdir garage_door cd garage_door nano app.py.
Dies öffnet den Nano-Editor, in dem wir das Skript schreiben müssen.
Beginnen Sie mit der Aufnahme wichtiger Bibliotheken.
importiere RPi.GPIO als GPIO aus der Flasche importiere die Flasche, render_template, fordere app = Flask an (__ name__, static_url_path = '/ static')
Erstellen Sie nun ein Wörterbuch als Pins , um die Pin-Nummer, den Namen und den Pin-Status zu speichern. Sie können je nach Bedarf mehr als einen Stift verwenden.
pins = { 14: {'name': 'Garagentor', 'state': GPIO.LOW} }
Stellen Sie dann den Pin als Ausgang ein und stellen Sie ihn zunächst auf niedrig.
Für Pin in Pins: GPIO.setup (Pin, GPIO.OUT) GPIO.output (Pin, GPIO.LOW)
Erstellen Sie nun eine Hauptfunktion, um den Pin-Status zu lesen und diesen Status in einer Variablen zu speichern.
@ app.route ("/") def main (): für Pin in Pins: Pins = GPIO.input (Pin) ..
Wir müssen diese Daten an unsere HTML-Seite übergeben, damit wir den Status der Eingabeschaltfläche steuern können.
return render_template ('main.html', ** templateData)
Erstellen Sie jetzt eine Funktion, um die Anforderungen von der URL mit der PIN-Nummer und der darin enthaltenen Aktion zu verarbeiten.
@ app.route ("/
Konvertieren Sie die PIN von der URL in eine Ganzzahl.
changePin = int (changePin)
Wenn der Aktionsteil der URL "offen" ist, gehen Sie wie folgt vor.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Sie können das vollständige Skript am Ende dieses Tutorials kopieren und mit Strg + x speichern und dann die Eingabetaste drücken. Wir haben mit dem Python-Skript fertig. Jetzt müssen wir eine HTML-Seite erstellen, um mit dem Python-Skript zu interagieren.
HTML-Seite für Raspberry Pi Webserver erstellen
Erstellen Sie im selben Ordner garage_door einen anderen Ordner mit dem Namen templates und erstellen Sie in diesem Ordner eine HTML-Datei mit den folgenden Befehlen.
mkdir vorlagen cd vorlagen nano main.html
Im Nanotexteditor schreiben Sie den HTML - Code. Sie können die bearbeiten Teil der Seite und gestalten Sie es nach Ihrer Wahl. Ich habe gerade das CSS-Schema eines Drittanbieters mit dem Link-Tag verwendet. Der vollständige HTML-Code ist unten angegeben:
Garagentor Webserver
{% für Pin in Pins%}{{pins.name}} {% wenn pins.state == true%} derzeit geöffnet ist
Hier ist der wichtige Teil ist eine Schaltfläche zu erstellen, öffnen und schließen Sie die Tür und weisen einen Zustand zu öffnen und schließen Taste. Die Schaltfläche sendet und ruft den GPIO-Status aus dem Python-Skript ab.
Sie können den oben angegebenen HTML-Code im Editor verwenden und speichern. Jetzt kann der Webserver gestartet werden.
Öffnen Sie das Terminal, navigieren Sie zum Ordner garage_door und führen Sie den folgenden Befehl aus
sudo python app.py.
Öffnen Sie den Browser, geben Sie Ihre Himbeer-Pi-IP-Adresse ein und drücken Sie die Eingabetaste. Um Ihre IP-Adresse zu finden, können Sie den folgenden Befehl im Terminal ausführen.
Hostname -I
Sie sehen eine Seite wie diese.
Stellen Sie sicher, dass das Relaismodul an Himbeer-Pi angeschlossen ist. Drücken Sie Öffnen - Taste auf der Relais schalten oder die Garagentür zu öffnen. Sie können auch den Status des Relais anzeigen. Sobald Sie das Relais eingeschaltet haben, wird der Schaltflächentext geändert. Schließen , um das Relais auszuschalten. Wenn Sie nun erneut auf die Schaltfläche klicken, wird das Relais ausgeschaltet und der Schaltflächentext in Wieder öffnen geändert.
Um den Server zu stoppen, drücken Sie Strg + C.
Schließen Sie dieses Relais einfach an einen Türöffnermechanismus an, der auf dem Markt erhältlich ist, und steuern Sie das Garagentor mit dem Smartphone.
Ein Demonstrationsvideo ist unten angegeben.