Himbeer-Pi

Raspberry Pi Home Automation einrichten

Raspberry Pi Home Automation einrichten
Eines der wichtigsten Dinge für die Hausautomation ist die Steuerung von Hochspannungs-Wechselstrom mit einem Niederspannungs-Gleichstrom. Um den Hochspannungs-Wechselstrom vom Raspberry Pi zu steuern, benötigen Sie einen 5V-Relaisschalter. Sie können den Relaisschalter mit den GPIO-Pins des Raspberry Pi steuern. Der Relaisschalter kann dann die AC-Haushaltsgeräte über Raspberry Pi . steuern.

Dieser Artikel zeigt Ihnen, wie Sie Raspberry Pi und den 5V-Relaisschalter verwenden, um eine Glühbirne von Ihrem Mobilgerät aus ein- und auszuschalten. Der Artikel enthält eine Web-App, auf die Sie von jedem Gerät in Ihrem Netzwerk zugreifen und alle AC-Haushaltsgeräte in Ihrem Zuhause drahtlos steuern können. Beginnen wir also mit unserem einfachen Raspberry Pi-Heimautomatisierungsexperiment.

Dinge, die Sie brauchen

Wenn Sie Ihren Raspberry Pi Headless (per SSH oder VNC) verwenden möchten, benötigen Sie folgende Dinge:

1) Raspberry Pi 3 oder Raspberry Pi 4.
2) 5V Relaisschalter.
3) Elektrische Leitungen.
4) 3 Buchse-zu-Buchse-Verbindungsdrähte.
5) Wechselstrom-Glühbirne.
6) Wechselstrom-Glühbirnenhalter.
7) AC-Stecker.
8) Drahtschneider und Abisolierwerkzeug.
9) Schraubendreher CR-V 3.
10) Micro-USB (Raspberry Pi 3) oder USB Typ-C (Raspberry Pi 4) Netzteil.
11) 16 GB oder 32 GB microSD-Karte mit Raspberry Pi OS geflasht.
12) Netzwerkkonnektivität auf Raspberry Pi.
13) Laptop oder Desktop-Computer für VNC-Remote-Desktop-Zugriff oder SSH-Zugriff auf Raspberry Pi.

Wenn Sie nicht per SSH oder VNC auf den Raspberry Pi zugreifen möchten, benötigen Sie außerdem Folgendes:

14) Ein Monitor.
15) HDMI- oder Micro-HDMI-Kabel.
16) Eine Tastatur.
17) Eine Maus.

Wenn Sie Hilfe beim Flashen des Raspberry Pi OS-Images auf die microSD-Karte benötigen, lesen Sie den Artikel How to Install and Use Raspberry Pi Imager.

Wenn Sie ein Raspberry Pi-Anfänger sind und Hilfe bei der Installation von Raspberry Pi OS auf Raspberry Pi benötigen, lesen Sie den Artikel How to Install Raspberry Pi OS on Raspberry Pi 4.

Wenn Sie Hilfe bei der kopflosen Einrichtung von Raspberry Pi benötigen, lesen Sie außerdem den Artikel So installieren und konfigurieren Sie das Raspberry Pi-Betriebssystem auf dem Raspberry Pi 4 ohne externen Monitor.

Bilder aller erforderlichen Werkzeuge sind unten angegeben.

Einschalten des Raspberry Pi

Verbinden Sie als nächstes das Stromkabel mit dem Raspberry Pi und schalten Sie den Raspberry Pi ein.

Sobald Raspberry Pi eingeschaltet ist, können Sie über VNC oder SSH eine Verbindung zum 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 Pinbelegung

Ein Relais ist im Grunde ein Schalter. Im Gegensatz zu einem herkömmlichen Schalter kann ein Relais jedoch durch eine geringe Gleichspannung gesteuert werden.

Das 5V-Relais ist sehr einfach zu bedienen. Es hat zwei Seiten: eine Seite wird verwendet, um das Relais über Niederspannungs-DC (von Raspberry Pi) zu steuern, und die andere Seite wird verwendet, um die Hochspannungs-AC (i.e., die Glühbirne), je nach Zustand des Relais.


Auf einer Seite hat das Relais zwei LEDs (eine rote und eine grüne) und drei Pins (IN, GND, und VCC). Diese drei Pins werden verwendet, um das Relais von Raspberry Pi . zu steuern.

Die ersten beiden Pins auf der anderen Seite werden verwendet, um das AC-Haushaltsgerät zu steuern.

