ESP8266: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 143: | Zeile 143: | ||
Im Netz gibt es ein entsprechendes Forum | Im Netz gibt es ein entsprechendes Forum | ||
[http://www.esp8266.com www.esp8266.com] | [http://www.esp8266.com www.esp8266.com] | ||
[[Kategorie:Other Components]] |
Version vom 29. Mai 2015, 17:37 Uhr
Das Modul - Die Module
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 beschrieben.
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
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: https://www.youtube.com/watch?v=Gh_pgqjfeQc
Hier ein Bild von der Verdrahtung im Orginal
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. 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.
Am Ende sollte es so aussehen:
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.
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.
Den Adapter mit ESP sowie Temperatursensor wird nun wieder mit dem Computer verbunden.
Das Programm Esplorer.jr dann starten. Es erscheint nun folgender 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 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. 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 vom FHEM Server.
Mit diesen Änderungen kann der ESP nun geflasht 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 --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 zB 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
Es muss eigentlich nur ein dummy eingerichtet werden Also define esp8266temp dummy Die Ausgabe in FHEM sollte dann so aussehen:
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 [ http://forum.fhem.de/index.php/topic,28905.msg297646.html#msg297646 Anleitung]
Im Netz gibt es ein entsprechendes Forum www.esp8266.com