NEWS
WLAN-Probleme ESP8266
-
Jetzt ist mir der Geduldsfaden gerissen, und ich wollte "mal eben" die Firmware von ESP8266 nach ESP32 portieren, ist leider nicht so einfach ...
der Ersatz für
#include <ESP8266WiFi.h">
ist wohl nicht so einfach zu finden, oder es gibt gar keine "kompatible" Library und ich muss neuen Code schreiben ...
-
@martinp sagte in WLAN-Probleme ESP8266:
#include <ESP8266WiFi.h">
Und die WiFi.h funktioniert bei dir nicht?
EDIT: habe gerade einen ESP8266 Sketch genommen, die Library 1:1 ausgetauscht, der Sketch konnte problemlos kompiliert werden.
-
@marc-berg da fehlen ein paar Callbacks. Habe heute den Rechner schon runtergefahren. Muss morgen noch einmal schauen
-
Das sind die Fehlermeldungen, wenn ich das Sketch compilieren will:
In file included from /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:2: /home/martin/Arduino/MQTT/MQTT_DS18B20/GLOBAL_VARS_MQTT_DS18B20.h:104:1: error: 'WiFiEventHandler' does not name a type; did you mean 'WiFiEventFuncCb'? WiFiEventHandler wifiConnectHandler; ^~~~~~~~~~~~~~~~ WiFiEventFuncCb /home/martin/Arduino/MQTT/MQTT_DS18B20/GLOBAL_VARS_MQTT_DS18B20.h:105:1: error: 'WiFiEventHandler' does not name a type; did you mean 'WiFiEventFuncCb'? WiFiEventHandler wifiDisconnectHandler; ^~~~~~~~~~~~~~~~ WiFiEventFuncCb In file included from /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:3: /home/martin/Arduino/MQTT/MQTT_DS18B20/unspecialized_mqtt_doings.h:14:26: error: 'WiFiEventStationModeGotIP' does not name a type void onWifiConnect(const WiFiEventStationModeGotIP& event) { ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/martin/Arduino/MQTT/MQTT_DS18B20/unspecialized_mqtt_doings.h:21:29: error: 'WiFiEventStationModeDisconnected' does not name a type; did you mean 'esp_netif_action_disconnected'? void onWifiDisconnect(const WiFiEventStationModeDisconnected& event) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ esp_netif_action_disconnected /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino: In function 'void setup()': /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:105:3: error: 'analogWriteFreq' was not declared in this scope analogWriteFreq(8000); ^~~~~~~~~~~~~~~ /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:105:3: note: suggested alternative: 'analogWrite' analogWriteFreq(8000); ^~~~~~~~~~~~~~~ analogWrite /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:109:3: error: 'wifiConnectHandler' was not declared in this scope wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); ^~~~~~~~~~~~~~~~~~ /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:109:3: note: suggested alternative: 'AcConnectHandler' wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); ^~~~~~~~~~~~~~~~~~ AcConnectHandler /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:109:29: error: 'class WiFiClass' has no member named 'onStationModeGotIP' wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); ^~~~~~~~~~~~~~~~~~ /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:110:3: error: 'wifiDisconnectHandler' was not declared in this scope wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); ^~~~~~~~~~~~~~~~~~~~~ /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:110:3: note: suggested alternative: 'wifiReconnectTimer' wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); ^~~~~~~~~~~~~~~~~~~~~ wifiReconnectTimer /home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:110:32: error: 'class WiFiClass' has no member named 'onStationModeDisconnected' wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); ^~~~~~~~~~~~~~~~~~~~~~~~~ exit status 1 Compilation error: 'WiFiEventHandler' does not name a type; did you mean 'WiFiEventFuncCb'?
-
So ein simpler Sketch lässt sich bei mir compilieren:
#include <WiFi.h> void WiFiStationConnected(WiFiEvent_t event, WiFiEventInfo_t info){ Serial.println("Station connected"); Serial.println("\n------------"); } void WiFiStationDisconnected(WiFiEvent_t event, WiFiEventInfo_t info){ Serial.println("Station disconnected"); Serial.println("\n------------"); } void setup() { Serial.begin(115200); WiFi.softAP("MyAP"); WiFi.onEvent(WiFiStationConnected, ARDUINO_EVENT_WIFI_STA_CONNECTED); WiFi.onEvent(WiFiStationDisconnected, ARDUINO_EVENT_WIFI_STA_DISCONNECTED); } void loop() {}
Aber! Aus bisher z.B.
SYSTEM_EVENT_STA_CONNECTED
ist jetzt
ARDUINO_EVENT_WIFI_STA_DISCONNECTED
geworden. Das gilt für die anderen Bezeichner ähnlich.
-
@marc-berg Es scheint eine eigene Klasse "WiFiEventHandler" für den ESP8266 zu geben, die ich für den ESP32 nicht gefunden habe.
Bin schon dabei, das Zeug auszubauen, bzw. je nach Board in #ifdef zu packen...
... WiFiEventHandler wifiConnectHandler; WiFiEventHandler wifiDisconnectHandler; ... void onWifiConnect(const WiFiEventStationModeGotIP& event) { Serial.print("Connected to Wi-Fi - "); Serial.print(" Signal strength:"); Serial.println(WiFi.RSSI()); connectToMqtt(); } .... wifiConnectHandler = onWifiConnectWiFi.onStationModeGotIP(onWifiConnect); wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); ....
Inzwischen habe ich die Event Handler erstmal so weit in #ifdef isoliert, dass von der Seite aus beim Compilieren keine Fehler mehr auftreten.
Nur treten jetzt Probleme mit analogWriteFreq auf...
/home/martin/Arduino/MQTT/MQTT_DS18B20/MQTT_DS18B20.ino:105:3: error: 'analogWriteFreq' was not declared in this scope analogWriteFreq(8000); ^~~~~~~~~~~~~~~
-
Schreckliche Compiler-Fehlermeldungen ....
In file included from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/ext/string_conversions.h:43, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:6400, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/string:52, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/stdexcept:39, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/array:39, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/tuple:39, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/functional:54, from /home/martin/.arduino15/packages/esp32/hardware/esp32/2.0.14/cores/esp32/HardwareSerial.h:49, from /home/martin/.arduino15/packages/esp32/hardware/esp32/2.0.14/cores/esp32/Arduino.h:184, from /home/martin/Arduino/libraries/LibPrintf/src/LibPrintf.cpp:4: /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/cstdio:127:11: error: '::printf' has not been declared using ::printf;
Und so geht es endlos mit anderen Geschmacksrichtungen von printf weiter ...
-
@martinp sagte in WLAN-Probleme ESP8266:
Und so geht es endlos mit anderen Geschmacksrichtungen von printf weiter ...
Naja, bei meinen Schmalspur-Sketches hatte ich zum Glück kaum Probleme.
-
@marc-berg Ich fange jetzt auch erstmal mit "Schmalspur-Sketches" an.
Ist wirklich kein Zuckerschlecken der ESP32....Nachdem es einige Male funktioniert hat, dieses Sketch zu bauen, funktioniert es jetzt nicht mehr, auch nachdem ich die Quellcode-Zeilen wieder ausgebaut habe, die nicht funktioniert haben...
Da kann man sich wohl aussuchen, welchen Tod man sterben will. Schlechter Spannungsregler beim ESP8266 oder schlechte SDK beim ESP32 ...
Muss da wohl tiefergehend forschen ...
home/martin/.arduino15/packages/esp32/hardware/esp32/2.0.14/cores/esp32/Arduino.h:144:6: error: conflicting declaration of C function 'long int random(long int, long int)' long random(long, long); ^~~~~~ In file included from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/cstdlib:75, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/include/c++/8.4.0/stdlib.h:36, from /home/martin/.arduino15/packages/esp32/hardware/esp32/2.0.14/tools/sdk/esp32/include/newlib/platform_include/assert.h:21, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/sys-include/sys/reent.h:503, from /home/martin/.arduino15/packages/esp32/hardware/esp32/2.0.14/tools/sdk/esp32/include/newlib/platform_include/sys/reent.h:17, from /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/sys-include/stdio.h:60, from /home/martin/.arduino15/packages/esp32/hardware/esp32/2.0.14/cores/esp32/Arduino.h:27, from /tmp/arduino/sketches/674EA753D7ECD6772FBBF3D7FE23D189/sketch/My_Blink.ino.cpp:1: /home/martin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/xtensa-esp32-elf/sys-include/stdlib.h:270:6: note: previous declaration 'long int random()' long random (void);
-
@martinp sagte in WLAN-Probleme ESP8266:
Muss da wohl tiefergehend forschen ...
Ich könnte mir vorstellen, dass sich beim längeren Betrieb der Arduino Gui eine Reihe von teils veralteten Libraries ansammeln, mit den man sich Inkompatibilitäten einfängt.
-
@marc-berg Ich habe jetzt alle ESP32 Boards einmal deinstalliert und wieder installiert.
Jetzt lässt sich das Test-Sketch wieder bauen ...Bei der ersten Runde habe ich nur die Espressiv Boards installiert, nun auch Arduino ESP32 dazu...
-
Ja, super. Ich habe damals auch wieder bei Null Bibliotheken angefangen.
-
@marc-berg Ich habe den Verdacht, dass es daran lag, dass ich vorher die "Arduino ESP32 Boards" nicht installiert habe ...
Jetzt compiliiert auch der Sketch für meinen Thermostaten - ist aber noch viel auskommentiert ...
Gibt aber noch Gemecker - wegen Sachen, die beim ESP32 anders gelöst werden.
Die Lüfter unter dem Heizkörper werden mit PWM in der Drehzahl gesteuert.#if 1 pinMode(pwmGpio, OUTPUT); analogWriteFreq(8000); analogWrite(pwmGpio,255); // raw write off! #endif
Das muss man wohl irgendwie anders machen beim ESP32...
-
So, der Sketch compiliert jetzt, die D1 Minis gibt es aber wohl auch in den verschiedensten Pinouts und Geschmacksrichtungen. Jedenfalls ist mein ESP32 NICHT Pinkompatibel und NICHT gleich groß mit dem ESP8266 ...
Zur Zeit habe ich wohl etwas Pech, und was ich nicht genau nachkontrolliere, rächt sich sofort ....
Der deutlich größere ESP32 "D1 Mini" muss an den Platz des ESP8266 "D1 Mini" ...
-
@martinp said in WLAN-Probleme ESP8266:
So, der Sketch compiliert jetzt, die D1 Minis gibt es aber wohl auch in den verschiedensten Pinouts und Geschmacksrichtungen. Jedenfalls ist mein ESP32 NICHT Pinkompatibel und NICHT gleich groß mit dem ESP8266 ...
Genau das selbe ist mir auch schon passiert.
Deshalb hab ich mir angewöhnt die Boards gar nicht auf die Platine zu setzen. -
@martinp said in WLAN-Probleme ESP8266:
So, der Sketch compiliert jetzt, die D1 Minis gibt es aber wohl auch in den verschiedensten Pinouts und Geschmacksrichtungen. Jedenfalls ist mein ESP32 NICHT Pinkompatibel und NICHT gleich groß mit dem ESP8266 ...
Zur Zeit habe ich wohl etwas Pech, und was ich nicht genau nachkontrolliere, rächt sich sofort ....
Der deutlich größere ESP32 "D1 Mini" muss an den Platz des ESP8266 "D1 Mini" ...
Ohne das jetzt im Detail bei Dir gesehen zu haben. Hast du den ESP32 Mini schon erfolgreich über die Pins statt dem Micro-USB versorgt?
Hab das Mal irgendwann aufgegeben und der ESP32 S2 Mini ist da wesentlich einfacher auch in dem Handling -
@dieter_p said in WLAN-Probleme ESP8266:
Ohne das jetzt im Detail bei Dir gesehen zu haben. Hast du den ESP32 Mini schon erfolgreich über die Pins statt dem Micro-USB versorgt?
Hmm, bisher habe ich nicht einmal Leisten eingelötet, weil ich mir überhaupt klar werden will, ob ich das Ding überhaupt als Ersatz hernehmen will. Will ich es als Ersatz nutzen, müsste ich den Großteil der möglichen Steckkontakte unbestückt lassen - jedenfalls ist der weiß markierte Teil der Steckerleiste von der Lage von GND, RST, 5 V und 3,3 V Pinkompatibel mit dem ESP8266 D1 Mini V3.
Das ist übrigens der zweite Blödsinn - nur Buchsenleisten, keine Pfosten ...Müsste das mal durchklingeln.
Der ESP32 S2 Mini scheint da eher als pinkompatibler Ersatz herhalten zu können.
Ist aber wohl auch ein Produkt mit vielen Nachahmern ...
34% 1-Sterne-Bewertungen:
https://www.amazon.de/DollaTek-ESP32-S2FN4R2-MicroPython-Arduino-Kompatibel/dp/B0BGPD6CV5/Woher sind Deine ESP32 S2 Mini Module?
-
@martinp said in WLAN-Probleme ESP8266:
Woher sind Deine ESP32 S2 Mini Module?
Direkt aus dem Erzeugerland-> Ali-Express
Einige Testkäufe getätigt und da erfolgreich/ohne Probleme im Einsatz das heimische Lager soweit gut gefüllt.
Es sind garantiert keine original Wemos aber solange sie stabil funktionieren....
-> da Du schon seit September dadran bist kann ich dir gerne einen zum Selbstkostenpreis schicken -
@dieter_p In den Bewertungen bei Amazon steht, dass man irgendwelche Tasten auf dem Modul betätigen muss, damit das Flashen des ESP32 S2 Mini über USB klappt - war das bei Deinem Modul auch so?
Ich habe auch noch zwei "Pläne B" bzgl. Weiterverwendung der ESP8266 Module im Hinterkopf...
-
Huckepack einen zweiten Spannungsregler über den vorhandenen löten, habe ja die 10 Stück noch herumliegen ... (Stromverteilung auf die beiden Regler aber ggfs. schwierig...)
-
Das auf dem Foto abgebildete DC-DC Modul auf 3,3 V stellen, und den ESP direkt über den 3,3 V Anschluss-Pin versorgen ...
Mit Punkt (1) wollte ich mich ggfs. morgen abend beschäftigen. Habe noch ein überzähliges D1 Mini Modul aus der Lieferung von AZ Delivery ...
-
-
@martinp said in WLAN-Probleme ESP8266:
34% 1-Sterne-Bewertungen:
Meinst du das ernst? Sind dir noch nie kostenlose Produkte gegen 5 Sterne Bewertungen angeboten worden?
Alles sehr mit Vorsicht zu genießen da auf Amazon und wenn man die Bewertungen anliest, ist doch sehr schnell klar dass 98% über eigenes Unwissen zum S2 Mini gestolpert sind. Der S2 Mini zeigt sich als Com-Port nunmal erst wenn die GPIO 0 Taste beim Booten gehalten wird.
Wer das nicht schnallt, also keine Manuals liest und dann negative Bewertungen abgibt...was soll ich davon halten?Du liest Datenblätter und weißt was du tust, also sehe ich da kein Problem