Forum: Mikrocontroller und Digitale Elektronik ESP8266-01 mit Library WiFiEsp.h funktioniert nicht


von Yann B. (yann)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche schon seit Tagen eine WLAN-Verbindung mit meinem ESP8266-01 
Modul (siehe Anhang1) aufzubauen, indem ich die Bibliothek WiFiEsp.h 
verwenden möchte. Dies funktioniert aber nicht.

Das ESP-Modul reagiert allerdings ganz gut auf AT-Befehle. Anbei findet 
ihr mal im Anhang2 ein Screenshot dazu.

Jetzt, wenn ich versuche die Bibliothek WiFiEsp.h mit dem beigefügten 
Beispiel (Code.c), bekomme ich Anhang3. Und wenn ich die Baudrate meines 
Moduls auf 115200 einstelle bekomme Anhang4.

Ich verstehe wirklich nicht, warum das nicht funktioniert. Ich habe 
schon alles getestet, geprüft und wieder geprüft. Jetzt frage ich mich, 
was wirklich fehlt.

Wie ich das ESP-Modul an Arduino Uno angeschlossen habe findet ihr im 
Anhang 5. Als Spannungsregler verwende ich den LD1117V33 mit einem 100nF 
an Vin und einem 10uF an Vout.

Ich freue mich auf irgendwelche Hilfe.

Vielen Dank!

von Stefan F. (Gast)


Lesenswert?

> Als Spannungsregler verwende ich den LD1117V33 mit einem 100nF
> an Vin und einem 10uF an Vout.

Sei bitte so nett und poste einen Schaltplan, der deinem Aufbau 
entspricht.

Der 5V Ausgang des Arduino Boardes ist nicht ausreichend hoch belastbar.

Der ESP Chip benötigt eine Stromversorgung, die schnelle Schwankungen 
zwischen 1mA und 500mA zuverlässig ausregelt. Viele Low-Drop Regler sind 
nicht schnell genug.

Ich habe mit dem LF33CV gute Erfahrungen im Langzeit-Test gemacht. Ich 
habe ein ESP-01 Modul drei Wochen lang unter Dauerfeuer gehabt und ein 
weiteres ruft seit Mitte Mai alle 10 Sekunden eine Webseite ab. beide 
laufen 100% stabil.

Außerdem solltest du direkt an VCC und GND des Moduls einen 100µF oder 
220µF Elko löten.

von AntiMaker (Gast)


Lesenswert?

Hab kaum gute Erfahrungsberichte mit der AT-Firmware gesehen... Die ist 
gern mal von Lieferung zu Lieferung verschieden, hat andere Kommandos, 
erwartet andere Zeilenenden, hat andere Baudrate, ...
d.H. für sichere Funktion musst du die selber aufspielen, in exakt der 
Version, die dein "WiFiEsp.h" erwartet.

Aber, wenn du den ESP sowieso selber flashen musst: Dann kannst du da 
auch eigene Software, geschrieben direkt aus der Arduino-Umgebung, 
draufspielen.
Schneller (80 MHz), stabiler als das SoftwareSerial gewackel, mehr RAM, 
flexiblere IOs usw. gibt's als kostenfreie Dreingabe.

IO-Ports per I2C oder so erweitern, wenn mehr nötig werden. Notfalls: 
AVR-Arduino als "IO-Knecht" dazuhängen.

von Stefan F. (Gast)


Lesenswert?

Zur Software:

Dein programm kommuniziert mit 9600 baud mit dem ESP Modul. 
Standardmäßig erwarten die Dinger aber 115200 baud. Es sei denn, du hast 
eine speziell modifizierte Variante für Arduino gekauft.

Schließe das Modul also zuerst mal über einen USB-UART Adapter an den PC 
an und stelle die Übertragungsrate um (was ganz alte Firmware Versionen 
übrigens nicht unterstützen).

Die Soft-Serial Library von Arduino eignet sich jedenfalls nicht für 
115200 Baud. Da sind die 9600 durchaus angemessen.

Du solltest bedenken, daß die Arduino Libraries teilweise schlampig 
entwicklet wurden und häufig schlecht dokumentiert sind. Wenn du damit 
nicht zurecht kommst, könnte es durchaus einen Versuch Wert sein, das 
Programm SELBER zu schreiben, ohne diese Library.

