Forum: Mikrocontroller und Digitale Elektronik ESP32: Alternativen zum wifi client?


von Thorsten M. (cortex_user)


Lesenswert?

Hallo,

leider besteht das Poblem weiter, dass die http Zugriffe nach dem ersten 
anschließend Fehler zurück liefern aber  Zugriffe wie NTP Zeitserver 
weiter funktionieren. Ich möchte jetzt die ganze Library rauswerfen, 
denn etwas ganz anders machen hilft manchmal.

Ich benutze

http.begin(serverpath);
String antwort = http.get();

Ich vermute, dass es die Liv WifiClient.h ist, kann aber auch HTTPClient 
sein.

Gibt es dan noch andere Arten einfach eine Webseite mit JSON Text 
abzufragen? Andere Librarys die das gleiche machen?

Ich habe genau dieses Problem, die -1 die beim zweiten Aufruf zurück 
geliefert wird aber nach einem Reset ist der erste Zugriff wieder ok:

https://github.com/esp8266/Arduino/issues/5137


Gruss
Thorsten

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Hast du ein
> http.end();
für jedes
> http.begin();
?
Auch so, dass ein vorzeitiges "return" aus der Funktion, ein 
"break"/"continue" in der Schleife usw. es nicht übergehen kann?

von Thorsten M. (cortex_user)


Lesenswert?

Das ist nichr die Ursache. Ich bin professioneller Software Entwickler. 
Darauf achte ich schon. Das Peoblem haben auch andere. Ich meine dass es 
bestimmt Möglichkeiten gibt diese Funktionen duech Einzelachritte zu 
ersetzen....

: Bearbeitet durch User
von Oliver R. (orb)


Lesenswert?

Thorsten M. schrieb:
> Ich bin professioneller Software Entwickler.

Mit Arduino?

von Εrnst B. (ernst)


Lesenswert?

Thorsten M. schrieb:
> Das ist nichr die Ursache

Dann suche die Ursache.
Die Rückgabe "-1" kommt, wenn die TCP-Sockets alle verbraucht sind 
(fehlendes Cleanup), wenn das WLan gerade offline ist (Lass dir den 
Status anzeigen, wenn das passiert), wenn DNS den Namen nicht auflöst, 
..., oder wenn die Hardware komische Sachen macht, wenn plötzlich der 
Stromverbrauch ansteigt und die Spannung sinkt -> mal mit extra Elko am 
ESP versuchen.

Mit einer anderen Bibliothek wirst du auch nicht viel daran ändern, am 
Ende landen sie alle bei denselben ESP-IDF-Funktionen... Aber zumindest 
DNS-Probleme könnte eine andere Lib durch Caching umgehen, Wlan-Probleme 
durch ein transparentes Retry usw.

Kann man machen, aber ein "professioneller Software! Entwickler" wird 
wohl erstmal die Fehlerursache beheben, oder sich bei einem 
professionellen Hardware-Entwickler Rat holen, wenn die Ursache dort 
liegen könnte...

von Helmut -. (dc3yc)


Lesenswert?

Thorsten M. schrieb:
> Das ist nichr die Ursache. Ich bin professioneller Software Entwickler.
> Darauf achte ich schon. Das Peoblem haben auch andere. Ich meine dass es
> bestimmt Möglichkeiten gibt diese Funktionen duech Einzelachritte zu
> ersetzen....

Wenn du so programmierst, wie du schreibst, wundert mich nichts.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Thorsten M. schrieb:
> Ich bin professioneller Software Entwickler.
Du machst mich erstaunt!

Warum?

Thorsten M. schrieb:
> https://github.com/esp8266/Arduino/issues/5137
ESP8266 != ESP32
6 Jahre alt

Das hätte dir auffallen müssen.
Und doch steht da drin wie man zu ausführlicheren Meldungen kommt.
Das geht auch beim ESP32

