Inhaltsverzeichnis:

Internetfähige Steckdose - Gunook
Internetfähige Steckdose - Gunook

Video: Internetfähige Steckdose - Gunook

Video: Internetfähige Steckdose - Gunook
Video: Anccy intelligente Smart Steckdose 2024, Juli
Anonim
Image
Image
Vorräte werden gebraucht
Vorräte werden gebraucht

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

Vorräte werden gebraucht
Vorräte werden gebraucht
Vorräte werden gebraucht
Vorräte werden gebraucht
Vorräte werden gebraucht
Vorräte werden gebraucht

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

Bau des Outlets
Bau 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

Schaltflächen installieren
Schaltflächen installieren
Schaltflächen installieren
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

Drahtrelais
Drahtrelais
Drahtrelais
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

Zusätzliche Verdrahtungs- und Montagebilder
Zusätzliche Verdrahtungs- und Montagebilder

Schritt 10: Schaltplan

Schaltplan
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

Test-Trockenlauf
Test-Trockenlauf
Test-Trockenlauf
Test-Trockenlauf
Test-Trockenlauf
Test-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