Inhaltsverzeichnis:
- Schritt 1: Anleitung zur Einrichtung von PowerHub-Webserver-Projekten und internetfähigen Steckdosen
- Schritt 2: Aktivieren Sie die erweiterten RaspberriPi-Optionen
- Schritt 3: Beginnen Sie mit der Installation der erforderlichen Pakete
- Schritt 4: ERSTELLEN SIE DIE WEB-API
- Schritt 5: Benötigtes Zubehör
- Schritt 6: Aufbau des Outlets
- Schritt 7: Schaltflächen installieren
- Schritt 8: Drahtrelais
- Schritt 9: Zusätzliche Verdrahtungs- und Montagebilder
- Schritt 10: Schaltplan
- Schritt 11: Testen Sie den Trockenlauf
- Schritt 12: Legen Sie die Startskripts fest
Video: Internetfähige Steckdose - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Anleitung zur Einrichtung von PowerHub Webserver-Projekten und internetfähigen Steckdosen
Zentraler Datenspeicher-Hub für internetfähiges Licht und Steckdosen in Ihrem Zuhause!
Schritt 1: Anleitung zur Einrichtung von PowerHub-Webserver-Projekten und internetfähigen Steckdosen
Zentraler Datenspeicher-Hub für internetfähiges Licht und Steckdosen in Ihrem Zuhause
Flashen der RaspberriPi-Festplatte / Erforderliche Software installieren (unter Ubuntu Linux) Download "RASPBIAN JESSIE LITE"
Erstellen Sie Ihre neue Festplatte für DashboardPI
Legen Sie die microSD über einen USB-Adapter in Ihren Computer ein und erstellen Sie das Disk-Image mit dem Befehl dd
Suchen Sie Ihre eingelegte microSD-Karte über den Befehl df -h, unmounten Sie sie und erstellen Sie das Disk-Image mit dem Befehl disk copy dd
$ df -h /dev/sdb1 7,4G 32K 7,4G 1 % /media/XXX/1234-5678
$ umount /dev/sdb1
Achtung: Stellen Sie sicher, dass der Befehl absolut korrekt ist, Sie können mit diesem Befehl andere Festplatten beschädigen
if=Speicherort der RASPBIAN JESSIE LITE-Bilddatei of=Speicherort Ihrer microSD-Karte
$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (Hinweis: in diesem Fall ist es /dev/sdb, /dev/sdb1 war eine vorhandene Werkspartition auf dem microSD)
Einrichten Ihres RaspberriPi
Legen Sie Ihre neue microSD-Karte in das Raspberrypi ein und schalten Sie es mit einem Monitor ein, der an den HDMI-Anschluss angeschlossen ist
Anmeldung
Benutzer: Pi-Pass: Himbeere
Ändern Sie aus Sicherheitsgründen Ihr Kontopasswort
sudo passwd pi
Schritt 2: Aktivieren Sie die erweiterten RaspberriPi-Optionen
sudo raspi-config
Wählen Sie: 1 Dateisystem erweitern
9 Erweiterte Optionen
A2 Hostname ändern in "WIFI-OUTLET"
A4 SSH SSH-Server aktivieren
A7 I2C i2c-Schnittstelle aktivieren
Aktivieren Sie die englische/US-Tastatur
sudo nano /etc/default/tastatur
Ändern Sie die folgende Zeile: XKBLAYOUT="us"
Starten Sie PI neu, damit Änderungen am Tastaturlayout/Größe des Dateisystems wirksam werden
$ sudo shutdown -r now
Automatische Verbindung zu Ihrem WLAN
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Fügen Sie die folgenden Zeilen hinzu, damit sich Ihr Himbeerpi automatisch mit Ihrem Heim-WLAN verbindet (wenn Ihr drahtloses Netzwerk im folgenden Beispiel beispielsweise "linksys" heißt)
network={ ssid="linksys" psk="WIRELESS PASSWORD HERE" } Starten Sie PI neu, um eine Verbindung zum WLAN-Netzwerk herzustellen
$ sudo shutdown -r now
Nachdem sich Ihr PI nun endlich im lokalen Netzwerk befindet, können Sie sich per SSH remote bei ihm anmelden. Aber zuerst müssen Sie die IP-Adresse abrufen, die es derzeit hat.
$ ifconfig Suchen Sie in der Ausgabe des folgenden Befehls nach "inet addr: 192.168. XXX. XXX" für die IP-Adresse Ihres PI
Gehen Sie zu einem anderen Computer und melden Sie sich über ssh. an Ihrem Raspberrypi an
$ ssh [email protected]. XXX. XXX
Schritt 3: Beginnen Sie mit der Installation der erforderlichen Pakete
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install vim git python-requests python-gpiozero python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev python
Lokale Zeitzoneneinstellungen aktualisieren
$ sudo dpkg-reconfigure tzdata
Wählen Sie Ihre Zeitzone über die Benutzeroberfläche aus
Richten Sie den einfachen Befehl für das Verzeichnis l ein [optional]
vi ~/.bashrc
füge die folgende Zeile hinzu:
Alias l='ls -lh'
Quelle ~/.bashrc
Hervorhebung der VIM-Standardsyntax behoben [optional]
sudo vi /etc/vim/vimrc
Entkommentieren Sie die folgende Zeile:
Syntax an
i2c Python-Treiber installieren
Schritt 4: ERSTELLEN SIE DIE WEB-API
Mit den folgenden Anweisungen können Sie den zentralen Hub aufbauen, der den verschiedenen WLAN-fähigen Steckdosen und Wandschaltern, die Sie bauen können, erklärt, welche Geräte ein- und ausgeschaltet werden. Dies ist ein kleines PHP-Skript, das Sie auf einem Webhost Ihrer Wahl platzieren können. Es verfügt über die folgende API, um Informationen abzurufen und festzulegen. Hinweis: Vergessen Sie nicht, die.htaccess-Datei einzuschließen, damit das URL-Routing ordnungsgemäß erfolgen kann.
Installieren Sie den Ordner "index.php", "values/" und settings.php (konfiguriert mit Ihren eigenen Werten) auf einem PHP-fähigen Webserver Ihrer Wahl. Der Wert des geheimen Schlüssels in der Datei "settings.php" muss mit dem Wert des geheimen Schlüssels übereinstimmen, den Sie in der Datei "settings.py" festlegen würden. Dies wird auf einer grundlegenden Ebene verhindern, dass jeder andere Web-Traffic Werte setzt / schreibt. Beim Einschalten Ihrer Geräte benötigen Sie jetzt diesen gehashten API-Schlüssel im HTTP-Request-Header, um dies zu tun.
Die API unterstützt die folgenden Funktionen. Für dieses Projekt verwenden wir nur die "flag" -Werte, bei denen es sich um boolesche Werte handelt, die den Schalter zum Ein- und Ausschalten anweisen. Wenn Sie die "Lesen" -Werte nutzen möchten, könnten Sie es vielleicht so haben, dass, wenn eine Raumtemperatur zu heiß wird, indem Sie dort eine Temperatur speichern, ein Fensterlüfter usw.
Holen Sie sich den Code
Klonen Sie das folgende Projekt von GitHub, um den Code zum Ausführen des Webservers und des Ausgangs RaspberryPI zu erhalten.
github.com/khinds10/PowerHub
API-Endpunkte bei Ausführung auf Webserver
myhost/message (den aktuellen Nachrichtensatz abrufen)
myhost/message/set (HTTP POST einen unformatierten String-Wert an diese URL, um eine neue Nachricht zu setzen)
myhost/flag/{id} (den aktuellen booleschen Status des Flags nach Ganzzahl abrufen: {id})
myhost/flag/all (den aktuellen booleschen Status aller Flags als Array abrufen)
myhost/flag/{id}/set (setze den aktuellen booleschen Status auf 'true' für das Flag nach Integer: {id})
myhost/flag/{id}/unset (setze den aktuellen booleschen Status auf 'false' für das Flag durch Ganzzahl: {id})
myhost/reading/{id} (den aktuellen Durchschnittswert für das Lesen nach Ganzzahl abrufen: {id})
myhost/reading/all (den aktuellen Durchschnittswert aller Messwerte als Array abrufen)
myhost/reading/{id}/set (HTTP POST ein roher numerischer Wert zu dieser URL, um einen neuen Wert zum aktuellen berechneten Durchschnitt hinzuzufügen) -- siehe unten, wie viele Werte insgesamt zum Durchschnittswert kompiliert werden Konfiguration Die 'Messwerte'-Werte werden als Durchschnitte einer bestimmten Anzahl von zuletzt erhaltenen numerischen Messwerten berechnet. Legen Sie die folgende Konstante fest, wie viele der jüngsten Messwerte berücksichtigt werden sollen, um den Durchschnitt zu bilden.
$messwerteDurchschnittsgrenze = 5;
Datastore Server speichert Werte in einfachen Dateien, die gemäß den folgenden Namenskonventionen lokalisiert sind. Hinweis: {id} wird durch die reelle ganze Zahl ersetzt, die von der URL der eingehenden Anfrage angezeigt wird.
$valueFileFolder = 'values' (Name des Ordners, der die Messdateien enthalten soll) $messageFileName = 'message.msg' (Name der Nachrichtentextdatei) $readingsFilesNames = 'reading{id}.avg' (Name der CSV-Mittelung) Messwertedatei) $flagFilesNames = 'flag{id}.flg' (Name der booleschen Flag-Wert-Flag-Datei)
Stellen Sie sicher, dass alle Wertdateien von systemchmod 777 values/* beschreibbar sind
Schritt 5: Benötigtes Zubehör
1 Zoll Lochsäge (für einen Bohrer)
5V 2-Kanal-Relaismodul
Wandplatte für Duplex-Steckdosen
Duplex-Buchse
Pi Zero W
Aufputz-Backbox Dual-Gang
Weiß beleuchtete Drucktasten
Schritt 6: Aufbau des Outlets
Break Outlet Tabs
Brechen Sie die Lasche an der Seite der Steckdose, damit sich jede Steckdose unabhängig ein- und ausschalten lässt
Schritt 7: Schaltflächen installieren
Schneiden Sie auf der Auslassblende mit der 1 -Lochsäge 2 Löcher für die Knöpfe, die neben den Steckdosen platziert werden sollen
Testdimensionierung von Komponenten
Stellen Sie sicher, dass alle Komponenten in die Aufputzdose der Steckdose passen
Schritt 8: Drahtrelais
Verdrahten Sie das Relais mit der Steckdose, vom Verlängerungskabel zur Wand, verbinden Sie die Masse (grün) und den Neutralleiter (weiß) direkt mit der Steckdose individuell
Schritt 9: Zusätzliche Verdrahtungs- und Montagebilder
Schritt 10: Schaltplan
Verwenden Sie das Diagramm, um die Komponenten korrekt zu verdrahten, damit sie mit dem RaspberryPI-Python-Code funktionieren.
Schritt 11: Testen Sie den Trockenlauf
Führen Sie nach der Endmontage vor dem Zusammenschrauben der Locheinheit einen Trockenlauf des Geräts durch, um sicherzustellen, dass es keine Kurzschlüsse oder schlechte Verkabelung gibt
Schritt 12: Legen Sie die Startskripts fest
crontab -e
füge die folgenden Zeilen hinzu
@reboot python /home/pi/PowerHub/device/outlet/buttons.py @reboot python /home/pi/PowerHub/device/outlet/relay.py