ESP8266 mit ESPEasy in wenigen Minuten an Fhem anbinden

Begonnen von Reinhart, 26 Dezember 2015, 10:33:51

Vorheriges Thema - Nächstes Thema

Shardan

Seit einigen Tagen spiele ich mit einigen ESP's und Firmware herum, einige Hinweise, die vlt. weiterhelfen.

- die R78 von ESPeasy lässt sich völlig problemfrei mit dem beigefügten Batch flashen (greift intern auf esptool zu)

- die Arduino IDE 1.6.8  kann das derzeit aktuelle R99 von ESPeasy problemfrei kompilieren.

Hier ist etwas Vorsicht angeraten: Es wird bei der IDE ein Library-Update angeboten, das scheint derzeit irgendwas zu zerschießen. 
Beim Kompilieren muss man auf einige Voreinstellungen achten. Für das neuere NodeMCU mit 4MB Speicher sind die Voreinstellungen vorhanden. Für alle anderen Module wählt man "Generic ESP8266" aus und muss dann die Flashgröße setzen. Hier unbedingt min, 64 KB SPIFFS auswählen, ESPeasy funktioniert nicht ohne SPIFFS.

Das größte Problem dürfte derzeit wohl die Flashgröße sein. Es sind derzeit viele verschiedene Module in Umlauf und es ist keineswegs immer klar, welche Flashgröße drin steckt. Soweit ich das derzeit überschaue, sind folgende Größen verbaut (Ohne Gewähr):
ESP-01 (blau)..........512KB
ESP-01 (schwarz).....1024KB
ESP-07...................512KB (statt gedrucker Antenne eine Keramikantenne und ein Antennenanschluss)
ESP-12...................512KB
ESP-12E/F...............4096KB (erkennbar an zusätzlichen Kontakten an der Stirnseite)
ESP-201.................512KB
ESP-Wroom-02........4096KB ? (noch ungetestet)

Aber Vorsicht: Diese Angaben können sich jederzeit ändern.

Beim Flashen der R99 gab es einige Probleme.
Der Flashvorgang läuft einwandfrei, danach hängt das Modul und die blaue LED zeigt Dauerlicht.
Der serielle Monitor zeigt, dass das Modul intern in einer Fehlerschleife steckt.

Die genaue Ursache ist noch nicht gefunden. Vermutlich wird irgendwo beim Flashen der Speicher nicht korrekt gelöscht?
Ein Workaround dazu: Mit dem NodeMCU Flasher einmal das NodeMCU draufspielen, danach nochmal die ESPeasy R99 flashen.
Danach löscht ESPeasy seine Datenbereiche und funktioniert dann korrekt.

- NodeMCU (LUA Interpreter/Compiler)
Wer einiges an Info zu NodeMCU braucht und eine zugeschnittene Firmware gleich dazu, dem sei http://nodemcu-build.com ans Herz gelegt.
Hier kann man sich die LUA-Firmware nach Maß zurechtschneidern, mit den Modulen, die man braucht. Jedes Modul ist sehr gut dokumentiert, einfach auf das Buchsymbol neben dem Modulnamen klicken.

- Hardware
Wer ein fertiges "stackable" Modul sucht: Das "Wemos D1 mini" ist da sehr nett. Leider in Deutschland nicht oder nur sehr teuer zu haben.
http://de.aliexpress.com/store/product/D1-mini-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266/1331105_32529101036.html
Dafür gibt es einige sehr nette Shields, Relais, DHT11, DHT22 usw. Das Teil hat direkt einen USB on board und kann entsprechend einfach programmiert werden.

- Kompletter Reset
Manchmal sucht man die dümmsten Dinge...  Einige Module wollte ich komplett neu konfigurieren, aber die gespeicherten Konfigurationen überstehen sogar ein erneutes Firmware flashen. Das kann doch etwas lästig werden, zumal ESPeasy da nicht wirklich sauber zu arbeiten scheint. Entfernt man z.B. einen Task, wird der scheinbar nur ausgeblendet, irgendwelche Reste stören noch aus dem Untergrund.
Hier hilft ein kompletter Reset:
Seriellen Monitor anhängen, ESPlorer tut hier bei mir dafür gute Dienste. http://esp8266.ru/esplorer/
Nun einfach ein "Reset" an den ESP senden - das setzt die gesamte Konfiguration zurück, einschließlich WLAN.

- Ein Hinweis zur Stromversorgung bei externen Programmieradaptern:
Es gibt eine Unmenge USB -UART Adapter auf dem Markt, die auch 3,3V haben. Das ist zwingend, die ESP sind nicht 5V-tolerant.
Und wenn es noch so verlockend ist: Benutzt beim Flashen unbedingt eine eigene Stromversorung für das ESP-Modul, nicht die 3,3 V des Adapters. Bei vielen Adaptern ist die Spannungsquelle zu schwach und es gibt seltsame Ergebnisse. Bei mir verschwanden einige Adapter aus dem Gerätemanager, sobald man das Modul und den Adapter verbunden hatte.....

