Wifi Reconnect - nicht blockierend
|
28.11.2020, 18:59
(Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2020 19:10 von Arduino4Fun.)
Beitrag #1
|
|||
|
|||
Wifi Reconnect - nicht blockierend
Hallo,
ich möchte in einer Anwendung die Tasteneingaben, Anzeigen in Verbindung mit WLAN+MQTT die Fehlerbehandlung so lösen, dass ein Reconnect des WLAN-Netzwerk bzw. der MQTT Verbindung den Rest der Apllikation nicht beeinträchtigt z.B. Tasteneingaben etc. funktionieren weiterhin, daher keine (blockierende) Schleifen und keine delay() und möglichst kein ESP.restart(). Nun zur Frage. Welche Anweisungen sind für ein WLAN Reconnect mindestens aufzurufen um das Netzwerk erneut zu starten? Zur Einrichtung des Netzwerk mit statischer IP reicht ja Code: WiFi.mode( WIFI_STA ); ![]() Code: WiFi.persistent( false ); Weitere Frage. Wie testet ihr die "Nicht Funktion" sprich WLAN Unterbrechung ohne den häuslichen Frieden zu stören. Fehler per Tastendruck injizieren - welche sinnvolle Anweisung? Gruß Arduino4Fun |
|||
28.11.2020, 19:09
Beitrag #2
|
|||
|
|||
RE: Wifi Reconnect - nicht blockierend
(28.11.2020 18:59)Arduino4Fun schrieb: Weitere Frage. Wie testet ihr die "Nicht Funktion" sprich WLAN Unterbrechung ohne den häuslichen Frieden zu stören. Fehler per Tastendruck injizieren - welche sinnvolle Anweisung?Wenn Du ein Nichtvorhandensein des WLAN testen willst, dann musst Du entweder das WLAN abschalten oder einen Faradayschen Käfig drumrum bauen. Aufpassen, die USB-Strippe kan den Käfig löchrig machen ![]() Du kannst den Status Deiner WLAN-Verbindung abfragen. Um welchen Prozessor geht es? Meine ESP8266 haben sich immer selbst reconnected. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
28.11.2020, 19:14
(Dieser Beitrag wurde zuletzt bearbeitet: 28.11.2020 19:18 von Arduino4Fun.)
Beitrag #3
|
|||
|
|||
RE: Wifi Reconnect - nicht blockierend
Hallo Tommy,
meine Idee ist eine andere. Per Taste die ich über ESP einlese, manipuliere ich die ESP SW (z.b. falsche SSID) und dieser läuft dann die Routinen für die Fehlerbehandlung durch, danach weiterer Tastendruck, sprich toggeln richtige SSID, dann muss der ESP wieder einsteigen. Fehlerstimmulierung in Anwendung, nicht von Aussen durch z.B. Abschaltung des Netzwerk Ziel HW ist 8266 und ESP32 Gruß Arduino4Fun |
|||
28.11.2020, 19:22
Beitrag #4
|
|||
|
|||
RE: Wifi Reconnect - nicht blockierend
Die geänderte SSID wird ihn aber nicht weiter interessieren, wenn er ins Netz eingeklinkt ist.
Auf alle Fälle solltest Du beim ESP8266 gleich am Anfang vom Setup schreiben Code: WiFi.persistent(false); Wenn Du ohne diese Zeile schon mal connected warst, musst Du die WiFi-Settings beim Hochladen mit löschen. Ob Deine Idee funktioniert, musst Du experimentell ermitteln. Du kannst uns das Ergebnis gern mitteilen. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
29.11.2020, 08:35
Beitrag #5
|
|||
|
|||
RE: Wifi Reconnect - nicht blockierend
Hallo,
die Eventhandler benutzen: Code: ... WiFi.persistent(false); habe ich nie gesetzt, das bleibt aktiv. Die ESP8266 laufen fast alle 24/7 und bisher ist kein Flash gestorben, so oft verbindet er sich ja da nicht neu. Gruß aus Berlin Michael |
|||
29.11.2020, 10:07
Beitrag #6
|
|||
|
|||
RE: Wifi Reconnect - nicht blockierend
Hallo Michael,
danke für die Antwort. Zwei Fragen wie bindest du den "onWifiDisconnect" handler im setup() ein und was ist der Inhalt der Funktion "wifiReconnectTimer.once(2, connectToWifi);" bzw. wo deklariert Danke und Gruß Arduino4Fun |
|||
29.11.2020, 10:32
Beitrag #7
|
|||
|
|||
RE: Wifi Reconnect - nicht blockierend
Hallo Michael,
Thema weitestgehend gelöst. Habe nun folgenden "Basis-Code". Code: #define BTN1 D3 Jetzt muss ich mir noch eine Logik für die Behandlung des Disconnect überlegen und MQTT einbinden. Danke und Gruß Arduino4Fun |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste