Drucken

Im EEPROM des ESP8266 werden die Konfigurationsdaten abgelegt und bei jedem Boot abgerufen und angewendet. Nach dem Brennen des Sketch ist das EEPROM leer und muß erst mit Konfigurationsdaten gefüllt werden. Die Schwierigkeit besteht darin, dass der ESP8266 erst einmal nicht ins WLAN des Anwenders verbinden kann, weil SSID und Passwort fehlen. Hier bietet sich an, dass der ESP8266 erst einmal ein eigenes WLAN mit Webserver erstellt, auf das sich der Anwender mit seinem Browser verbinden kann. Über ein angebotenes HTML-Formular können dann die Konfigurationsdaten eingegeben werden. Nach Absenden des Formulars werden die Daten im EEPROM gespeichert und der ESP8266 neu gebootet. Beim zweiten Reboot findet der Chip die erforderlichen WLAN- und Konfigurationsdaten im EEPROM vor und kann sich mit dem WLAN des Anwenders verbinden.

 

Ablauf der Konfiguration

Konfiguration eines ESP8266

Beim ersten Boot sind noch keine Konfigurationsdaten im EEPROM vorhanden. Nach dem Einlesen der EEPROM-Daten enthalten 'SSID' und 'Passwort' also Leerstrings.

  1. Der ESP8266 versucht 20 Sekunden lang, sich mit dem WLAN zu verbinden
  2. Jetzt erfolgt die Überprüfung, ob die Verbindung erfolgreich war. Wenn 'Nein', weiter mit Schritt (3)
  3. Der ESP8266 erstellt einen eigenen WLAN Access Point mit einer fester SSID ('ESPWIFI') und IP-Adresse (192.168.4.1)
  4. Ein Webserver mit einem HTML-Konfigurationsformular wird gestartet. Der Anwender verbindet sich über seinen PC mit dem neuen WLAN und ruft den Browser mit der IP-Adresse 192.168.4.1 auf. Das Konfigurationsformular wird angezeigt. Der Anwender gibt die richtigen WLAN-Daten und weitere Einstellungen ein und sendet das Formular ab
  5. Der ESP8266 empfängt die Formulardaten, wertet sie aus und speichert sie im EEPROM
  6. Ein automatischer Reboot des ESP8266 wird ausgeführt. Wurden die WLAN-Daten richtig konfiguriert, dann wird die WiFi-Verbindung erfolgreich sein und Schritt (7) wird abgearbeitet. Wenn nicht, erfolgt wieder Ablauf (1) bis (4).
  7. Im konfigurierten WLAN wird ein Webserver mit der vom DSL-Router erhaltenen DHCP-Adresse gestartet. Der Anwender kann sich über den Browser mit dem ESP8266 verbinden und das Modul bedienen oder wieder die Konfiguration ändern

 

Timeout des Access Point Modus

Immer, wenn das Modul keine Verbindug zum WLAN herstellen kann, wechselt es in den Access Point Modus und bietet das Konfigurationsmenü an. Dies kann natürlich auch passieren, wenn der WLAN-Router ausfällt. Damit in so einem Fall der PowerSwitch nicht endlos im AP-Modus verbleibt, wurde ein Timeout von 15 Minuten eingebaut, nach dem eine erneute Verbindung mit dem WLAN versucht wird. Ist der WLAN-Router verfügbar, nimmt der PowerSwitch automatisch seinen Betrieb wieder auf. Will man jedoch den PowerSwitch konfigurieren, dann sollte man sich mit der Eingabe der Werte beeilen, sonst erfolgt nach 15 Minuten ein erneuter Verbindungsversuch und man kann das Webformular nicht mehr absenden!

 

Verwendete URL's Konfigurations-Webserver

Für die Konfiguration und Bedienung des ESP8266 werden die erforderlichen URL's festgelegt, welche der Anwender im Browser eingeben muß. Der ESP8266 hat feste Vorgaben bei der Erstellung eines Access Points:

Um sich mit dem PC zu diesem WLAN zu verbinden, muß unter Windows eine Verbindung hergestellt werden. Dann kann im Browser die Konfigurationsseite aufgerufen werden:

http://192.168.4.1 (für ein nicht konfiguriertes ESP)

oder

http://ESP_A5C68D (für ein konfiguriertes ESP)

Letzteres ist etwas schwieriger, weil man den Hostnamen des ESP8266 nicht kennt. Man kann ihn allerdings über die Weboberfläche des DSL-Routers ermitteln. Einfacher ist die Verbindung über die IP-Adresse.

Dem Anwender wird jetzt das Konfigurationsformular angeboten, in dem auch der Hostname angezeigt wird. Diesen Hostnamen sollte man sich für die spätere Bedienung notieren!

 

Verwendete URL's der Bedienoberfläche

Nach dem Reboot mit gültiger Konfiguration muß man sich am Windows-PC mit dem normalen Haus-WLAN verbinden. Der Aufruf der Weboberfläche erfolgt im Browser über

http://ESP_A5C68D

Die IP-Adresse wird jetzt angezeigt. Man kann sie alternativ über den DSL-Router herausfinden. Beispielhaft sind hier die URL's für die Bedienung eines 2-Kanal-Schalters aufgeführt:

Nr. URL Bedeutung
 
Konfigurations-Web
0 http://192.168.4.1 Nicht konfigurierter ESP8266: PC mit dem WLAN 'ESPWIFI' verbinden
und diese URL im Browser aufrufen.
 
