ESP8266: Unterschied zwischen den Versionen

Aus FHEMWiki
(Generellen Umbau der Seite vorbereitet; Formatierung an vielen Stellen überarbeitet; Tippfehler teilweise korrigiert)
Zeile 1: Zeile 1:
[[ESP8266]] ist ein WLAN-Funkmodul welches einfach programmiert werden kann und über das Sensoren und Aktoren mit FHEM kommunizieren können. Es gibt diverse Versionen des ESP8266 mit unterschiedlichem Funktionsumfang. Technische Details über ESP8266 sind auch im [https://www.mikrocontroller.net/articles/ESP8266 mikrocontroller.net] zu finden.
{{Todo|@[[Benutzer:Franz Tenbrock]] - sofern Du nicht selbst in dieser Richtung aktiv wirst, wird dieser Artikel in nächster Zeit in eine Einstiegsseite zum ESP8266-Thema umgebaut (seit deinem Versprechen, die Seite zu ergänzen ist mittlerweile ein Jahr vergangen). --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 08:57, 4. Mai 2016 (CEST)}}
{{Randnotiz|RNText=Ein umfassender Überblick über das Thema ESP8266 - insbesondere in Verbindung mit der Beschreibung, wie mit ESPEasy ein Universal-Sketch auf den ESP8266 gebracht wird, findet sich in {{Link2Forum|Topic=46205|LinkText=diesem Forenthema}}. Ein großer Teil dieser Informationen ist geeignet, auf diese Seite aufgenommen zu werden.}}
Um einen Einblick in die Möglichkeiten zu geben, werden hier die Schritte zum Aufbau eines ESP8266 - 01 18B20 Thermosensors beschrieben.


== Das Modul - Die Module ==
Soweit es mir gelingen sollte, werde ich in den nächsten Wochen einige Beispiele für Sensoren hier nach und nach hochladen.  
Dieses kleine Bauteil, welches für wenige Euros zu bekommen ist, ist ein WLAN-Funkmodul welches einfach programmiert werden kann und über Sensoren und Aktoren mit FHEM kommunizieren kann.
Es gibt mindestens 13 verschiedene Versionen des ESP8266 mit unterschiedlichem Funktionsumfang.
 
https://www.mikrocontroller.net/articles/ESP8266
 
Um einen Einblick in die Möglichkeiten zu geben werden hier die Schritte zum Aufbau eines ESP8266 - 01 18B20 Thermosensors beschrieben.
 
Soweit es mir gelingen sollte werde ich in den nächsten Wochen einige Beispiele für Sensoren hier nach und nach hochladen.  


Vorschläge von Kategorien wo die Seite auftauchen sollen werden gerne entgegengenommen.
Vorschläge von Kategorien wo die Seite auftauchen sollen werden gerne entgegengenommen.


''Ich werde die Seite in den nächsten Tagen nach und nach ergänzen und mich mit dem Wiki vertraut machen. Interessieren würde es mich ob Anfänger, die diese Anleitung Schritt für Schritt durchgegangen sind damit problemlos zurecht kommen, falls Probleme auftreten, einfach bei mir melden''
''Ich werde die Seite in den nächsten Tagen nach und nach ergänzen und mich mit dem Wiki vertraut machen. Interessieren würde es mich, ob Anfänger, die diese Anleitung Schritt für Schritt durchgegangen sind damit problemlos zurecht kommen, falls Probleme auftreten, einfach bei mir melden''


== ESP8266 mit einer alternativen Firmware flashen ==
== ESP8266 mit einer alternativen Firmware flashen ==
[[Datei:Bauteile.jpg|mini|rechts|Bauteile]]
Wir benötigen einen ESP8266 01, einige Jumper Kabel, ein USB Kabel und einen USB-Uart Adapter mit 3,3 Volt. Es gibt aber auch solche Adapter mit 3,3 und 5 Volt die man dann per Jumper einstellen kann.
Wir benötigen einen ESP8266 01, einige Jumper Kabel, ein USB Kabel und einen USB-Uart Adapter mit 3,3 Volt. Es gibt aber auch solche Adapter mit 3,3 und 5 Volt die man dann per Jumper einstellen kann.
Da der kleine ESP nicht auf ein Breadboard passt, kann man sich ein Jumperkabel, wie es auf dem Bild zu sehen ist, anfertigen. So kann man schnell die benötigten Verbindungen anfertigen.
Da der kleine ESP nicht auf ein Breadboard passt, kann man sich ein Jumperkabel, wie es auf dem Bild zu sehen ist, anfertigen. So kann man schnell die benötigten Verbindungen anfertigen.


Ein Video das mir sehr geholfen hat findet sich hier:
Ein Video das mir sehr geholfen hat findet sich [https://www.youtube.com/watch?v=Gh_pgqjfeQc hier].
https://www.youtube.com/watch?v=Gh_pgqjfeQc


[[Datei:Bauteile.jpg]]
[[Datei:Verdrahtung.jpg|mini|rechts|Verdrahtung im Original]]
 
Hier ein Bild von der Verdrahtung im Orginal
 
[[Datei:Verdrahtung.jpg]]


ESP  < - > USB-Adapter ;  TX    < - > RX  ,  RX    < - > TX  ,  VCC  < - > 3.3V  ,  CH_PD < - > 3.3V  ,  GND  < - > GND  ,  GPIO0 < - > GND
ESP  < - > USB-Adapter ;  TX    < - > RX  ,  RX    < - > TX  ,  VCC  < - > 3.3V  ,  CH_PD < - > 3.3V  ,  GND  < - > GND  ,  GPIO0 < - > GND


Es ist unbedingt darauf zu achten, daß der ESP nur mit 3,3 Volt betrieben werden darf.
Es ist unbedingt darauf zu achten, dass der ESP nur mit 3,3 Volt betrieben werden darf. Also den Jumper auf dem Board noch einmal kontrollieren, bevor man diesen an den Computer anschließt.
Also den Jumper auf dem Board noch einmal kontrollieren, bevor man diesen an den Computer anschließt.


Nachdem der USB Adapter am Computer angeschlossen wurde, sollte man im Gerätemanager den zugewiesenen Port nachsehen.
Nachdem der USB Adapter am Computer angeschlossen wurde, sollte man im Gerätemanager den zugewiesenen Port nachsehen.


Im kommenden Schritt müssen wir uns den nodemcu-flasher z.B. von dieser Seite laden und installieren:
Im kommenden Schritt müssen wir uns den nodemcu-flasher z.B. von dieser Seite laden und installieren:  
https://github.com/nodemcu/nodemcu-flasher
https://github.com/nodemcu/nodemcu-flasher


dazu noch die benötigten Firmware Dateien:
dazu noch die benötigten Firmware Dateien: https://github.com/nodemcu/nodemcu-firmware
https://github.com/nodemcu/nodemcu-firmware


Der Flasher wird nun gestartet und die benötigte Firmware Datei in den Flasher geladen.
Der Flasher wird nun gestartet und die benötigte Firmware Datei in den Flasher geladen.
Zeile 46: Zeile 36:
Der Flashvorgang kann nun mit einem Klick gestartet werden und sollte vollautomatisch durchlaufen.
Der Flashvorgang kann nun mit einem Klick gestartet werden und sollte vollautomatisch durchlaufen.


Am Ende sollte es so aussehen:
[[Datei:ESP_Flash.jpg|mini|rechts|Anzeige im Flasher nach dem flashen]]
 
[[Datei:ESP_Flash.jpg]]


Nun am besten den Adapter vom PC nehmen und GND von GPIO 0 trennen. '''Diese Verbindung wird nur beim flashen benötigt.'''
Nun am besten den Adapter vom PC nehmen und GND von GPIO 0 trennen. '''Diese Verbindung wird nur beim flashen benötigt.'''


== Lua Scripte aufspielen ==
== Lua Scripte aufspielen ==
Für das speichern der LUA Scripte nimmt man am besten den Esplorer.
Für das Speichern der LUA Scripte nimmt man am besten den [http://esp8266.ru/esplorer/ Esplorer]. Den Esplorer downloaden und installieren.
 
http://esp8266.ru/esplorer/
Den Esplorer downloaden und installieren.


In diesem Beispiel werde ich einen Temperatursensor 18B20 mit dem ESP verbinden, um die Temperatur auszugeben. Dazu verbinde ich die Datenleitung des Temperatursensors mit dem GPIO0 und versorge den Sensor mit VCC und GND.  
In diesem Beispiel werde ich einen Temperatursensor 18B20 mit dem ESP verbinden, um die Temperatur auszugeben. Dazu verbinde ich die Datenleitung des Temperatursensors mit dem GPIO0 und versorge den Sensor mit VCC und GND.  


Den Adapter mit ESP sowie Temperatursensor wird nun wieder mit dem Computer verbunden.
[[Datei:esplorer_open.jpg|mini|rechts|Esplorer Startbildschirm]]
 
Der Adapter mit ESP sowie Temperatursensor wird nun wieder mit dem Computer verbunden.
Das Programm Esplorer.jr dann starten.
Es erscheint nun folgender Startbildschirm


[[Datei:esplorer_open.jpg]]
Das Programm Esplorer.jr dann starten. Es erscheint nun der nebenstehend gezeigte Startbildschirm


Hier wurde der Adapter erkannt und der esp mit der alternativen Firmware gestartet
Hier wurde der Adapter erkannt und der ESP mit der alternativen Firmware gestartet. Im Folgenden kann der ESP nun mit den erforderlichen LUA Skripten versehen werden. Für unser Beispiel haben wir drei Skripte die aus diesem {{Link2Forum|Topic=28905|Message=297133|LinkText=Forenbeitrag}} geladen werden können.
Im folgenden kann der ESP nun mit den erforderlichen LUA Skripten versehen werden.
für unser Beispiel haben wir 3 Skripte die im FHEM Forum geladen werden können.
http://forum.fhem.de/index.php/topic,28905.msg297133.html#msg297133


Diese sollten nun in folgender Reihenfolge gespeichert werden.
Diese sollten nun in folgender Reihenfolge gespeichert werden: zuerst die DS18b20.lua, dann die fhem.lua und zum Abschluß die init.lua  
zuerst die DS18b20.lua, dann die fhem.lua und zum Abschluß die init.lua  


Doch bevor dies gemacht wird müssen noch einige Änderungen am Code vorgenommen werden.
Doch bevor dies gemacht wird, müssen noch einige Änderungen am Code vorgenommen werden. In der Init.lua die SSID und das Passwort, in der fhem..... .lua die IP Adresse des FHEM Servers.
In der Init.lua die SSID und das Passwort
In der fhem..... .lua die IP Adresse vom FHEM Server.


Mit diesen Änderungen kann der ESP nun geflasht werden.  
Mit diesen Änderungen kann der ESP nun geflasht werden. '''Ist der FHEM Server über ein <code>attr WEB basicAuth</code> gesichert, muss der Anmeldevorgang noch erweitert werden.'''
'''Ist der FHEM Server allerding über ein attr WEB basicAuth gesichert, so muss der Anmeldvorgang noch erweitert werden.'''


Der gesamte Code muss dann so aussehen
Der gesamte Code muss dann so aussehen:
--fhem.lua
--fhem.lua
  require('ds18b20')
  require('ds18b20')
Zeile 111: Zeile 87:
  http://fhem.de/commandref.html#basicAuth
  http://fhem.de/commandref.html#basicAuth


Hier ein Möglichkeit den String zu verschlüsseln:
Hier ein Möglichkeit den String zu verschlüsseln: https://www.base64encode.org
https://www.base64encode.org


Wenn ich die Seite aufrufe gebe ich im oberen Feld zB ein:
Wenn ich die Seite aufrufe gebe ich im oberen Feld z.B. ein:
user:1234
:<code>user:1234</code>
und es erscheint dann im unteren Feld der benötigte String
und es erscheint dann im unteren Feld der benötigte String
dXNlcjoxMjM0
:<code>dXNlcjoxMjM0</code>


Dieser String ist nun meine Anmeldung am FHEM Server und wird im lua Code eingefügt.
Dieser String ist nun meine Anmeldung am FHEM Server und wird im lua Code eingefügt.
Zeile 124: Zeile 99:


== Hinweise zum Betrieb mit FHEM ==
== Hinweise zum Betrieb mit FHEM ==
Es muss eigentlich nur ein dummy eingerichtet werden
[[Datei:ESP_FHEM_1.jpg|mini|rechts|Dummy für ESP8266 in der Details-Ansicht]]
Also
Es muss eigentlich nur ein dummy eingerichtet werden, also
define esp8266temp dummy
:<code>define esp8266temp dummy</code>
Die Ausgabe in FHEM sollte dann so aussehen:
Die Ausgabe in FHEM sollte dann so aussehen wie im nebenstehenden Bild gezeigt.
 
[[Datei:ESP_FHEM_1.jpg]]


Formatierungen und Weiterverarbeitung folgen, nachdem ich es selbst verstanden habe.
Formatierungen und Weiterverarbeitung folgen, nachdem ich es selbst verstanden habe.


== Bekannte Probleme ==
== Bekannte Probleme ==
 
Mein USB Seriell Adapter hatte scheinbar Probleme beim flashen der alternativen Firmware. Nach einem Tipp aus dem Forum, alternativ einen Ardunio nano mit FTDI Chip zu nehmen, den ich zum Glück hatte, lief alles problemlos.
Mein USB Seriell Adapter hatte scheinbar Probleme beim flashen der alternativen Firmware.
Nach einem Tipp aus dem Forum alternativ einen Ardunio nano mit FTDI Chip zu nehmen, den ich zum Glück hatte, lief alles problemlos.


== Links ==
== Links ==
 
* Hier schon mal die Anleitung als Word Dokument, meinen Dank an alle die dabei im Vorfeld geholfen haben [http://forum.fhem.de/index.php/topic,28905.msg297646.html#msg297646 Anleitung]
Hier schon mal die Anleitung als Word Dokument, meinen Dank an alle die dabei im Vorfeld geholfen haben
* Im Netz gibt es ein entsprechendes Forum [http://www.esp8266.com www.esp8266.com]
[ http://forum.fhem.de/index.php/topic,28905.msg297646.html#msg297646 Anleitung]
 
 
 
Im Netz gibt es ein entsprechendes Forum
[http://www.esp8266.com www.esp8266.com]


[[Kategorie:Other Components]]
[[Kategorie:Other Components]]
[[Kategorie:IP Components]]
[[Kategorie:IP Components]]

Version vom 4. Mai 2016, 08:57 Uhr

ESP8266 ist ein WLAN-Funkmodul welches einfach programmiert werden kann und über das Sensoren und Aktoren mit FHEM kommunizieren können. Es gibt diverse Versionen des ESP8266 mit unterschiedlichem Funktionsumfang. Technische Details über ESP8266 sind auch im mikrocontroller.net zu finden.

Todo: @Benutzer:Franz Tenbrock - sofern Du nicht selbst in dieser Richtung aktiv wirst, wird dieser Artikel in nächster Zeit in eine Einstiegsseite zum ESP8266-Thema umgebaut (seit deinem Versprechen, die Seite zu ergänzen ist mittlerweile ein Jahr vergangen). --Peter (Diskussion) 08:57, 4. Mai 2016 (CEST)
Info green.pngEin umfassender Überblick über das Thema ESP8266 - insbesondere in Verbindung mit der Beschreibung, wie mit ESPEasy ein Universal-Sketch auf den ESP8266 gebracht wird, findet sich in diesem Forenthema. Ein großer Teil dieser Informationen ist geeignet, auf diese Seite aufgenommen zu werden.

Um einen Einblick in die Möglichkeiten zu geben, werden hier die Schritte zum Aufbau eines ESP8266 - 01 18B20 Thermosensors beschrieben.

Soweit es mir gelingen sollte, werde ich in den nächsten Wochen einige Beispiele für Sensoren hier nach und nach hochladen.

Vorschläge von Kategorien wo die Seite auftauchen sollen werden gerne entgegengenommen.

Ich werde die Seite in den nächsten Tagen nach und nach ergänzen und mich mit dem Wiki vertraut machen. Interessieren würde es mich, ob Anfänger, die diese Anleitung Schritt für Schritt durchgegangen sind damit problemlos zurecht kommen, falls Probleme auftreten, einfach bei mir melden

ESP8266 mit einer alternativen Firmware flashen

Bauteile

Wir benötigen einen ESP8266 01, einige Jumper Kabel, ein USB Kabel und einen USB-Uart Adapter mit 3,3 Volt. Es gibt aber auch solche Adapter mit 3,3 und 5 Volt die man dann per Jumper einstellen kann. Da der kleine ESP nicht auf ein Breadboard passt, kann man sich ein Jumperkabel, wie es auf dem Bild zu sehen ist, anfertigen. So kann man schnell die benötigten Verbindungen anfertigen.

Ein Video das mir sehr geholfen hat findet sich hier.

Verdrahtung im Original

ESP < - > USB-Adapter ; TX < - > RX , RX < - > TX , VCC < - > 3.3V , CH_PD < - > 3.3V , GND < - > GND , GPIO0 < - > GND

Es ist unbedingt darauf zu achten, dass der ESP nur mit 3,3 Volt betrieben werden darf. Also den Jumper auf dem Board noch einmal kontrollieren, bevor man diesen an den Computer anschließt.

Nachdem der USB Adapter am Computer angeschlossen wurde, sollte man im Gerätemanager den zugewiesenen Port nachsehen.

Im kommenden Schritt müssen wir uns den nodemcu-flasher z.B. von dieser Seite laden und installieren: https://github.com/nodemcu/nodemcu-flasher

dazu noch die benötigten Firmware Dateien: https://github.com/nodemcu/nodemcu-firmware

Der Flasher wird nun gestartet und die benötigte Firmware Datei in den Flasher geladen.

nodemcu_integer_0.9.6-dev_20150406.bin

Der Flashvorgang kann nun mit einem Klick gestartet werden und sollte vollautomatisch durchlaufen.

Anzeige im Flasher nach dem flashen

Nun am besten den Adapter vom PC nehmen und GND von GPIO 0 trennen. Diese Verbindung wird nur beim flashen benötigt.

Lua Scripte aufspielen

Für das Speichern der LUA Scripte nimmt man am besten den Esplorer. Den Esplorer downloaden und installieren.

In diesem Beispiel werde ich einen Temperatursensor 18B20 mit dem ESP verbinden, um die Temperatur auszugeben. Dazu verbinde ich die Datenleitung des Temperatursensors mit dem GPIO0 und versorge den Sensor mit VCC und GND.

Esplorer Startbildschirm

Der Adapter mit ESP sowie Temperatursensor wird nun wieder mit dem Computer verbunden.

Das Programm Esplorer.jr dann starten. Es erscheint nun der nebenstehend gezeigte Startbildschirm

Hier wurde der Adapter erkannt und der ESP mit der alternativen Firmware gestartet. Im Folgenden kann der ESP nun mit den erforderlichen LUA Skripten versehen werden. Für unser Beispiel haben wir drei Skripte die aus diesem Forenbeitrag geladen werden können.

Diese sollten nun in folgender Reihenfolge gespeichert werden: zuerst die DS18b20.lua, dann die fhem.lua und zum Abschluß die init.lua

Doch bevor dies gemacht wird, müssen noch einige Änderungen am Code vorgenommen werden. In der Init.lua die SSID und das Passwort, in der fhem..... .lua die IP Adresse des FHEM Servers.

Mit diesen Änderungen kann der ESP nun geflasht werden. Ist der FHEM Server über ein attr WEB basicAuth gesichert, muss der Anmeldevorgang noch erweitert werden.

Der gesamte Code muss dann so aussehen: --fhem.lua

require('ds18b20')
-- ESP-01 GPIO Mapping
gpio0 =3
gpio2 =4
ds18b20.setup(gpio0)
t=ds18b20.read()
print("Temp:" .. ds18b20.read() .. " C\n")
if(t==nil) then
t=0
end
tmr.alarm(0,30000, 1, function()
t=ds18b20.read()
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end )
conn:connect(8083,"192.168.178.46")
conn:send("GET /fhem?cmd=setreading%20esp8266temp%20state%20T:%20" ..t.. "\r\n" 
           .. "HTTP/1.1\r\n"
           .. "Host: www.local.lan\r\n"
           .. "Authorization: Basic Rsdfsfdsno6MDYwMg==\r\n" 
           .. "Connection: keep-alive\r\n"
           .. "Accept: */*\r\n\r\n") 
end)

Dieser Anteil muss nun gegen ausgetauscht werden. Er ist hier mit base64encode verschlüsselt. In der commandref von FHEM gibt es dazu einige Zeilen

http://fhem.de/commandref.html#basicAuth

Hier ein Möglichkeit den String zu verschlüsseln: https://www.base64encode.org

Wenn ich die Seite aufrufe gebe ich im oberen Feld z.B. ein:

user:1234

und es erscheint dann im unteren Feld der benötigte String

dXNlcjoxMjM0

Dieser String ist nun meine Anmeldung am FHEM Server und wird im lua Code eingefügt.

Nun kann dies in der oben beschrieben Reihenfolge geflasht werden.

Hinweise zum Betrieb mit FHEM

Dummy für ESP8266 in der Details-Ansicht

Es muss eigentlich nur ein dummy eingerichtet werden, also

define esp8266temp dummy

Die Ausgabe in FHEM sollte dann so aussehen wie im nebenstehenden Bild gezeigt.

Formatierungen und Weiterverarbeitung folgen, nachdem ich es selbst verstanden habe.

Bekannte Probleme

Mein USB Seriell Adapter hatte scheinbar Probleme beim flashen der alternativen Firmware. Nach einem Tipp aus dem Forum, alternativ einen Ardunio nano mit FTDI Chip zu nehmen, den ich zum Glück hatte, lief alles problemlos.

Links

  • Hier schon mal die Anleitung als Word Dokument, meinen Dank an alle die dabei im Vorfeld geholfen haben Anleitung
  • Im Netz gibt es ein entsprechendes Forum www.esp8266.com