Anschließen des 5V-Relais an Raspberry Pi

Um das 5V-Relais an Raspberry Pi anzuschließen, benötigen Sie drei Anschlussdrähte von Buchse zu Buchse.

Stecken Sie eine Seite der Anschlussdrähte in die IM (gelbes Kabel), Masse (schwarzes Kabel) und VCC (roter Draht) Pins im 5V-Relais, wie unten gezeigt.


Die andere Seite der Drähte geht in die GPIO-Header-Pins des Raspberry Pi, wie im Bild unten gezeigt.

Das rote Kabel sollte in die PIN 2 (VCC) von Raspberry Pi.
Das schwarze Kabel sollte in die PIN 6 (GND) von Raspberry Pi.
Das gelbe Kabel sollte in die PIN 7 (GPIO 4) von Raspberry Pi.


Sobald das 5V-Relais an Raspberry Pi angeschlossen ist, sollte es wie im Bild unten gezeigt aussehen look.

Erlauben des GPIO-Zugriffs für den Login-Benutzer

Um den Zugriff auf die GPIO-Pins zu ermöglichen, ist der Standard-Anmeldebenutzer von Raspberry Pi OS Pi sollte hinzugefügt werden gpio Gruppe.

Sie können das hinzufügen Pi Benutzer zum gpio Gruppe mit folgendem Befehl:

$ sudo usermod -aG gpio $(whoami)


Damit die Änderungen wirksam werden, 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 benötigten Unterverzeichnisse mit folgendem Befehl:

$ mkdir -pv ~/www/templates,static


Nachdem das Projektverzeichnis erstellt wurde, navigieren Sie wie folgt zum Projektverzeichnis:

$ cd ~/www

Schalten des 5V-Relais von Raspberry Pi

Nachdem Sie nun das 5V-Relais mit dem Raspberry Pi verbunden haben, schalten Sie das Relais mit der Programmiersprache Python vom Raspberry Pi aus.

HINWEIS: Umschalten ist ein Begriff aus der Elektronik. Schalten bedeutet Steuern (i.e. Ein-/Ausschalten) eines bestimmten elektronischen Geräts.

Um mit dem Umschalten des Relais mit der Programmiersprache Python zu experimentieren, erstellen Sie den neuen Python-Skripttest.py im Projektverzeichnis wie folgt:

$ Nanotest.py


Geben Sie die folgenden Codezeilen in den Test ein.py Python-Skript.

von gpiozero import LED
ab zeit importieren schlaf
während Wahr:
Relais = LED(4)
print("Relais: Ein")
schlafen(5)
Relais.schließen()
print("Relais: Aus")
schlafen(5)

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten Prüfung.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 Endlosschleife.


Zeile 6 initialisiert eine LED im GPIO 4 des Raspberry Pi, der mit dem verbunden ist IM Pin des Relais.


Zeile 8 schaltet das Relais mit dem auf() Methode.

Zeile 9 druckt eine Nachricht in der Konsole mit dem drucken() Funktion.

Zeile 10 verzögert die Ausführung der nächsten Codezeile um fünf Sekunden mit dem schlafen() Funktion.


Zeile 12 schaltet das Relais mit dem schließen() Methode.

Auf die gleiche Weise druckt Zeile 9 eine Nachricht auf der Konsole mit dem drucken() Funktion und Zeile 10 verzögert die Ausführung der nächsten Codezeile um 5 Sekunden mit dem schlafen() Funktion.


Führen Sie als Nächstes die Prüfung.py Python-Skript wie folgt:

$ python3-Test.py


Das Prüfung.py Python-Skript sollte anfangen, das 5V-Relais zu schalten. Sie sollten alle fünf Sekunden ein Klickgeräusch hören. Wenn das Relais seinen Zustand wechselt (von ein auf aus oder von aus auf ein), macht es ein klickendes Geräusch. Dies bedeutet, dass das Relais ordnungsgemäß funktioniert.


Im ausgeschalteten Zustand des Relais (Normalbetrieb - AC-Last ist abgeklemmt) werden nur die rot LED sollte leuchten, wie Sie im Bild unten sehen können.


Wenn sich das Relais im eingeschalteten Zustand befindet (AC-Last ist angeschlossen), werden beide Grün LED und das rot LED sollte leuchten, wie Sie im Bild unten sehen können.


Drücken Sie nach Abschluss des Tests + C das beenden Prüfung.py Skript.