Interaktive Bedienung 
1 http://ESP_XXXXXX Bedienoberfläche mit allen Befehlen (Homepage)
2 http://ESP_XXXXXX/cfg Formular mit den EEPROM-Konfigurationsdaten zur Ansicht/Änderung
3 http://ESP_XXXXXX/set Formular mit Anzeige der Schalterwerte und Möglichkeit zur Änderung
4 http://ESP_XXXXXX/boot Der ESP8266 wird neu gebootet
5 http://ESP_XXXXXX/delconfig Alle Konfigurationswerte im EEPROM löschen, dann folgt ein
automatischer Reboot. Der ESP8266 startet
dann wieder mit der Konfigurationsoberfläche

 

Bedienung per OpenHAB

6

http://ESP_XXXXXX/get?ch=0

http://ESP_XXXXXX/get?ch=1

Kanal CH0 abfragen (Antwort '0' oder '1')

Kanal CH1 abfragen (Antwort '0' oder '1')

7

http://ESP_XXXXXX/state?ch0=0

http://ESP_XXXXXX/state?ch0=1

Kanal CH0 ausschalten, Keine Antwort

Kanal CH0 einschalten, Keine Antwort

8

http://ESP_XXXXXX/state?ch1=0

http://ESP_XXXXXX/state?ch1=1

Kanal CH1 ausschalten, Keine Antwort

Kanal CH1 einschalten, Keine Antwort

Diese URL's (6) bis (8) sind für die Bedienung per Programm (OpenHAB) implementiert, d.h. beim Aufruf gibt es kein Formular als Rückantwort! Möchte man die Schalter per Weboberfläche bedienen, verwendet man die URL (3). Das Formular kann auch von der Homepage erreicht werden.

 

Steuerung per Taste

Im Programm ist auch noch eine Steuerung über Tasten vorgesehen. Für jeden der zwei Schaltkanäle gibt es einen eigenen Taster, welcher zum Ein-/Ausschalten dient. Je nachdem, wie lange man auf die Taste drückt, werden unterschiedliche Aktionen ausgelöst:

  1. bis zu einer Sekunde: Ausgang umschalten (toggle) bei CH0 und CH1
  2. fünf Sekunden: Reboot des ESP8266, nur über Taster CH0
  3. ab 20 Sekunden: Löschen des EEPROM und Reboot nur über Taster CH0

Das Programm entprellt die Taste zusätzlich (50msec).

 

HTML-Webseiten des ESP8266

Mit dem WLAN des ESP8266 verbinden

Wenn der ESP8266 das erste Mal gestartet wird, dient er als Access Point für 'ESPWIFI'. Der Anwender muß sich mit seinem PC an dieses WLAN verbinden. Die folgenden Screenshots stammen von meinem Windows7-PC. Zuerst klickt man in der Taskleiste rechts unten auf das WLAN-Symbol. Daraufhin öffnet sich die Auflistung der verfügbaren Netzwerke:

Verbinden mit WLAN 1

 

Das WLAN 'ESPWIFI' ist unser Ziel, der Eintrag wird angeklickt:

Verbinden mit WLAN 2

 

Über den Button 'Verbinden' stellt man die Verbindung her. Der PC erhält automatisch eine IP-Adresse, welche zum WLAN passt. Anschliessend öffnet man den Browser und gibt die IP-Adresse ein:

Browser aufrufen

 

Webformular Konfiguration

Es öffnet sich die Konfigurationsseite des ESP8266. Im oberen Teil werden die verfügbaren WLANs angezeigt:

Konfigurationsseite

 

Jetzt gibt man SSID und Passwort in das Formular ein, das sind die Mindestinformationen. Anschliessend klickt man den Button 'Save' an. Die Parameter werden jetzt im EEPROM des ESP8266 gespeichert und der Reboot veranlasst:

Webpage Reboot

Jetzt wechselt man mit dem PC in das neu konfigurierte WLAN und kann im Browser den Hostnamen 'ESP_A5C68D' aufrufen. Der Webserver für die Bedienung wird gestartet.

 

Webformulare Bedienung

Der Webserver im Betrieb bietet mehrere Möglichkeiten, welche von der Homepage aus aufgerufen werden können.

 

Homepage

Die Homepage bietet die Asuwahl aller vorhandenen Funktionen an

Homepage

 

Schalterbedienung

Der Zustand der Schaltausgänge wird angezeigt und kann über die Radio Buttons geändert werden. Durch Klick auf 'Set Channel' wird die gewünschte Änderung ausgeführt und das Formular anschließend mit dem neuen Schaltzustand wieder angezeigt.

Webpage Bedienung

 

Konfiguration

Auch im Betriebsmodus steht die Konfigurationsseite zur Verfügung. Damit können einzelne Parameter gezielt angepasst werden. Beim Klick auf 'Save' werden sie im EEPROM gespeichert und der ESP8266 anschließend neu gebootet.

Configuration webpage in normal mode

 

Reboot

Damit kann der Chip per Software neu gestartet werden. Die Konfigurationsdaten im EEPROM werden nicht verändert.

Webpage Reboot

 

EEPROM löschen und booten

Über diese Funktion werden alle Parameter aus dem EEPROM gelöscht. Dies entspricht einem Zurücksetzen in den Auslieferungszustand. Damit die Änderungen übernommen werden, wird der ESP8266 anschließend neu gebootet. Der Anwender muß sich dann wieder mit dem Netzwerk  'ESPWIFI' verbinden und die Adresse 192.168.4.1 im Browser angeben.

Webpage Reboot

 

Fazit

Diese Konfigurationsprogramm ist zwar aufwändig, kann aber für alle ESP8266-Projekte verwendet werden. Die Implementierung der Schalt-/Messfunktionen ist relativ einfach. Der Hauptaufwand liegt in der Programmierung der Konfiguration.

 

Download des Beispielprogramms

Ihr könnt Euch das Beispielprogramm eines Doppelschalters mit zwei Tastern hier herunterladen:

noch nicht fertig!