ESP8266: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
(kompletter Umbau, Text aktualisiert)
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.
[[ESP8266]] ist ein WLAN-Funkmodul von der chinesischen Firma Espressif, das einfach programmiert werden kann. Es erlaubt die Anbindung von Sensoren und Aktoren mit FHEM. Mehrere Schaltaktoren haben diesen Chip verbaut und können daher umgeflasht werden, so dass eine Einbindung in FHEM möglich ist.  


{{Todo|[[Benutzer:andies]]Diese Seite sollte grundsätzlich überarbeitet werden. Vieles passt hier nicht mehr. Es gibt beispielsweise die Sonoffs, die den ESP verbaut haben; Tasmota und ESPEasy, das hier Erwähnung finden sollte sowie die Eigenbau-Platinen, die auf den ESP setzen. Eine Einbindung mit dummies ist auch nicht ideal. Ich würde radikal löschen, wenn sich keiner beschwert. Mai 2019}}
== ESP8266 Technische Daten ==
 
Das Datenblatt kann man auf der [https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf Webseite von espressif] herunterladen. Weitere technische Details über ESP8266 sind im [https://www.mikrocontroller.net/articles/ESP8266 mikrocontroller.net] zu finden. Auch in der [https://de.wikipedia.org/wiki/ESP8266 Wikipedia] finden sich interessante Informationen.
'''Habe und hatte nie was dagegen das hier was geändert wird zum Wohle aller - kenne mich mit wikis leider noch nicht so gut aus'''
{{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.
 
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 ==
== ESP8266 mit einer alternativen Firmware flashen ==
[[Datei:Bauteile.jpg|mini|rechts|Bauteile]]
Sehr viel Informationen zum flashen des Chips findet man {{Link2Forum|Topic=46205|LinkText=in diesem Forumthread}}. Ein hilfreiches Video findet sich [https://www.youtube.com/watch?v=Gh_pgqjfeQc hier].
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 [https://www.youtube.com/watch?v=Gh_pgqjfeQc hier].


[[Datei:Verdrahtung.jpg|mini|rechts|Verdrahtung im Original]]
[[Datei:Verdrahtung.jpg|mini|rechts|Verdrahtung im Original]]


ESP  < - > USB-Adapter ; TX    < - > RX , RX    < - > TX , VCC  < - > 3.3V , CH_PD < - > 3.3V , GND  < - > GND , GPIO0 < - > GND
ESP  < - > USB-Adapter
 
  TX    < - > RX
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.
  RX    < - > TX
 
  VCC  < - > 3.3V
Nachdem der USB Adapter am Computer angeschlossen wurde, sollte man im Gerätemanager den zugewiesenen Port nachsehen.
  CH_PD < - > 3.3V
 
  GND  < - > GND
Im kommenden Schritt müssen wir uns den nodemcu-flasher z.B. von dieser Seite laden und installieren:
  GPIO0 < - > GND
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.
 
[[Datei:ESP_Flash.jpg|mini|rechts|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 [http://esp8266.ru/esplorer/ 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.
 
[[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 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 {{Link2Forum|Topic=28905|Message=297133|LinkText=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 <code>attr WEB basicAuth</code> 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 {{Link2CmdRef|Anker=basicAuth}} von FHEM gibt es dazu einige Zeilen.


Hier ein Möglichkeit den String zu verschlüsseln: https://www.base64encode.org
Es ist unbedingt darauf zu achten, dass der ESP nur mit 3,3 Volt betrieben werden darf.
=== ESPLink ===
ESPLink ist eine open-source Firmware von [https://github.com/jeelabs/esp-link jeelabs], deren Weiterentwicklung anscheinend eingestellt wurde. Sie erlaubt die Anbindung einer seriellen Schnittstelle ans Internet (Port 23) über den ESP. Weitere Sensoren können nicht oder nur mit Abänderung der Firmware verwendet werden.


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


Dieser String ist nun meine Anmeldung am FHEM Server und wird im lua Code eingefügt.
=== ESPEasy ===
ESPEasy ist eine open-source Firmware von [https://www.letscontrolit.com/wiki/index.php/ESPEasy Letscontrolit], die beständig weiterentwickelt wird. Sie erstellt eine GUI, mit der eine Einbindung in FHEM leicht gelingt und verschiedene Sensoren eingebunden werden können. Dabei muss man davon ausgehen, dass man den Chip selbst verdrahten muss.


Nun kann dies in der oben beschrieben Reihenfolge geflasht werden.
=== Tasmota ===
Tasmota ist eine open-source Firmware von [https://github.com/arendst/Sonoff-Tasmota Theo Arends], die beständig weiterentwickelt wird. Sie erstellt eine GUI, die eine Einbindung in FHEM erlaubt und zudem eine MQTT-Einbindung erstellt. Oft kann man Tasmota ohne größere Umbauten am Gerät auf den Chip übertragen.


== Hinweise zum Betrieb mit FHEM ==
== Bekannte Geräte ==
[[Datei:ESP_FHEM_1.jpg|mini|rechts|Dummy für ESP8266 in der Details-Ansicht]]
Mehrere Geräte, die in FHEM eingebunden werden können, enthalten den ESP8266 und eignen sich daher zum flashen. Zu nennen sind (Angabe mit Forenthreads oder Wikieinträgen)
Es muss eigentlich nur ein dummy eingerichtet werden, also
:<code>define esp8266temp dummy</code>
Die Ausgabe in FHEM sollte dann so aussehen wie im nebenstehenden Bild gezeigt.


Formatierungen und Weiterverarbeitung folgen, nachdem ich es selbst verstanden habe.
{|
| Sonoff-Gerätegruppe
| [https://wiki.fhem.de/wiki/Sonoff Wikieintrag]
|-
| Shelly-Aktoren
| [https://wiki.fhem.de/wiki/Shelly-Aktoren Wikieintrag]
|-
| diverse Eigenbauprojekte
| {{Link2Forum|Topic=91042|LinkText=Forumthread}}
|}


== Bekannte Probleme ==
== Bekannte Probleme ==

Version vom 11. Mai 2019, 18:51 Uhr

ESP8266 ist ein WLAN-Funkmodul von der chinesischen Firma Espressif, das einfach programmiert werden kann. Es erlaubt die Anbindung von Sensoren und Aktoren mit FHEM. Mehrere Schaltaktoren haben diesen Chip verbaut und können daher umgeflasht werden, so dass eine Einbindung in FHEM möglich ist.

ESP8266 Technische Daten

Das Datenblatt kann man auf der Webseite von espressif herunterladen. Weitere technische Details über ESP8266 sind im mikrocontroller.net zu finden. Auch in der Wikipedia finden sich interessante Informationen.

ESP8266 mit einer alternativen Firmware flashen

Sehr viel Informationen zum flashen des Chips findet man in diesem Forumthread. Ein hilfreiches Video 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.

ESPLink

ESPLink ist eine open-source Firmware von jeelabs, deren Weiterentwicklung anscheinend eingestellt wurde. Sie erlaubt die Anbindung einer seriellen Schnittstelle ans Internet (Port 23) über den ESP. Weitere Sensoren können nicht oder nur mit Abänderung der Firmware verwendet werden.


ESPEasy

ESPEasy ist eine open-source Firmware von Letscontrolit, die beständig weiterentwickelt wird. Sie erstellt eine GUI, mit der eine Einbindung in FHEM leicht gelingt und verschiedene Sensoren eingebunden werden können. Dabei muss man davon ausgehen, dass man den Chip selbst verdrahten muss.

Tasmota

Tasmota ist eine open-source Firmware von Theo Arends, die beständig weiterentwickelt wird. Sie erstellt eine GUI, die eine Einbindung in FHEM erlaubt und zudem eine MQTT-Einbindung erstellt. Oft kann man Tasmota ohne größere Umbauten am Gerät auf den Chip übertragen.

Bekannte Geräte

Mehrere Geräte, die in FHEM eingebunden werden können, enthalten den ESP8266 und eignen sich daher zum flashen. Zu nennen sind (Angabe mit Forenthreads oder Wikieinträgen)

Sonoff-Gerätegruppe Wikieintrag
Shelly-Aktoren Wikieintrag
diverse Eigenbauprojekte Forumthread

Bekannte Probleme

Mein USB Seriell Adapter hatte scheinbar Probleme beim Flashen der alternativen Firmware. Nach einem Tipp aus dem Forum, alternativ einen Arduino 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