Batterieversorgung:
Das Thema Batterieversorgung ist einige Male angesprochen worden, dazu folgendes:
Der Spannungswandler läuft immer mit, auch wenn das Modul selbst in den Deep Sleep geht. Deshalb ist der Ruhestrom des Wandlers entscheidend für die Lebensdauer der Batterie. Die meisten kleinen Breadboards nutzen Regler des LM1117-3.3 Typs. Einige davon habe ich gemessen, die Ruheströme haben eine beträchtliche Streuung (LED natürlich vorher abgelötet ;) ). Einige Exemplare ziehen bei 5V Eingang 5mA und mehr Ruhestrom!  Da ist schnell Ende mit der Batterie.  Es lohnt sich eventuell, hier mal gezielt nach Reglern mit niedrigem Ruhestrom zu suchen. In der nächsten Zeit bekomme ich einige LF33CV, dann werde ich wieder messen in der Hoffnung, dass der weniger zieht.

Ich hoffe, die Hinweise helfen einigen weiter.

Ind en nächsten Tagen geht es an MQTT..... mir gruselt schon ;)
FHEM auf Celeron-PC
CUNX mit Pigator, 433 + 868 MHZ.
MAX!-HK-Ventile, ESP8266-Sensoren und -Aktoren
Schaltsteckdosen IT / NetIO230B / Netio4

schka17

Ich habe ESP-07 mit 1 MB Flash, sowie nodemcu dev-kit 0.9 mit ESP-12 ebenfalls mit 1MB. Weiss nicht ob das nur Ausnahmen sind, will es aber anmerken.


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

fh168

Hallo Shardan,

sehr gut beschrieben. Ich habe ähnliche Erfahrungen mit EasyESP gemacht, aber um "mal eben" eine Schaltung mit einigen Sensoren aufzubauen, ist es für mich genau richtig.

Ich habe zum Testen die gelben Testboards gekauft
https://blog.moneybag.de/angetestet-esp-8266-testboard/

und auch das Witty-board
https://blog.moneybag.de/fhem-witty-board-einfache-iot-funktionen-schnell-gebaut/

Mit den Wemos hab ich auch schon gespielt
https://blog.moneybag.de/wemos-iot-internet-of-things-funktionalitaeten-einfach-zusammenstecken/

Knackpunkt an der ganzen Sache ist, wie Du auch schon richtig sagtest, die Stromversorgung. Ich habe mal 3 Eneloops an den Test-Boards drangehangen und nach 2-3 tagen war das Ding leer. Auch mit Stepup Down Regler habe ich gearbeitet und auch hier habe ich den schleichenden Stromverbrauch von 5 mA bemerkt.

Jetzt bin ich immer am überlegen, ob ich was mit dem ESP 8266 mache oder mit MySensors... Schön, das man die Qual der Wahl hat.
PS: Vor MQTT brauchst keine Angst zu haben, macht Spaß und die Jungs hier im Board helfen gerne.
PS2: Falls du mal einen ESP 8266-01 da rumliegen hast, versuche doch mal den zu flashen und dann auf MQTT Openhab zu konfigurieren. Ich bekomme da immer so seltsame Sonderzeichen mit %20% usw..


Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Shardan

Hallo Schka17, fh168,

Wie gesagt, es gibt viele, fast zu viele Versionen der ESP-Module, es wird unübersichtlich.
Ich mag mich irren: Das Wroom-02 ist meines Wissens nach das einzige Modul, das Espressif selbst fertigt, die anderen Module sind demnach von Drittanbietern gefertigt. Und die können natürlich unterschiedliche Speicherchips drauf löten. Meine ESP-07 haben 512KB, ein 1024er Image lässt sich nicht flashen. Das ESP-12 ist (theoretisch) baugleich mit dem ESP-07, es unterscheidet sich lediglich durch die Antennenkonstruktion. Letztlich hilft nur Abfragen des Chips mit einem Tool um sich Klarheit zu verschaffen.

Macht aber letztlich für ESPeasy keinen Unterschied, die Firmware ist für 512KB ausgelegt, alles darüber bleibt wohl brach liegen.

Stromversorgung:
Einen passenden Regler zu finden ist gar nicht so einfach, habe ich grade bei der Recherche festgestellt.
Legt man das Modul in den Deep Sleep, geht der Verbrauch sehr weit herunter. Damit allein sollten längere Batteriezeiten möglich sein. Der Regler wird problematisch, wenn das Modul ins WLAN sendet - das kann leicht bis an die 300mA gehen, wenn auch nur für einen kurzen Moment - das muss der Regler sicher liefern können. Das 5..10 mA Ruhestrom für Batteriebetrieb unakzeptabel sind, versteht sich.