Alles, was du dazu wissen musst, steht hier: 
http://stefanfrings.de/esp8266/index.html

von Stefan F. (Gast)


Lesenswert?

Hier kannst du übrigens abgucken, wie ich das problem "ein serieller 
Port zu wenig" gelöst habe: http://stefanfrings.de/wlan_io/index.html

Ich benutze den echten seriellen port doppelt, um Daten sowohl von PC 
als auch vom ESP-Chip zu empfangen. Den Soft-Serial port nutze ich nur 
für die Sende-Richtung, und das klappt auch mit 115200 Baud problemlos.

von Yann B. (yann)


Lesenswert?

Stefan U. schrieb:
>> Als Spannungsregler verwende ich den LD1117V33 mit einem 100nF
>> an Vin und einem 10uF an Vout.
>
> Sei bitte so nett und poste einen Schaltplan, der deinem Aufbau
> entspricht.

Der Anhang5 stellt der Schaltplan dar, wie mein Aufbau aussieht. Und wie 
gesagt statt den 78XX verwende ich den LD1117V33 als Spannungsregler und

> Außerdem solltest du direkt an VCC und GND des Moduls einen 100µF oder
> 220µF Elko löten.

Also reicht der 10uF am Vout nicht aus?

von Stefan F. (Gast)


Lesenswert?

> Also reicht der 10uF am Vout nicht aus?

Theoretisch sollte das reichen, praktisch tut es das aber leider nicht. 
Und glaube mir, ich habe das tagelang ausprobiert.

Der ESP läuft erfahrungsgemäß viel stabiler, wenn er einen dicken 
Extra-Kondensator spendiert bekommt. Am besten direkt auf das Modul 
drauf löten, nicht auf die Hauptplatine deines Projektes.

von Yann B. (yann)


Lesenswert?

Yann B. schrieb:
> Stefan U. schrieb:
>>> Als Spannungsregler verwende ich den LD1117V33 mit einem 100nF
>>> an Vin und einem 10uF an Vout.
>>
>> Sei bitte so nett und poste einen Schaltplan, der deinem Aufbau
>> entspricht.
>
> Der Anhang5 stellt der Schaltplan dar, wie mein Aufbau aussieht. Und wie
> gesagt statt den 78XX verwende ich den LD1117V33 als Spannungsregler und

einen 100nF Kondensator am Vin wollte ich noch schreiben.

>> Außerdem solltest du direkt an VCC und GND des Moduls einen 100µF oder
>> 220µF Elko löten.
>
> Also reicht der 10uF am Vout nicht aus?

Ich habe aber noch vergessen zu erwähnen, das ich eine 
Breakboard-Platine benutze. Könnte es da auch vielleicht das Problem 
sein?

von Yann B. (yann)


Lesenswert?

Stefan U. schrieb:
>> Also reicht der 10uF am Vout nicht aus?
>
> Theoretisch sollte das reichen, praktisch tut es das aber leider nicht.
> Und glaube mir, ich habe das tagelang ausprobiert.

Das glaube ich dir. Aber ich glaube, dass das Problem nicht auf dem 
Hardware basiert, weil wie ich weiter oben gesagt habe, läuft alles gut 
per Kommando. Aber jetzt mit der dieser Library WiFiEsp.h funktioniert 
es nicht.

von AntiMaker (Gast)


Lesenswert?

Yann B. schrieb:
> Aber jetzt mit der dieser Library WiFiEsp.h funktioniert
> es nicht.

Dann schau nach, welche Version der AT-Firmware deine WiFiEsp.h 
erwartet, und vergleiche das mit der Version, die du hast.

sind sie verschieden, entweder andere Version von WiFiEsp.h verwenden, 
oder andere Firmware auf den ESP flashen.

von Chr. M. (snowfly)


Lesenswert?

Stefan U. schrieb:
> zwischen 1mA und 500mA

Ich verstehe das nicht.
Erhöht sich der Strombedarf des ESP im Wochentakt?

Das letzte Mal als ich gemessen habe waren es gerade mal 200mA Peak
und 80mA im Normalbetrieb und da ist der USB-Seriel Wandler schon mit 
drin.

von Stefan F. (Gast)