Anschließen der AC-Glühbirne an das 5V-Relais

Das 5V-Relais sollte jetzt richtig funktionieren. Jetzt verbinden Sie Ihr AC-Haushaltsgerät (in diesem Fall eine Glühbirne) mit dem 5V-Relais.

Schneiden Sie zuerst das schwarze elektrische Kabel, das mit der Glühbirne verbunden ist, mit einem Drahtschneider durch.


Sobald das schwarze elektrische Kabel, das mit der Glühbirne verbunden ist, mit einem Drahtschneider durchtrennt wurde, sollte es wie in der Abbildung unten gezeigt aussehen.


Ziehen Sie als nächstes die äußere Schicht ab, um etwa ½ Zoll des elektrischen Kabels freizulegen, wie in der Abbildung unten gezeigt.


Falten Sie dann die freiliegenden Drähte, wie in der Abbildung unten gezeigt.


Lösen Sie die markierten Schrauben des Relais mit einem CV-3-Schraubendreher.


Stecken Sie die freigelegten Drähte, die Sie zuvor abisoliert und gefaltet haben, in die beiden Schraubklemmen und ziehen Sie die Schrauben mit einem CV-3-Schraubendreher fest.

Testen der Relaisschaltung nach dem Anschließen der AC-Last

Sobald die Wechselstromlast an das 5-V-Relais angeschlossen ist, verbinden Sie den Glühbirnenstecker mit der Steckdose.


Führen Sie die Prüfung.py Python-Skript aus dem Projektverzeichnis wie folgt:

$ python3-Test.py


Das Prüfung.py Das Python-Skript sollte mit dem Schalten des 5-V-Relais beginnen, das wiederum die Hochspannungs-Wechselstrom-Glühbirne in Fünf-Sekunden-Intervallen schaltet switch. Die AC-Glühbirne sollte fünf Sekunden lang eingeschaltet bleiben, dann fünf Sekunden lang ausgeschaltet bleiben und so weiter.

Im Bild unten ist die Glühbirne aus.


Die Glühbirne ist im Bild unten an.


Wie Sie sehen, können wir das Relais schalten und die Hochspannungs-Wechselstrom-Glühbirne mit der Programmiersprache Python steuern control. Also drücke + C das beenden Prüfung.py Skript.

Kommen wir nun zum nächsten Abschnitt.

Schreiben der Home Automation Web App

In diesem Abschnitt zeige ich Ihnen, wie Sie eine API-basierte Web-App mit der Programmiersprache Python schreiben. Sie können die Web-App verwenden, um das Relais und die AC-Haushaltsgeräte oder elektrischen Geräte, die mit dem Relais verbunden sind, über einen Webbrowser zu steuern.

HINWEIS: 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 Codezeilen in das ein Server.py Python-Skript.

aus Kolbenimport Flask, jsonify, url_for, render_template
von gpiozero import LED
aus uuid importieren uuid4
Zimmer =
Zimmer['Zimmer 1'] = [
'id': uuid4(),
'name': 'Licht 1',
'icon': 'fa fa-glühbirne',
'status': Falsch,
'RelaisPin': 4,
'relayInstance': Falsch
,
'id': uuid4(),
'name': 'Lüfter 1',
'icon': 'fa fa-fan',
'status': Falsch,
'RelaisPin': 6,
'relayInstance': Falsch
]
Zimmer['Bad 1'] = [
'id': uuid4(),
'name': 'Licht 1',
'icon': 'fa fa-glühbirne',
'status': Falsch,
'RelaisPin': 5,
'relayInstance': Falsch
]
app = Flasche(__name__)
App.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@app.Route('/')
def home():
return render_template('./Index.html', Räume = Räume)
def toggle_appliance_status(id):
für Zimmer in Zimmern:
für Geräte in Räumen[Raum]:
if str(appliance['id']) == id:
if Appliance['relayInstance']:
Appliance['relayInstance'].schließen()
Appliance['relayInstance'] = False
sonst:
Appliance['relayInstance'] = LED(Appliance['relayPin'])
Appliance['relayInstance'].auf()
Appliance['status'] = nicht Appliance['status']
true zurückgeben
falsch zurückgeben
@app.route('/appliance/toggle/')
def Appliance_toggle(id):
return jsonify('status': toggle_appliance_status(id))

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten Server.py Python-Skript.


Hier importieren die Zeilen 1-3 alle notwendigen Komponenten aus ihren jeweiligen Bibliotheken.