Ein geeigneter Regler scheint der LT 1763 CS8-3.3 zu sein. Maximal 500mA bei 30µA Ruhestrom klingt schon mal gut.
0,3V Dropoutspannung klingt auch verlockend, dann geht das, bis die Batterie auf 3,6 Volt abgefallen ist. Ein LM1117 braucht da schon mindestens 1,5 V.
Datenblatt: http://www.linear.com/product/LT1763
Leider nicht ganz billig, etwa ab 3€ (Reichelt).  Wir werden sehen, bei der nächsten Bestellung sind die mit dabei.

Bei ESP hast du noch mehr Qual der Wahl ;)  Das NodeMCU ist schon fein, zumal man sich eine Firmware "schneidern" kann.
Auf der Webseite http://nodemcu-build.com mal durchsehen. Wem die Module nicht reichen, kann in den Entwicklungszweig wechseln, da gibt es noch deutlich mehr fertige Module. Für die meisten Sensoren, GPIO-Chips usw gibt es da fertige und recht gut dokumentierte Module.
Nachteil: Man muss sich in LUA einarbeiten. LUA ist eventgesteuert, da hab ich doch etwas Probleme, mich an die Denke zu gewöhnen...

So und noch ein Hinweis, den ich oben vergessen habe:
Bei Problemen mit GPIO4 und 5 auf dem ESP: Bei einigen Herstellern scheint der Silk Screen (der weiße Beschriftungsaufdruck) fehlerhaft zu sein, da sind die beiden Pins vertauscht. Wenn es partout nicht funktioniert, einfach mal vertauschen....
FHEM auf Celeron-PC
CUNX mit Pigator, 433 + 868 MHZ.
MAX!-HK-Ventile, ESP8266-Sensoren und -Aktoren
Schaltsteckdosen IT / NetIO230B / Netio4

schka17

Ich habe meine nodemcu devkits (0.9 und 1.0) mit espeasy am laufen, dafür ist nicht zwinged auch die nodemcu fw nötig. Aber die bestückung dieser boards erlaubt keinen Batteriebetrieb


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

Shardan

Die NodeMCU Boards sind im Grunde nicht mehr als ein externer Programmer, der eigentliche ESP-Chip und ein Spannungsregler, der aus den 5V vom USB die notwendigen 3,3V macht. Das alles zusammen auf ein Board gelötet ergibt das NodeMCU Dev Board. Das ist für Batteriebetrieb allerdings ungeeignet, der Programmer wird zuviel Strom ziehen und der Regler.. naja, siehe oben.

Die NodeMCU Firmware ist von diesem Board völlig unabhängig, die läuft auf allen ESP's. Umgekehrt geht auf dem DevBoard auch jede andere Firmware. Viele NodeMCU Boards chinesischer Herkunft haben nur die Standard AT-Software von Espressif drauf. Da kann man mühelos die ESPeasy flashen, natürlich.

Wenn man ein Netzteil nutzen kann, würde ich immer zum NodeMCU raten, das Handling mit dem USB-Port macht die Wartung und Pflege einfach. Für batteriebetriebene externe Sensoren, z.B. Außenfühler für Temperatur o.ä. nimmt man besser nur einen "nackten" ESP mit Deep Sleep und einen entsprechenden (s. oben) Spannungsregler.
FHEM auf Celeron-PC
CUNX mit Pigator, 433 + 868 MHZ.
MAX!-HK-Ventile, ESP8266-Sensoren und -Aktoren
Schaltsteckdosen IT / NetIO230B / Netio4

fh168

Kann ich alles so unterschreiben, vielleicht noch was zum Spannungsregler:

Hier lohnt es sich das Video vom Kevin anzusehen: https://www.youtube.com/watch?v=sefQcqrbDik
Auf die anderen Videos mal einen Blick draufzuwerfen, lohnt sich sich natürlich auch.
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

sbiermann

In dem Video ist der TC1262-3.3VAB vorgestellt als sehr guter Spannungsregler für Batteriebetrieb. Als Alternative zu dem verwende ich den MCP1825S-3302 der ist ein paar Cent günstiger hat allerdings einen etwas geringfügig höheren Stromverbrauch. Funktioniert in meinen bisherigen Projekten ziemlich zuverlässig.
Aber vom Batteriebetrieb darf man sich nicht zuviel versprechen, der ESP saugt eine Menge. Daher rüste ich jetzt auf Li-Ion Akku (Typ 18650, 3.7V, 2-3k mAh) um und packe gleichzeitig noch eine kleine 5V Solarzelle dran die dann den Akku am Tage auflädt. Damit sollte dann der ESP quasi unbegrenzt laufen.