Lesenswert?

> Breakboard-Platine

Was ist das?

> Aber ich glaube, dass das Problem nicht auf dem
> Hardware basiert

Da stime ich Dir zu.

>> zwischen 1mA und 500mA

> Ich verstehe das nicht.
> Erhöht sich der Strombedarf des ESP im Wochentakt?

Nein, aber die Peaks haben eine Höhe von etwa 400mA. Das haben mehrere 
Leute ausgemessen. Das Problem beim messen ist, daß die Stromspitzen nur 
sehr kurz sind und daher mit einem billigen Oszilloskop (wie meins) nur 
ungenau erfasst werden können.

Ich rechne daher mit 500mA, um etwas Sicherheitsreserve zu haben.

Die durchschnittliche Stromaufnahme in Betrieb ist unter 200mA.

Deine Irritation wird eventuell auch durch ungenaue (um es mal 
vorsichtig zu formulieren) Angaben in den Datenblättern des Herstellers 
gefördert.

Der Burner ist, daß viele Händler immer noch behaupten, das ganze Modul 
würde im Deep Sleep maximal 10µA aufnehmen. Dabei steht im aktuellen 
Datenblatt des ESP "max. 25µA". Dazu kommt noch die Stromaufnahme des 
Flash Speichers und der LED (die man natürlich entfernen kann). Ich habe 
(ohne LED aber mit Flash Speicher) bei einem Modul 20µA und bei einem 
zweiten 25µA gemessen.

von Yann B. (yann)


Lesenswert?

AntiMaker schrieb:
> Yann B. schrieb:
>> Aber jetzt mit der dieser Library WiFiEsp.h funktioniert
>> es nicht.
>
> Dann schau nach, welche Version der AT-Firmware deine WiFiEsp.h
> erwartet, und vergleiche das mit der Version, die du hast.

Habe auch schon, deswegen habe ich den Anhang2 hochgeladen. Die 
SDK-Version meines ESP-Moduls ist 1.5.4 und die AT-Version 1.1.0.0. Die 
Library WiFiEsp.h unterstützt ESP Module mit SDK Version von mindestens 
1.1.1 oder mehr mit AT-Version von 0.25 oder mehr. Quelle hier --> 
https://github.com/bportaluri/WiFiEsp

> sind sie verschieden, entweder andere Version von WiFiEsp.h verwenden,
> oder andere Firmware auf den ESP flashen.

Ich weiss aber nicht, ob es mehrere Version dieser Library gibt. Habe 
mir die einfach in Arduino IDE mit Bibliotheken Verwalten installiert.

von Yann B. (yann)


Lesenswert?

Stefan U. schrieb:
>> Breakboard-Platine
>
> Was ist das?

Siehe Anhang6. Ich habe die verwendet, um das Modul auf meinem 
Breadboard einzustecken.

von Stefan F. (Gast)


Lesenswert?

> Siehe Anhang6

Wo denn, ich sehe keinen Anhang6

von Stefan F. (Gast)


Lesenswert?

Es könnte hilfreich sein, zwei zusätzliche USB-UART Adapter an die 
serielle leitung zwischen AVR und ESP zu hängen, um mitzulesen, was dort 
vor sich geht.
1
AVR Tx ----------+------------------ Rx ESP
2
                 |
3
    Rx ----------|---------+-------- Tx
4
                 |         |
5
                 |         |
6
                 |         |
7
                Rx         Rx
8
          USB-UART         USB-UART
9
      Schnüffler 1         Schnüffler 2

Dann startest du zwei Terminalprogramme, und kann dann schön in zwei 
getrennten Fenstern sehen, was rein udn was raus geht.

von Yann B. (yann)


Angehängte Dateien:

Lesenswert?

Stefan U. schrieb:
>> Siehe Anhang6
>
> Wo denn, ich sehe keinen Anhang6

Sorryyyyyyyyyy. Habe vergessen es hochzuladen. Jetzt ist es hoch!

von Stefan F. (Gast)


Lesenswert?

Ich kann mir kaum vorstellen, daß dieser Adapterstecker die ursache 
deines Problems ist. Es sei denn, er ist defekt. Aber du hast ihn sicher 
schon durchgemessen, oder?

von Yann B. (yann)