Zeile 5 erzeugt ein leeres Räume Wörterbuch. In diesem Wörterbuch speichern wir alle Details des AC-Geräts, die wir über die Web-App steuern möchten.


Das Räume Details werden in den Zeilen 7-29 gespeichert.


Lassen Sie uns die Datenstruktur eines der Räume besprechen.

Hier lautet der Raumname Raum 1. So, Raum 1 ist der Schlüssel zum Räume Wörterbuch.


Das Raum 1 key enthält ein Array als Wert. Die Anzahl der Array-Elemente entspricht der Anzahl der AC-Hausgeräte, die Sie in diesem Raum haben und die Sie auch über die Web-App steuern möchten. In diesem Fall haben wir zwei AC-Haushaltsgeräte, die wir steuern möchten: Licht 1 und Lüfter 1.


Jede Haushaltsgerätedefinition hat ein Ich würde. Das Ich würde ist eine zufällig generierte UUID. Dies wird verwendet, um zu identifizieren, welchen Raum wir mithilfe der API steuern möchten.

Ein Haushaltsgerät verfügt außerdem über Folgendes:

  • Name (Licht 1 in diesem Fall)
  • Symbol (Font Awesome Icon-Klasse, da wir Font Awesome für die Icons verwenden werden)
  • Status (Wahr wenn auf und Falsch wenn aus)
  • RelaisPin (die GPIO-Pin-Nummer zur Steuerung des an das AC-Haushaltsgerät angeschlossenen Relais)
  • RelaisInstanz (der initialisierte LED Gegenstand von gpiozero Bibliothek, die für die Steuerung des jeweiligen GPIO-Pins verantwortlich ist - RelaisPin)


Zeile 31 initialisiert einen Kolben-Python-Webserver.

Zeile 32 konfiguriert den Flaschen-Webserver.


Zeilen 34-36 senden die Index.html Datei aus dem Vorlagen/ Verzeichnis, wenn Sie die Web-App für die Hausautomation besuchen.

Flasche verwendet Jinja2 Vorlagensprache zum Rendern der Index.html Datei. Also, ich habe die . bestanden Räume Wörterbuch zum Index.html Datei. Jinja2 rendert die Homepage mit dem Räume Daten.


Die Funktion toggle_appliance_status() in den Zeilen 39-52 wird verwendet, um das Haushaltsgerät einzuschalten, wenn es ausgeschaltet ist, und das Haushaltsgerät auszuschalten, wenn es eingeschaltet ist Ich würde.

Es kehrt zurück Wahr wenn der Umschaltvorgang erfolgreich ist. Wenn ein Fehler auftritt, wird es zurückgegeben Falsch.


Die Zeilen 55-57 werden verwendet, um ein Haushaltsgerät mit dem umzuschalten /Gerät/umschalten/ API-Endpunkt des Webservers. Hier, Ich würde ist die ID des Haushaltsgeräts.


Erstellen Sie die Index.html Datei in der Vorlagen/ Verzeichnis Ihres Projekts wie folgt:

$ Nano-Vorlagen/Index.html

Geben Sie die folgenden Codezeilen in das ein Index.html Skript.








Hausautomation mit Raspberry Pi



Raspberry Pi Hausautomation


% für Zimmer in Zimmern %

Zimmer



% für Gerät in Räumen[Raum] %


Gerät['name']

% endfor %


% endfor %



Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja 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 Codezeilen in das ein Stil.CSS Datei.

@import-URL('https://fonts.googleapis.com/css2?family=BenchNine:[email protected];400;700&display=swap');
*
Rand: 0;
Polsterung: 0;
Schriftfamilie: 'BenchNine', serifenlos;

#inhalt > h1
Hintergrund: linear-Gradient (nach rechts, rgb(112, 24, 163), rgb(86, 127, 240));
Farbe: #fff;
Textausrichtung: Mitte;
Polsterung: .5em 0;

div.Zimmer
Spanne: .5em;
Rahmen: 2px festes RGB(112, 24, 163);
Randradius: 5px;

div.Zimmer h2
/* Hintergrund: rgb(9, 76, 121); */
Hintergrund: linear-Gradient (nach rechts, rgb(112, 24, 163), rgb(86, 127, 240));
Polsterung: 0 0 0 .5em;
Farbe: #fff;

div.Haushaltsgeräte
Spanne: .5em .5em 0 0;
Anzeige: flexibel;
Flex-Wrap: Wickel;

