ESP-Tipp: WiFi-Reconnect einbauen
Ich habe mir mit einem ESP32 eine Schaltung gebaut, die mir alle Minute die Betriebstemperatur von einer Anlage sendet. Das funktionierte einwandfrei! — Außer, dass der ESP scheinbar immer mal wieder abgestürzt ist. Scheinbar.
Wie sich nämlich herausgestellt hat, ist der ESP zwar über WLAN-Angebunden, doch im Keller ist die Verbindungsqualität nicht die beste. Der ESP hat die WLAN-Verbindung verloren! Es lag also nicht an irgend einem Memory-Leak oder ähnliche,, was ich zunächst vermutete, sondern der IoT-Sensor hat einfach nicht mehr senden können, da die WiFi-Connection nicht mehr verfügbar war.
Problem
Im Code habe ich in der startup()-Sequenz die WiFi-Connection erstellt und auch geprüft, ob sie zustande kam, sonst fällt der Sensor in AP-Mode. Doch in der loop()-Sequenz wurde keinerlei Prüfung mehr vorgenommen.
Ist nun also mal kurz die Verbindung weg, dann reconnected der ESP nicht mehr!
Lösung
Sobald man über WLAN Daten versendet, MUSS man in der loop() die WiFi-Connection prüfen und gegebenenfalls wieder aufbauen:
Das ganze kann man natürlich in eine eigene Methode auslagern. Das Beispiel ist hier nur möglichst einfach gehalten.
Das Problem hat mich Tage des Suchens gekostet.