Ansonsten:
Schade, dass du kein testbares Beispiel zeigst.
Ein "professioneller Software Entwickler" wüsste, wie wichtig sowas ist.
Gerade auch, weil die ESP32 recht zuverlässig arbeiten und den von dir 
bemerkten Fehler eben nicht zeigen.

Ich sage es mal anders:
Wenn Netzwerk und Gegenstation ok ist, und du keinen Bock schießt, dann 
tuts das!

von Thorsten M. (cortex_user)


Lesenswert?

Εrnst B. schrieb:
> Dann suche die Ursache.
> Die Rückgabe "-1" kommt, wenn die TCP-Sockets alle verbraucht sind
> (fehlendes Cleanup), ..., oder wenn die Hardware komische Sachen macht, wenn 
plötzlich der  Stromverbrauch ansteigt und die Spannung sinkt -> mal mit extra 
Elko am  ESP versuchen.

Auf die passiv-aggressiven Kommentare lohnt es sich nich einzugehen, das 
Forum ist ja bekannt für problematisches Sozialverhalten einiger.

Der Seeeduino XIAO ist aus meiner Sicht auch eine Fehlentwicklung, denn 
es tritt nur bei ihm auf, alle anderen mit 8266 und esp32 arbeiten 
einwandfrei damit. Die Stromzufuhr knallt auf bis zu 200mA hoch beim 
Zugriff. 100uF haben nichts bewirkt. Wer weiss schon ob da alle GND Pins 
am Chip angeschlossen sind oder es nicht zum Ground Bounce kommt.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Thorsten M. schrieb:
> tritt nur
Du versuchst ein Hardwareproblem mit einer

Thorsten M. schrieb:
> Andere Librarys die das gleiche machen?

zu lösen?

Darf ich dich fragen, was an der Idee falsch ist?

von Monk (roehrmond)


Lesenswert?

Thorsten M. schrieb:
> Die Stromzufuhr knallt auf bis zu 200mA hoch beim Zugriff

Mehr sogar, steht im Datenblatt des IC.

Beitrag #7690859 wurde vom Autor gelöscht.
von Gustl B. (gustl_b)


Lesenswert?

Thorsten M. schrieb:
> 100uF haben nichts bewirkt.

Was sollen die denn bewirken? Weniger Strom sicher nicht.

von Thorsten M. (cortex_user)


Lesenswert?

Das Problem verschwindet völlig, wenn man das WLAN Modul nur vorher 
einschaltet und nach dem Zugriff wieder ausmacht. Zwischen den Zugriffen 
liegen 10 Minuten.

Gibt ja auch keinen Grund warum das immer verbunden sein muss....

von Thorsten M. (cortex_user)


Lesenswert?

Kurze Zusammenfassung, die nur für den Seeeduino XIAO ESP32C3 gilt:

Das duerhafte ON beim Wifi Modul scheint nach einer gewissen Zeit dazu 
zu führen, dass http Zugriffe nicht mehr funktionieren. Ob das Wifi 
Modul selbst in den sleep geht nach einer Weile und nicht mehr richtig 
aufwacht oder ob es da ein Stromproblem gibt kann ich nicht sagen. 
Wirksame Abhilfe ist das einschalten vor dem Zugriff und das abschalten 
nach dem Zugriff. Dann sitzt jeder Zugriff.

Falls da jemand eine Idee zu hat gerne, die kleinen Chips gefalle mir 
gut. Bei Wrroom und 8266 tritt es nicht auf.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Thorsten M. schrieb:
> XIAO ESP32C3

Endlich ein Fetzen Information.
Also ein Mono Core Risc-V ESP.

von Εrnst B. (ernst)


Lesenswert?

Arduino F. schrieb:
> Also ein Mono Core Risc-V ESP.

Wobei ich von den ESP32C3 "SuperMini"-Clonen auch welche seit Monaten 
ohne Ausfall durchlaufen habe.

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.