div.Gerät
Rahmen: 2px festes RGB(112, 24, 163);
Randradius: 5px;
Breite: 110px;
Höhe: 120px;
Textausrichtung: Mitte;
Spielraum: 0 0 .5em .5em;
Anzeige: flexibel;
Biegerichtung: Säule;

div.Gerät ich.fa
Schriftgröße: 4em;
Flex-Grow: 1;
Polster-Oberseite: 0.3em;
Farbe: RGB (204, 50, 50);

div.Appliance[data-active="active"] i.fa
Farbe: RGB (32, 177, 51);

div.Gerätespanne
Bildschirmsperre;
Schriftdicke: fett;
Hintergrund: rgb(112, 24, 163);
Farbe: #fff;

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten Stil.CSS Datei.


Erstelle ein App.js Datei in der statisch/ Verzeichnis Ihres Projekts wie folgt:

$ nano statisch/app.js


Geben Sie die folgenden Codezeilen in das ein App.js Datei.

Fenster.addEventListener('load', main);
Funktion main()
Funktion toggleApplianceState(e)
var-id = e.Pfad[1].Ich würde;
var http = new XMLHttpRequest();
http.onreadystatechange = Funktion ()
wenn (dieses.readyState === 4 && this.Status === 200)
if(JSON.analysieren (diese.Antworttext).Status === wahr)
wenn (e.Pfad[1].hasAttribute('data-active'))
e.Pfad[1].removeAttribute('data-active')
sonst
e.Pfad[1].setAttribute('data-active', 'active')




http.open("GET", '/appliance/toggle/$id', true);
http.senden();

var Geräte = Dokument.getElementsByClassName('Gerät');
für(i=0; i < appliances.length; i++)
Geräte[i].addEventListener('click', toggleApplianceState);

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten App.js Datei.


Hier führt Linie 1 die Main() Funktion, wenn die Webseite fertig geladen ist.

In dem Index.html Datei ist jedes Haushaltsgerät in einer Gerät Klasse. Die Zeilen 26-29 werden verwendet, um jedes Haushaltsgerät von der Webseite auszuwählen und die klicken Ereignis am Gerät. Wenn jemand auf der Webseite auf ein Haushaltsgerät klickt, wird die toggleApplianceState() Funktion wird ausgeführt.


In den Zeilen 4-23 wird der toggleApplianceState() Funktion wird verwendet, um die /Gerät/umschalten/ Endpunkt des Webservers, um den Zustand des angeklickten Haushaltsgeräts zu ändern. Die Anfrage erfolgt im Hintergrund über AJAX. Sobald die Antwort eingegangen ist, wird die Webseite entsprechend aktualisiert.


Navigieren Sie zum statisch/ Verzeichnis in Ihrem Projektverzeichnis wie folgt:

$ cd statisch/


Laden Sie Font Awesome mit dem folgenden Befehl herunter:

$ wget https://use.Fontawesome.com/releases/v5.fünfzehn.1/fontawesome-frei-5.fünfzehn.1-web.Postleitzahl


Sobald Font Awesome heruntergeladen ist, sollten Sie die neue ZIP-Datei finden fontawesome-free-5.fünfzehn.1-web.Postleitzahl in dem statisch/ Verzeichnis.

$ ls -lh


Entpacken Sie die fontawesome-free-5.fünfzehn.1-web.Postleitzahl Datei mit folgendem Befehl:

$ entpacken fontawesome-free-5.fünfzehn.1-web.Postleitzahl


Das fontawesome-free-5.fünfzehn.1-web.Postleitzahl Datei sollte jetzt entpackt werden.


Das neue Verzeichnis fontawesome-free-5.fünfzehn.1-web/ sollte im Verzeichnis static/ erstellt werden, wie Sie im Screenshot unten sehen können.

$ ls -lh

Benennen Sie das Verzeichnis um fontawesome-free-5.fünfzehn.1-web/ zu toll/ mit folgendem Befehl:

$ mv -v fontawesome-free-5.fünfzehn.1-web fontawesome


Jetzt brauchst du das nicht mehr fontawesome-free-5.fünfzehn.1-web.Postleitzahl Datei. Also, entfernen Sie die fontawesome-free-5.fünfzehn.1-web.Postleitzahl Datei mit folgendem Befehl:

$ rm -v fontawesome-free-5.fünfzehn.1-web.Postleitzahl