fh168

@sbiermann :
Hört sich gut an, wenn du die Schaltung zeigen könntest, wäre es klasse. Ich bin immer noch auf der Suche nach was perfektem :-). Vielleicht kann ich da später auch ein Blog-Beitrag drüber machen. (links siehe oben)

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

sbiermann

Die Teile sind noch auf dem Weg von China hier her... dauert vermutlich noch einige Wochen bis die da sind. Die Grundsätzliche Idee habe ich hier gefunden: http://www.dieletztedomain.de/3-analoge-bodenfeuchtigkeits-sensoren-am-esp8266-update/

Shardan

Zum Vergleich:

Typische Ruheströme / typ. Dropout bei 300mA lt. Datenblatt:

MCP1825S.........120µA / 140mV
TC1262...............80µA / 200mV
LT1763................30µA / 250mv

Das ESP braucht 3,3V. Dazu kommt die Dropout-Spannung von max 0,25V, macht 3,55 Volt als Minimum von der Batterie, bevor der Regler abschaltet.
NiMH-Akkus haben eine Nennspannung von 1,2 V, drei Stück macht 3,6 Volt.
Das ist schon sehr knapp an der Grenze. Bei solchen Akkus wäre es dann sinnvoller, 4 Stück (=4,8V) zu nutzen.

LiIon- und LiPo-Zellen haben 3,6..3,7 Volt. Ich habe keine Erfahrung damit, wie lange diese Zellen diese Spannung beim Entladen halten.
Hierbei muss ja auch Alterung bedacht werden, im Laufe der Zeit steigt der Innenwiderstand an, die Entladekurve sinkt ab.
Da würde ich auch lieber zwei Zellen verwenden oder evtl ein 7,4V Akkupack aus dem Modellbau?

FHEM auf Celeron-PC
CUNX mit Pigator, 433 + 868 MHZ.
MAX!-HK-Ventile, ESP8266-Sensoren und -Aktoren
Schaltsteckdosen IT / NetIO230B / Netio4

fh168

was für Akkus nimmt man da (ali->link?), ich kenne mich mit den Dingern nicht so aus.
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Shardan

Auauerha...  es gibt gefühlt eine Million mögliche Batterietypen.

Die Frage, welchen Akku du nehmen kannst, kann ich so kaum beantworten.
Wie genau willst du das einsetzen? Was für eine Ladeschaltung?  Wie groß darf das sein?

Eine Li-Ion Standard Batterie ist z.B. http://www.reichelt.de/Industriezellen/NC-NL188/3/index.html?&ACTION=3&LA=2&ARTICLE=151103&GROUPID=4084&artnr=NC+NL188
Die ist teuer! Aber gleich mit Kurzschluß- und Tiefentladeschutz.
Es gibt eine große Menge Li-Ion und Li-Polymer Akkus aus dem Modellbaubareich, teilweise mit separaten Ladeanschlüssen, die kenne ich aber nicht näher.

Ansonsten die normalen NiMH-Akkus als AA (Mignon) oder so. Die gibt es auch als Pack, oder einfach 4 Stück in einen Batteriehalter.

Nach Ladeschaltungen bzw Solarreglern müsste ich suchen.
FHEM auf Celeron-PC
CUNX mit Pigator, 433 + 868 MHZ.
MAX!-HK-Ventile, ESP8266-Sensoren und -Aktoren
Schaltsteckdosen IT / NetIO230B / Netio4

sbiermann

Akkus würde ich nicht bei Ali Express kaufen. Li-Ion bzw. Lipos sind relativ empfindlich und können gerne mal Bumms machen. Da ist eher gefragt Qualität zu nehmen anstelle von billig, sonst ist die Bude unter Umständen abgefackelt. Gibt genug Testberichte und Erfahrungen im Internet, auch mit entsprechenden Bildern. Daher werde ich mir die hier holen: http://www.amazon.de/Lixada-Qualit%C3%A4t-Trustfire-Protected-3000mAh/dp/B00M4VMUG0

Mit AA Batterien kommst du nicht weit, die haben in der Regel nur 2300mAh Strom. Bei nur alle 5 Minuten messen und Daten senden, kommst du damit auf knapp 60 Tage Betrieb. Wenn dann musst du Mono Battieren nehmen die haben 18000mAh Strom. Damit dürfte man auf ungefähr 470 Tage kommen.

fh168

3,7 Volt lese ich da. Schaltest du die in Reihe und packst einen Stepdown 6,4 V auf 3,3 V dahinter oder nimmst eine 3,7 Zelle und schließt ihn mit einer Diode (?) direkt an das Modul?
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-