In diesem Artikel werden Ihnen angezeigt. Der Artikel enthält eine Web -App, auf die Sie von jedem Gerät in Ihrem Netzwerk von allen AC -Haushaltsgeräten in Ihrem Heimathause steuern können. Lassen Sie uns also mit unserem einfachen Himbeer Pi -Heimautomationsexperiment beginnen.
Dinge, die Sie brauchen werden
Wenn Sie Ihren Raspberry Pi Headless (über SSH oder VNC) verwenden möchten, benötigen Sie die folgenden Dinge:
1) Raspberry Pi 3 oder Raspberry Pi 4.
2) 5V Relaisschalter.
3) Elektrikdrähte.
4) 3 weibliche Verbindungsdrähte von Frauen zu Frauen.
5) AC -Glühbirne.
6) AC -Glühbirnenhalter.
7) AC -Stecker.
8) Wircutter und Stripper -Werkzeug.
9) CR-V 3 Schraubendreher.
10) Micro-USB (Raspberry PI 3) oder USB Typ-C (Raspberry Pi 4) Stromadapter.
11) 16 GB oder 32 GB MicroSD -Karte mit Raspberry Pi OS blinkt.
12) Netzwerkkonnektivität auf Raspberry Pi.
13) Laptop oder ein Desktop -Computer für VNC Remote -Desktop -Zugriff oder SSH -Zugriff auf Raspberry PI.
Wenn Sie nicht über SSH oder VNC remote auf Raspberry Pi zugreifen möchten, benötigen Sie auch Folgendes:
14) Ein Monitor.
15) HDMI- oder Micro-HDMI-Kabel.
16) eine Tastatur.
17) eine Maus.
Wenn Sie Unterstützung beim Flashen des Raspberry Pi OS -Bildes auf die microSD -Karte benötigen, lesen Sie den Artikel zum Installieren und verwenden.
Wenn Sie ein Raspberry PI -Anfänger sind und Unterstützung bei der Installation von Raspberry Pi OS unter Raspberry Pi benötigen, lesen Sie den Artikel, wie Sie Raspberry Pi OS unter Raspberry Pi 4 installieren.
Wenn Sie Unterstützung bei der kopierlosen Einrichtung von Raspberry Pi benötigen.
Bilder aller erforderlichen Tools sind unten angegeben.
Raspberry Pi einschalten
Schließen Sie das Stromkabel als nächstes an Himbeer -PI und Strom auf Raspberry Pi an.
Sobald Raspberry Pi eingeschaltet ist, können Sie über VNC oder SSH eine Verbindung zu Raspberry Pi herstellen. Oder Sie können eine Tastatur, eine Maus und einen Monitor an Raspberry Pi anschließen, um direkt darauf zuzugreifen.
5V Relais Pinouts
Ein Relais ist im Grunde ein Schalter. Im Gegensatz zu einem herkömmlichen Schalter kann jedoch ein Relais durch eine kleine Menge DC -Spannung gesteuert werden.
Das 5 -V -Relais ist sehr einfach zu bedienen. Es hat zwei Seiten: Eine Seite wird verwendet, um das Relais über DC mit niedriger Spannung (aus Himbeer-Pi) zu steuern, und die andere Seite wird verwendet, um den Hochspannungs-AC (i) zu steuern (i.e., die Glühbirne), abhängig vom Zustand des Relais.
Auf der einen Seite hat das Relais zwei LEDs (ein rot und ein Grün) und drei Stifte (Stifte (In, GND, Und VCC). Diese drei Stifte werden verwendet, um das Relais von Raspberry Pi zu steuern.
Die ersten beiden Stifte auf der anderen Seite werden verwendet, um das AC -Hausgerät zu steuern.
Verbinden Sie das 5 -V -Relais mit Himbeer Pi
Um das 5-V-Relais mit Raspberry PI zu verbinden.
Stecken Sie eine Seite der Verbindungsdrähte an die IN (gelber Draht), GND (schwarzer Draht) und VCC (rote Draht) Stifte im 5 -V -Relais, wie unten gezeigt.
Die andere Seite der Drähte geht in die GPIO -Headerstifte von Himbeer PI, wie im Bild unten gezeigt.
Der rote Draht sollte in die gehen Pin 2 (VCC) von Raspberry Pi.
Der schwarze Draht sollte in die gehen Pin 6 (GND) von Raspberry Pi.
Der gelbe Draht sollte in die gehen Pin 7 (GPIO 4) von Raspberry Pi.
Sobald das 5 -V -Relais mit Raspberry Pi verbunden ist, sollte es wie im Bild unten gezeigt aussehen.
Ermöglichen Sie den GPIO -Zugriff auf den Anmeldebutzer
Um den Zugriff auf die GPIO -Stifte zu ermöglichen, ist der Standard -Login -Benutzer von Raspberry Pi OS den Standard -Login -Benutzer Pi sollte dem hinzugefügt werden GPIO Gruppe.
Sie können die hinzufügen Pi Benutzer zum GPIO Gruppe mit dem folgenden Befehl:
$ sudo usermod -Ag gpio $ (Whoami)
Damit die Änderungen wirksam werden sollen, starten Sie Raspberry PI mit dem folgenden Befehl neu:
$ sudo Neustart
Erstellen eines Projektverzeichnisses
Es ist auch eine gute Idee, alle Projektdateien organisiert zu halten.
Um die Projektdateien organisiert zu halten, erstellen Sie das Projektverzeichnis ~/www und die erforderlichen Unterverzeichnisse mit dem folgenden Befehl:
$ mkdir -pv ~/www/Vorlagen, static
Sobald das Projektverzeichnis erstellt wurde, navigieren Sie wie folgt zum Projektverzeichnis:
$ cd ~/www
Schalten Sie das 5 -V -Relais von Raspberry Pi um
Nachdem Sie das 5 -V -Relais mit Raspberry Pi verbunden haben, wechseln Sie das Relais mit der Python -Programmiersprache vom Raspberry Pi.
Hinweis: Schalten ist ein Begriff in der Elektronik. Schalten bedeutet steuern (i.e. Ein- und Ausschalten) ein bestimmtes elektronisches Gerät.
Erstellen Sie den neuen Python -Skripttest, um das Relais mithilfe der Python -Programmiersprache zu experimentieren, um mithilfe der Python -Programmiersprache zu wechseln.PY im Projektverzeichnis wie folgt:
$ nano test.py
Geben Sie die folgenden Codes -Zeilen in den Test ein.Py Python Drehbuch.
Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten prüfen.py Python -Skript.
Hier importiert Zeile 1 LED von dem gpiozero Bibliothek und Zeile 2 importiert die schlafen Funktion von der Zeit Bibliothek.
Die Zeilen 6-14 befinden sich in einer unendlichen Schleife.
Zeile 6 initialisiert eine LED in der GPIO 4 von Raspberry Pi, der mit dem verbunden ist IN Stift des Relais.
Zeile 8 dreht das Relais mit der An() Methode.
Zeile 9 druckt eine Nachricht in der Konsole mit der Konsole aus drucken() Funktion.
Zeile 10 verzögert die Ausführung der nächsten Codezeile fünf Sekunden lang mit dem schlafen() Funktion.
Zeile 12 schaltet das Relais mit dem aus schließen() Methode.
Auf die gleiche Weise druckt Zeile 9 eine Nachricht auf der Konsole mit der Konsole drucken() Funktion und Zeile 10 verzögert die Ausführung der nächsten Codezeile für 5 Sekunden mit der schlafen() Funktion.
Als nächstes führen Sie die aus prüfen.py Python -Skript wie folgt:
$ python3 Test.py
Der prüfen.py Das Python -Skript sollte mit dem Umschalten des 5 -V -Relais beginnen. Sie sollten alle fünf Sekunden einen Klick -Sound hören. Wenn das Relais den Status des Status (von Off oder Off bis ON), macht es ein Klickgeräusch. Dies bedeutet, dass das Relais ordnungsgemäß funktioniert.
Wenn sich das Relais im Off -State befindet (Normalbetrieb - Wechselstromlast ist getrennt), nur die Rot LED sollte leuchten, wie Sie im Bild unten sehen können.
Wenn sich das Relais im On-State befindet (Wechselstromlast ist angeschlossen), beide, beide Grün LED und Die Rot LED sollte leuchten, wie Sie im Bild unten sehen können.
Sobald die Tests abgeschlossen sind, drücken Sie + C um die zu beenden prüfen.py Skript.
Verbinden Sie die Wechselstrom -Glühbirne mit dem 5 -V -Relais
Das 5 -V -Relais sollte jetzt ordnungsgemäß funktionieren. Jetzt verbinden Sie Ihr AC Home Appliance (in diesem Fall eine Glühbirne) mit dem 5V -Relais.
Schneiden Sie zunächst den schwarzen Elektrodraht, der mit einem Abhirten an die Glühbirne angeschlossen ist.
Sobald der an der Glühbirne angeschlossene schwarze elektrische Draht mit einem Abmirecutter geschnitten wurde, sollte er wie im Bild unten gezeigt aussehen.
Streifen Sie als Nächst.
Falten Sie dann die exponierten Drähte, wie im Bild unten gezeigt.
Lösen Sie die markierten Schrauben des Relais mit einem CV-3-Schraubendreher.
Setzen Sie die exponierten Drähte ein, die Sie früher in den beiden Schraubenklemmen ausgestattet und gefaltet haben, und ziehen Sie die Schrauben mit einem CV-3-Schraubendreher fest an.
Testen des Relaisschaltens nach Anschluss der Wechselstromlast
Sobald die Wechselstromlast an das 5 -V -Relais angeschlossen ist, schließen Sie den Glühbirnenstopfen an die Wandhöhle an.
Leiten Sie die prüfen.py Python -Skript aus dem Projektverzeichnis wie folgt:
$ python3 Test.py
Der prüfen.py Das Python-Skript sollte mit dem Umschalten des 5-V-Relais beginnen, das wiederum die Hochspannungs-Wechselstrom-Glühbirne in Intervallen von fünf Sekunden umschaltet. Die AC -Glühbirne sollte für fünf Sekunden bleiben und fünf Sekunden lang frei bleiben und so weiter.
Die Glühbirne ist im Bild unten ausgeschaltet.
Die Glühbirne ist im Bild unten eingeschaltet.
Wie Sie sehen können, können wir das Relais wechseln und die Hochspannungs -AC -Glühbirne mithilfe der Python -Programmiersprache steuern. Also drücken Sie + C um die zu beenden prüfen.py Skript.
Lassen Sie uns nun zum nächsten Abschnitt übergehen.
Schreiben Sie die Web -Automatisierungs -Web -App
In diesem Abschnitt werde ich Ihnen zeigen, wie Sie eine API-basierte Web-App mit der Python-Programmiersprache schreiben. Sie können die Web -App verwenden, um das Relais und die AC Home Appliance (en) oder die elektrischen Geräte (en) von einem Webbrowser an das Relais angeschlossen zu werden.
NOTIZ: Alle in diesem Abschnitt gezeigten Codes sind in meinem GitHub-Repository Shovon8/Raspberry-Pi-Home-Automation verfügbar. Wenn Sie möchten, können Sie mein Github -Repository klonen und alle Codes überspringen.
Erstellen Sie den Server.Py Python -Skript im Projektverzeichnis wie folgt:
$ nano Server.py
Geben Sie die folgenden Codes -Zeilen in die Server.py Python -Skript.
Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Server.py Python -Skript.
Hier importieren Zeilen 1-3 alle notwendigen Komponenten aus ihren jeweiligen Bibliotheken.
Zeile 5 schafft eine leere Räume Wörterbuch. In diesem Wörterbuch werden wir alle Details der AC -Geräte speichern, die wir über die Web -App steuern möchten.
Der Räume Details sind in den Zeilen 7-29 gespeichert.
Lassen Sie uns die Datenstruktur eines der Räume diskutieren.
Hier wird der Raumname sein Raum 1. So, Raum 1 ist der Schlüssel zum Schlüssel zum Räume Wörterbuch.
Der Raum 1 Der Schlüssel hält ein Array als Wert. Die Anzahl der Array -Elemente entspricht der Anzahl der AC -Hausgeräte, die Sie in diesem Raum haben, den Sie auch von der Web -App steuern möchten. In diesem Fall haben wir zwei AC -Hausgeräte, die wir kontrollieren möchten: Licht 1 Und Fan 1.
Jede Definition der Haushaltsgeräte hat eine Ausweis. Der Ausweis ist eine zufällig generierte UUID. Dies wird verwendet, um zu ermitteln, welchen Raum wir mithilfe der API steuern möchten.
Ein Haushaltsgerät hat auch alle folgenden:
Zeile 31 initialisiert einen Flask -Python -Webserver.
Zeile 32 Konfiguriert den Flask -Webserver.
Zeilen 34-36 Senden Sie die Index.html Datei aus der Vorlagen/ Verzeichnis, wenn Sie die Home Automation Web App besuchen.
Flask verwendet Jinja2 Vorlagensprache, um die zu rendern Index.html Datei. Also habe ich die bestanden Räume Wörterbuch zum Index.html Datei. Jinja2 Wird die Homepage mit der Räume Daten.
Die Funktion Toggle_Appliance_Status () In den Zeilen 39-52 wird das Haushaltsgerät eingeschaltet, wenn es ausgeschaltet ist, und das Haushaltsgerät ausschalten Ausweis.
Es kehrt zurück WAHR Wenn der Umschalterungsvorgang erfolgreich ist. Wenn ein Fehler vorliegt, wird es zurückgegeben FALSCH.
Die Zeilen 55-57 werden verwendet, um eine Haushaltsgeräte mit dem umzuschalten /Appliance/Toggle/ API -Endpunkt des Webservers. Hier, Ausweis ist die ID des Haushaltsgeräts.
Erstellen die Index.html Datei in der Vorlagen/ Verzeichnis Ihres Projekts wie folgt:
$ nano Vorlagen/Index.html
Geben Sie die folgenden Codes -Zeilen in die Index.html Skript.
Zimmer
Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Index.html Datei.
Ein ... kreieren Stil.CSS Datei in der statisch/ Verzeichnis Ihres Projekts wie folgt:
$ nano statisch/stil.CSS
Geben Sie die folgenden Codes -Zeilen in die Stil.CSS Datei.
Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Stil.CSS Datei.
Erstelle ein App.JS Datei in der statisch/ Verzeichnis Ihres Projekts wie folgt:
$ nano static/App.JS
Geben Sie die folgenden Codes -Zeilen in die App.JS Datei.
Sobald Sie fertig sind, drücken Sie + X gefolgt von Y und um das zu retten App.JS Datei.
Hier leitet Zeile 1 die hauptsächlich() Funktion, wenn die Webseite das Laden beendet.
Im Index.html Datei ist jedes Hausgerät in einem beigefügt Gerät Klasse. Die Zeilen 26-29 werden verwendet, um jedes Home Appliance auf der Webseite auszuwählen und die Anhängen klicken Ereignis zum Gerät. Wenn jemand auf der Webseite auf ein Haushaltsgerät klickt, ist die ToggleApplianCestate () Funktion wird ausgeführt.
In den Zeilen 4-23 die ToggleApplianCestate () Funktion wird verwendet, um die anzufordern /Appliance/Toggle/ Endpunkt des Webservers, um den Status des geklickten Hausgeräts zu ändern. Die Anfrage wird im Hintergrund über Ajax gestellt. Sobald die Antwort empfangen wurde, wird die Webseite entsprechend aktualisiert.
Navigieren zum statisch/ Verzeichnis in Ihrem Projektverzeichnis wie folgt:
$ cd static/
Laden Sie die Schriftart Fantastien mit dem folgenden Befehl herunter:
$ wget https: //.fontaWesome.com/releases/v5.15.1/fontawesome-frei-5.15.1-Web.Reißverschluss
Sobald die Schriftart Awesome heruntergeladen ist, sollten Sie die neue Zip -Datei finden fontAwesome-frei-5.15.1-Web.Reißverschluss im statisch/ Verzeichnis.
$ ls -lh
Entpacken Sie die fontAwesome-frei-5.15.1-Web.Reißverschluss Datei mit dem folgenden Befehl:
$ unzip fontawesome-frei-5.15.1-Web.Reißverschluss
Der fontAwesome-frei-5.15.1-Web.Reißverschluss Die Datei sollte nun gepackt werden.
Das neue Verzeichnis fontAwesome-frei-5.15.1-Web/ sollte im statischen/ Verzeichnis erstellt werden, wie Sie im Screenshot unten sehen können.
$ ls -lh
Benennen Sie das Verzeichnis um fontAwesome-frei-5.15.1-Web/ Zu fontaWesome/ mit dem folgenden Befehl:
$ mv -v fontawesome-frei-5.15.1-Web Fontawesome
Jetzt brauchst du das nicht mehr fontAwesome-frei-5.15.1-Web.Reißverschluss Datei. Entfernen Sie also die fontAwesome-frei-5.15.1-Web.Reißverschluss Datei mit dem folgenden Befehl:
$ rm -v fontawesome-frei-5.15.1-Web.Reißverschluss
Der statisch/ Die Verzeichnisstruktur sollte wie im folgenden Screenshot aussehen.
$ ls -lh
Navigieren Sie zurück zum Projektverzeichnis ~/www folgendermaßen:
$ cd…
Testen der Web -Automation -Web -App
Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um die Web -Automation -Web -App zu testen:
$ Flask_app = server.Py Flask Run
Die Web -App sollte auf Port 5000 Ihres Raspberry Pi verfügbar sein.
Besuchen Sie im Chromium -Webbrowser http: // localhost: 5000. Die Web -Automation -Web -App sollte geladen werden.
Klicken Sie auf das Lightbulb -Symbol, das im Bild unten angegeben ist.
Die AC -Glühbirne sollte jetzt eingeschaltet werden. Die Symbolfarbe sollte sich ebenfalls zu Grün ändern, was darauf hinweist, dass die Glühbirne eingeschaltet ist.
Die Web -Automation -Web -App funktioniert also. Drücken Sie + C Um den Webserver zu beenden.
Erstellen des Systemd -Dienstes für die Home Automation Web App
In diesem Abschnitt zeige ich Ihnen, wie Sie eine Systemd -Dienstdatei für die Home -Automatisierungs -Web -App erstellen, damit sie automatisch mit dem Start startet.
Erstellen Sie zunächst die Raspi-Haus-Automation.Service Datei in Ihrem Projektverzeichnis wie folgt:
$ nano raspi-home-automation.Service
Geben Sie die folgenden Zeilen in die Raspi-Home-Automation ein.Servicedatei.
[Einheit]
Beschreibung = Raspberry Pi Home Automation Web Service
Nach = Netzwerk.Ziel
[Service]
WorkingDirectory =/home/pi/www
Umgebung = Flask_app = Server.py
Umgebung = Flask_env = Produktion
Execstart =/usr/bin/flask run – -host = 0.0.0.0
StandardOutput = inherit
StandardError = Erben
Neu starten = immer
User = pi
[Installieren]
Wantby by = multi-user.Ziel
Sobald Sie fertig sind, drücken Sie + X gefolgt von Y und um das zu retten Raspi-Haus-Automation.Service Datei.
Kopiere das Raspi-Haus-Automation.Service Datei an der /etc/systemd/system/ Verzeichnis mit dem folgenden Befehl:
$ sudo cp -v raspi-home-automation.Service/etc/systemd/system/
Laden Sie die Systemd -Daemons neu, damit die Änderungen wie folgt wirksam werden:
$ sudo systemctl Daemon-Reload
Ergänzen Sie die Raspi-Haus-Automation Service zum Systemstart von Raspberry Pi OS mit dem folgenden Befehl:
$ sudo systemCTL Aktivieren Sie die Raspi-Home-Automation.Service
Starten Sie Raspberry Pi mit dem folgenden Befehl neu:
$ sudo Neustart
Sobald Raspberry Pi Stiefel, die Raspi-Haus-Automation Der Service sollte aktiv/ausgeführt werden, wie Sie im Screenshot unten sehen können.
$ sudo systemctl status raspi-home-automation.Service
Zugriff auf die Web -Automation -Web -App von anderen Geräten
Um über andere Geräte in Ihrem Heimnetzwerk auf die Web -Automation -Web -App zuzugreifen, müssen Sie die IP -Adresse Ihres Raspberry PI -Geräts kennenlernen.
Sie finden die IP -Adresse Ihres Raspberry Pi 4 -Geräts von der Webmanagement -Oberfläche Ihres Heimrouters. In meinem Fall ist die IP -Adresse 192.168.0.103. Dies wird für Sie anders sein. Ersetzen Sie meine IP von nun an unbedingt durch Ihre IP.
Wenn Sie Zugriff auf die Raspberry PI -Konsole haben, können Sie den folgenden Befehl ausführen, um auch die IP -Adresse zu finden.
$ hostname -i
Sobald Sie die IP -Adresse Ihres Raspberry PI -Geräts kennen, können Sie von jedem Gerät in Ihrem Heimnetzwerk darauf zugreifen.
Wie Sie im folgenden Screenshot sehen können.
Stellen Sie sicher.
Die Glühbirne sollte standardmäßig ausgeschaltet werden.
Wenn Sie auf das Lightbulb -Symbol aus der Home -Automatisierungs -Web -App tippen, sollte sich die Farbe der Glühbirnen -Symbol in Grün ändern, was darauf hinweist.
Wie Sie im Bild unten sehen können, ist die Glühbirne eingeschaltet.
Abschluss
Dieser Artikel hat Ihnen gezeigt. Der Artikel hat Ihnen auch gezeigt. Dieser Artikel sollte Ihnen helfen, mit Home Automation mit Raspberry Pi zu beginnen.