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!
> 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.
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.
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
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.
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?
> 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.
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?
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.
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.
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.
> 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.
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.
Stefan U. schrieb: >> Breakboard-Platine > > Was ist das? Siehe Anhang6. Ich habe die verwendet, um das Modul auf meinem Breadboard einzustecken.
> Siehe Anhang6
Wo denn, ich sehe keinen Anhang6
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.
Stefan U. schrieb: >> Siehe Anhang6 > > Wo denn, ich sehe keinen Anhang6 Sorryyyyyyyyyy. Habe vergessen es hochzuladen. Jetzt ist es hoch!
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?
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.
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
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.