Lesenswert?

Stefan U. schrieb:
> Ich kann mir kaum vorstellen, daß dieser Adapterstecker die ursache
> deines Problems ist. Es sei denn, er ist defekt. Aber du hast ihn sicher
> schon durchgemessen, oder?

Nee habe ich nicht aber ich glaube auch, dass das Problem an dieser 
Stelle nicht ist.

von Yann B. (yann)


Lesenswert?

Nachdem ich noch viel recherchiert habe, habe ich hier 
-->http://yaab-arduino.blogspot.de/2015/12/flashing-esp8266-firmware-arduino.html, 
dass ich  die alte ESP8266 Firmware v1.5 flaschen sollte.

Wäre es aber eine gute Variante?? Außerdem weiss ich nicht, wie schwer 
es sein könnte, die aktuelle Firmware wieder zu installieren, falls ich 
immer die WiFiEsp.h Library nicht verwenden kann

von AntiMaker (Gast)


Lesenswert?

Vorschlag:
Vergiss den Arduino Uno erstmal, weglassen.

Dann ändere deinen Sketch ab, in etwa:
1
#include <ESP8266WiFi.h>
2
char ssid[] = "Twim";            // your network SSID (name)
3
char pass[] = "12345678";        // your network password
4
5
6
void setup() {
7
  
8
   WiFi.begin(ssid, password);
9
   while (WiFi.status() != WL_CONNECTED) {
10
     delay(500);
11
   }
12
[...]
13
}
14
15
//usw...

Dann Kompilier den Sketch für den ESP, nicht für den UNO. Also als 
Board im Menu den ESP01 auswählen. Ggfs. vorher das ESP-Plugin für die 
Ardino-Software installieren.

Hochladen. Fertig. Alle AT-Firmware-Probleme auf einen Schlag erledigt.

von Stefan F. (Gast)


Lesenswert?

> dass ich  die alte ESP8266 Firmware v1.5 flaschen sollte.
> Wäre es aber eine gute Variante??

Die Firmware Versionsnummer setzt sich aus zwei Teilen zusammnen.
Und zwar aus der SDK Version und der Versionsnummer der AT-Firmware. Die 
AT Firmware ist praktisch das Anwendungsprogramm welches auf dem 
Betriebsystem (dem SDK) läuft.

Im SDK 1.3.? ist die AT-Firmware 0.40.0.0 enthalten. Damit bin ich 
prinzipiell gut zurecht gekommen, doch wenn viele Nachrichten schnell 
hintereinander übertragen werden, hängt sie sich gelegentlich auf. 
Deswegen hatte ich in meiner Anwednung 
(http://stefanfrings.de/wlan_io/index.html) den reset Pin des ESP mit 
einem I/O Pin des AVR verbunden, um ihn ggf. autoamtisch zu resetten.

Im SDK 1.4.0 ist die AT-Firmware 0.50.0.0 enthalten. Diese läuft bei mir 
seit mitte April im Dauereinsatz ohne offensichtliche Störungen durch. 
Kann ich also nur empfehlen.

Im SDK 1.5.4 ist die AT-Firmware 1.1.1.0 enthalten, auch diese lief bei 
keinen Tests Störungsfrei. Allerdings habe ich diese Version nur eine 
Woche lang durchgetestet.

> Außerdem weiss ich nicht, wie schwer es sein könnte,
> die aktuelle Firmware wieder zu installieren

Soweit ich weiß ist das auswechseln der Firmware völlig risikofrei. 
Manche Leute stoßen auf Probleme nach einem Wechsel, wenn sie versäumt 
haben, die Configurations-Daten im Flash Speicher zu löschen. Aber in 
diesem Fall kann man es einfach nochmal versuchen. Der Bootloader, der 
den Firmware-Upload abwickelt ist gut geschützt.

Bevor du die Firmware änderst würde ich an Deiner Stelle einfach ein 
Backup vom gesamten Flash Speicher ziehen. Aber achtung: Da sind auch 
irgendwelche eindeutigen ID-Nummern drin. So ein einfach Komplett-Backup 
solltest du nicht auf mehere Chips installieren, wenn du sie gemeinsam 
betreiben wirst.

Anleitung dazu: http://stefanfrings.de/esp8266/index.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.