#if defined(ARDUINO_WIO_TERMINAL) # include #elif defined(ARDUINO_SAMD_MKRWIFI1010) # include #elif defined(ARDUINO_SAMD_MKR1000) # include #elif defined(ARDUINO_ARCH_ESP8266) # include #else # include #endif char ssid[] = "good ssid"; char ssid_wrong[] = "WrongSSID"; char pass[] = "good pass"; char pass_wrong[] = "WrongPASS"; String getWiFiStatusStr(int status) { switch (status) { case WL_IDLE_STATUS: return "Idle"; case WL_NO_SHIELD: return "No WiFi module"; case WL_SCAN_COMPLETED: return "Scan completed"; case WL_NO_SSID_AVAIL: return "Network not available"; case WL_CONNECTED: return "Connected"; case WL_CONNECT_FAILED: return "Connection failed (auth failed?)"; case WL_CONNECTION_LOST: return "Connection lost"; case WL_DISCONNECTED: return "Disconnected"; default: return String("") + status; } } void tryConnect(const char* ssid, const char* pass) { WiFi.disconnect(); delay(100); Serial.println("------------------------"); Serial.print("Connecting to "); Serial.print(ssid); Serial.print(", pass: "); Serial.println(pass); int result = WiFi.begin(ssid, pass); Serial.println(String("Result: ") + getWiFiStatusStr(result)); uint32_t start = millis(); while (millis() - start < 10000) { int s = WiFi.status(); Serial.println(String("Status: ") + getWiFiStatusStr(s)); if (s == WL_CONNECTED) { Serial.print("IP address: "); Serial.println(WiFi.localIP()); break; } else if (s == WL_CONNECT_FAILED) { break; } else { delay(1000); } } } void setup() { Serial.begin(115200); while (!Serial) {} Serial.println(); Serial.println(); tryConnect(ssid_wrong, NULL); tryConnect(ssid, pass_wrong); tryConnect(ssid, pass); tryConnect(ssid, ""); Serial.println("Finished."); } void loop() { delay(1000); }