ESP32 verbindet sich nicht mit dem WLAN-Netzwerk – beheben

English Deutsch

Wenn Sie ein Programm wie unser minimales ESP32-WLAN-Beispiel verwenden:

example-5.txt
#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.begin("MyWifiNetworkName", "MyWifiPassword");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Wifi connecting...");
    delay(500);
  }
  Serial.println("Wifi connected");
}
void loop() {
  // Platzieren Sie hier Ihren Hauptcode, der wiederholt ausgeführt wird:
}

und Sie nur eine Schleife von

example-4.txt

Meldungen sehen, drücken Sie die RESET-Taste Ihres Boards (oder trennen Sie die Stromversorgung und verbinden Sie sie erneut zum Zurücksetzen) und versuchen Sie es erneut. Wenn Sie nach 5 Versuchen immer noch nur Wifi connecting...-Meldungen sehen, sind Ihre WLAN-Zugangsdaten höchstwahrscheinlich falsch oder der ESP32 kann Ihr WLAN-Netzwerk nicht sehen!

Wenn Ihr ESP32 sich manchmal fast sofort mit dem WLAN-Netzwerk verbindet und manchmal scheinbar gar nicht verbindet, verwenden Sie stattdessen diesen Code, um den ESP32 automatisch zurückzusetzen, wenn er sich nicht innerhalb von 5 Sekunden verbindet:

example-3.cpp
uint32_t notConnectedCounter = 0;
while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.println("Wifi connecting...");
    notConnectedCounter++;
    if(notConnectedCounter > 150) { // Board zurücksetzen, wenn nach 15s keine Verbindung besteht
        Serial.println("Reset aufgrund von Wifi-Verbindungsfehler...");
        ESP.restart();
    }
}

Vollständiges Beispiel:

example-2.cpp
#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.begin("MyWifiSSID", "MyWifiPassword");

  // Auf WLAN-Verbindung warten
  uint32_t notConnectedCounter = 0;
  while (WiFi.status() != WL_CONNECTED) {
      delay(100);
      Serial.println("Wifi connecting...");
      notConnectedCounter++;
      if(notConnectedCounter > 150) { // Board zurücksetzen, wenn nach 5s keine Verbindung besteht
          Serial.println("Reset aufgrund von Wifi-Verbindungsfehler...");
          ESP.restart();
      }
  }
  Serial.print("Wifi verbunden, IP-Adresse: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // Platzieren Sie hier Ihren Hauptcode, der wiederholt ausgeführt wird:
}

Alternativ verwenden Sie diese Funktion:

example-1.cpp
 * Auf WLAN-Verbindung warten, und bei Nichtverbindung neu starten
 */
void waitForWiFiConnectOrReboot(bool printOnSerial=true) {
  uint32_t notConnectedCounter = 0;
  while (WiFi.status() != WL_CONNECTED) {
      delay(100);
      if(printOnSerial) {
        Serial.println("Wifi connecting...");
      }
      notConnectedCounter++;
      if(notConnectedCounter > 150) { // Board zurücksetzen, wenn nach 5s keine Verbindung besteht
          if(printOnSerial) {
            Serial.println("Reset aufgrund von Wifi-Verbindungsfehler...");
          }
          ESP.restart();
      }
  }
  if(printOnSerial) {
    // WLAN-IP-Adresse ausgeben
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
  }
}

Check out similar posts by category: Arduino, ESP8266/ESP32, PlatformIO