Das statisch/ Die Verzeichnisstruktur sollte wie im Screenshot unten aussehen aussehen.

$ ls -lh


Navigieren Sie zurück zum Projektverzeichnis ~/www wie folgt:

$ CD…

Testen der Home Automation Web App

Um die Heimautomatisierungs-Web-App zu testen, führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

$ FLASK_APP=Server.py kolben laufen


Die Web-App sollte auf Port 5000 Ihres Raspberry Pi verfügbar sein.


Rufen Sie im Chromium-Webbrowser http://localhost:5000 auf. Die Web-App für die Hausautomation sollte geladen werden.

Klicken Sie auf das Glühbirnensymbol, das im Bild unten angezeigt wird.


Die AC-Glühbirne sollte jetzt eingeschaltet sein. Die Farbe des Symbols sollte sich ebenfalls auf Grün ändern, um anzuzeigen, dass die Glühbirne eingeschaltet ist.


Die Web-App für die Hausautomation 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-Service-Datei für die Home-Automation-Web-App erstellen, damit sie beim Booten automatisch gestartet wird.

Erstellen Sie zuerst die raspi-home-automation.Bedienung Datei in Ihrem Projektverzeichnis wie folgt:

$ nano raspi-home-automation.Bedienung

Geben Sie die folgenden Zeilen in die raspi-home-automation ein.Servicedatei.

[Einheit]
Description=Raspberry Pi Home Automation Webservice
Nach=Netzwerk.Ziel
[Bedienung]
WorkingDirectory=/home/pi/www
Umgebung=FLASK_APP=Server.py
Umgebung=FLASK_ENV=Produktion
ExecStart=/usr/bin/flask run --host=0.0.0.0
StandardOutput=vererben
StandardError=vererben
Neustart = immer
Benutzer=pi
[Installieren]
WantedBy=Mehrbenutzer.Ziel

Wenn Sie fertig sind, drücken Sie + X gefolgt von Ja und um die zu retten raspi-home-automation.Bedienung Datei.


Kopiere das raspi-home-automation.Bedienung Datei an die /etc/systemd/system/ Verzeichnis mit folgendem 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-home-automation service zum Systemstart von Raspberry Pi OS mit folgendem Befehl:

$ sudo systemctl enable raspi-home-automation.Bedienung


Starten Sie Raspberry Pi mit dem folgenden Befehl neu:

$ sudo Neustart


Sobald Raspberry Pi bootet, raspi-home-automation service sollte aktiv sein/laufen, wie Sie im Screenshot unten sehen können.

$ sudo systemctl status raspi-home-automation.Bedienung

Zugriff auf die Home Automation Web App von anderen Geräten Device

Um von anderen Geräten in Ihrem Heimnetzwerk auf die Heimautomatisierungs-Web-App zugreifen zu können, müssen Sie die IP-Adresse Ihres Raspberry Pi-Geräts kennen.

Die IP-Adresse Ihres Raspberry Pi 4 Geräts finden Sie in der Webverwaltungsoberfläche Ihres Heimrouters. In meinem Fall ist die IP-Adresse 192.168.0.103. Das wird bei dir anders. Also, ersetze ab jetzt unbedingt meine IP durch deine.


Wenn Sie Zugriff auf die Raspberry Pi-Konsole haben, können Sie auch den folgenden Befehl ausführen, um 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 Screenshot unten sehen können, habe ich von meinem Android-Smartphone auf die Home-Automation-Web-App zugegriffen.


Achten Sie darauf, den Glühbirnenstecker in die Wandsteckdose zu stecken.


Die Glühbirne sollte standardmäßig ausgeschaltet sein.


Wenn Sie in der Web-App für die Hausautomation auf das Glühbirnensymbol tippen, sollte sich die Farbe des Glühbirnensymbols auf Grün ändern, um anzuzeigen, dass die Glühbirne eingeschaltet ist.


Wie Sie im Bild unten sehen können, ist die Glühbirne eingeschaltet.

Fazit

In diesem Artikel wurde gezeigt, wie Sie ein 5-V-Relais verwenden, um ein elektrisches Hochspannungsgerät von Raspberry Pi mit der Programmiersprache Python zu steuern Python. Der Artikel zeigte Ihnen auch, wie Sie eine API-basierte Python-Kolben-Web-App schreiben, um das Relay über den Webbrowser zu steuern control. Dieser Artikel soll Ihnen den Einstieg in die Heimautomatisierung mit Raspberry Pi . erleichtern.

So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...