4-Fach WLAN Steckdosenleiste mit Arduino
Bauanleitung zum basteln einer WIFI Steckdosenleiste mit ESP8266.
- 4-Relais werden mit einem ESP-07 Modul gesteuert.
- 4 Tastern für Handbetrieb vorgesehen.
- Kann als Client (Endgerät) oder Access Point betrieben werden.
- Authentifizierung zuschaltbar.
- Setup über Webinterface.
- Aktueller Schaltzustand wird live im Browser angezeigt (Aktualisierungsrate 3 Sek).
- Steuern über Adresszeile möglich im Form von GET Parametern "http://192.168.178.10/schalte.php?Relay=1&On=0" (Relais 1 ausschalten).
- Quellcode / Sketch für Arduino zum Anschauen oder zum Download
Zutaten
4 Kanal 5V Relais Modul für Arduino |
4 Tasten Matrix Folientastatur |
ESP8266 Modul mit Adapterplatine |
Ich habe alle Bauteile direkt aus China bestellt für insgesamt 10,55€. Versand kostenlos, Lieferzeit 1..1,5 Monate.
ESP-07 mit Adapterplatine 3,70€
4 Kanal 5V Relay Module für Arduino 3,35€
5V-Ladeadapter 2,00€
4 Tastern 1,50€
Spannungsregler hatte ich da.
Schaltplan
Der angegebene Spannungsregler HT7333 Passt perfekt auf die Adapterplatine. Allerdings der darf nicht für 12V Stromversorgung verwendet werden, nur 5V.
Weil bei anlegen von 12V sein Ptot überschritten wird.
Statt HT7333 kann auch LM1117 genommen werden, oder direkt das Modul DC / DC 3.3V AMS1117-3.3V wie im Projekt „8 Kanal I2C – Relais“.
Die 4 Taster können beliebige Tastern sein.
Die 100n Kondensatoren C2-C5 sind parallel zum Tastern geschaltet und dienen zum Entprellung.
4 Kanal 5V Relay Module für Arduino hat low active Eingänge. Die Relais ziehen an, wenn Eingang auf Masse gezogen wird (Logische 0). Das ist sehr gut, denn so sind alle Relais ausgeschaltet beim Anlegen der Spannung während des Bootvorgangs. Wenn Sie eine andere Relaiskarte mit high activen Eingang benutzen wollen, dann muss die Variable „active_low“ in Zeile 19 auf „0“ gesetzt werden.
Einstellen über Webinterface
RX/TX mit einem Jumper Brücken. Stromversorgung anlegen. ESP8266 startet im Access Point Modus.
Mit einem WLAN fähigem Gerät das WLAN Netzwerk „Web Schalter Setup“ auswählen und mit dem Passwort „tiramisu“ anmelden.
Dann starten Sie ein Internetbrowser und geben Sie in Adressleiste 192.168.168.30 ein.
Wenn die Quellcode mit der Option #define DNS kompiliert wurde, dann wird beliebige Domen zum Setupseite führen.
Es öffnet sich ein Formular mit Eingabefeldern für SSID, WLAN–Passwort und URL.
Nach dem Absenden des Formulars erhalten Sie Meldung „Gespeichert“.
Beim erneuten Aufruf vom 192.168.168.30, werden eingestellten Daten angezeigt.
WLAN-Passwort wird dabei mit Sternchen ersetzt. (Sicherheitsmaßname damit bei Übergabe des Notruftasters an Dritten Ihr WLAN–Passwort nicht preisgegeben wird).
Hier haben Sie die Möglichkeit die HTTP-Authentifizierung bei WLAN Steckdosenleiste einzuschalten.
Dazu bitte das Eingabefeld „Benutzerpasswort für HTTP-Authentifizierung“ das Passwort eintragen, den Sie später, bei der Anmeldung auf dem Steckdosenleisten-Server, verwenden möchten.
Benutzername ist fest programmiert und heißt „admin“( oder Sie ändern das im Sketch in Zeile 32).
Wenn das Eingabefeld „Benutzerpasswort für HTTP-Authentifizierung“ leer bleibt wird HTTP-Authentifizierung deaktiviert.
Betrieb in Access Point Modus
4-Fach-IP –Steckdosenleiste kann auch in Access Point Modus betrieben werden. (in Access Point Modus startet die 4-Fach-IP –Steckdosenleiste eigene WLAN –Netz.)
Access Point Modus wird wie folgt eingeschaltet. Im Setup das Eingabefeld „WLAN Netzwerk Name“ leer lassen. Im Eingabefeld „Passwort“ das Passwort eingeben, was Sie später bei Anmeldung an der 4-Fach-IP –Steckdosenleiste verwenden möchten.
Das Passwort muss mindestens 8 Zeichen lang sein (sonst wird Access Point Modus nicht gestartet).
Nach dem erneutem Einschalten der 4-Fach-IP –Steckdosenleiste können Sie mit einem WLAN flächigem Gerät das WLAN Netzwerk „Web Schalter“ auswählen und mit dem vergebenem Passwort anmelden.
Dann starten Sie ein Internetbrowser und geben Sie in Adressleiste 192.168.168.30 ein.
Wenn die Quellcode mit der Option #define DNS kompiliert wurde, dann wird beliebige Domen zum Startseite führen.
Steuerung über Webinterface
Links sehen Sie, an die Homepage angebundene Steuerungswebseite, die normale weise die Index-Webseite des ESP8266-Servers ist.
Die Steuerungswebseite ist mittels HTML-Befehl „iframe“ in die Homepage angebunden.
Mann könnte noch über den Frame die Namen für angeschlossene Geräte schreiben.
Die Steuerungswebseite ist die Startseite des Steckdosenleisten Servers und wird einfach über IP des WebSchalters aufgerufen.
Die Steuerungswebseite verwendet AJAX-Object und Java Script um Informationen mit dem Server auszutauschen ohne komplette Webseite neu zu laden.
Jede 3 Sekunden sendet Steuerungswebseite eine Anfrage an ESP8266-Server und erhält den Schaltzustand der Relais. Dieser Zustand wird mittels der Farbe der Buttons angezeigt. Das gewährleistet, dass immer aktueller Zustand der Relay, auch bei einer länger geöffneten Webseite, angezeigt wird.
Denn die Relais können auch von anderem Gerät oder mit dem Taster umgeschaltet werden.
Steuerungswebseite links, ist zum ausprobieren und anschauen. Die hat oben beschriebene Funktionalität, außer automatischer Aktualisierung alle 3s um den Hoster meiner Homepage nicht zu überlasten. Wenn Sie die Buttons betätigen wird der Schaltzustand auf dem Server gespeichert genauso wie das auf dem ESP8266-Server passiert.
Sie können die Quellcode der Steuerungswebseite so im Firefox anzeigen lassen: Mit rechter Maustaste auf das Frame mit Steuerungswebseite klicken/Aktueller Frame/Frame Quelltext anzeigen.
Steuern über Aufruf einer Webseite mit GET-Parameter
Einfache Steuerungsmöglichkeit besteht darin über einen URL-Aufruf mit einem GET-Parameter.
Oder auch als Link.
http://IP_des_ESP8266/schalte.php?Relay=1&On=0
Parameter „Relay“ bekommt Nummer der Relais 1…4
Parameter „On“ bekommt der gewünschte Schaltzustand 0 oder 1
Der Server antwortet mit dem Text, der aktueller Schaltzustand alle 4 Relais anzeigt Z.B. „0;1;0;1;“
Aktueller Schaltzustand lässt sich auch per Aufruf „http://IP_des_ESP8266/zustand.php“ anzeigen lassen.
Eigene Steuerung Webinterface programmieren
Für den Fall wenn jemand eigene Steuerungswebseite programmieren möchte, habe ich hier eine vereinfachte Version mit Checkboxen bereitgestellt. 4Relais.html
Übrigens die Steuerungswebseite muss nicht unbedingt auf dem ESP-07 Modul laufen. Die kann lokal auf dem Rechner oder beim Hoster laufen. Es muss lediglich in die Variable
var Url = "http://192.168.178.8/";
richtige URL zum IP-Steckdosenleiste eingetragen werden.
Wie man Router einstellt zum vergabe gleicher IP-Adresse und wie man den ESP8266-Server nach draußen betriebt lesen Sie hier.
Verhalten beim Fehlen des WLANs
Wenn während des Betriebs plötzlich der Router ausgeht, oder andere Störung des WIFI-Netzes auftritt, bleiben die Relais in eingestelltem Zustand.
Sobald WIFI-Netz wieder verfügbar ist, verbindet sich IP-Steckdosenleiste automatisch mit dem WLAN.
Wenn das ESP-07 Modul mit dem Seriellen Kabel an PC angeschlossen ist, und ein Terminalprogramm läuft, werden entsprechende Meldungen angezeigt. ("WLAN verbindung abgebrochen", „Mit Wlan nachtraeglich verbunden -> IP Adresse: 192. 168.175.10).
HTTP-Authentifizierung
Wenn Sie HTTP-Authentifizierung (WWW-Authenticate) aktivieren, wird bei aufbauen der Verbindung mit dem Server der WIFI-Steckdosenleiste erst Zugangsdaten angefordert und der Webbrowser öffnet ein Eingabe Formular.
Die Authentifizierung gilt nur für eine Sitzung.
Download Firmware und Quellcode
Download BIN für ESP-07 -Laden der Firmware mit einem Tool über serielle Schnittstelle. Anleitung
(Kompiliert mit Arduino ver. 1.6.12, ESP8266 Bibliothek ver. 2.3.0).
Download Projekt -Sketch für Arduino, es wird Bibliothek Core for ESP8266 WiFi chip benötigt
Sonstige Ideen
Wenn das Setup öfter ausgeführt werden soll, macht es vielleicht Sinn, ein Taster zwischen RXD und TXD vorzusehen.
Bei der Festinstallation in einem Schaltschrank würde ein Reset Taster nützlich sein. Resettaster wird zwischen GND und Resetpin geschaltet.
Wenn Schaltschrank ein Metallgehäuse hat, muss eine Externe Antenne verwendet werden.
ESP-07 hat ein Anschluss für eine externe Antenne.
Ein Projekt von Roland Meier auf Basis dieser Firmware:
WLAN Lichtsteuerung mit dem LinkNode R4
das Programm ist so umgeschrieben, dass die Relais jeweils für eine gewisse Zeit X anziehen.
webmaster_x_esp8266-server.de |