From 4b069c10b979a77d48ba273167191ac12a85d31f Mon Sep 17 00:00:00 2001 From: yuichiroaoki <45054071+yuichiroaoki@users.noreply.github.com> Date: Sat, 28 Oct 2023 17:15:27 +0900 Subject: [PATCH] don't save wrong password --- lib/ConfigManager/ConfigManager.cpp | 28 ++++++++++++++++++++-------- lib/ConfigManager/ConfigManager.h | 2 +- src/main.cpp | 2 +- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/ConfigManager/ConfigManager.cpp b/lib/ConfigManager/ConfigManager.cpp index b328ece..5e6731d 100644 --- a/lib/ConfigManager/ConfigManager.cpp +++ b/lib/ConfigManager/ConfigManager.cpp @@ -52,7 +52,6 @@ void startAPServer() server.on("/", HTTP_GET, handleRoot); server.on("/connect", HTTP_GET, handleConnect); server.on("/config", HTTP_POST, handleConfig); - server.begin(); } @@ -128,7 +127,12 @@ void handleConfig() String ssid = server.arg("ssid"); String password = server.arg("password"); - saveWiFiCredentials(ssid, password); + // Send message to client + String message = htmlHeader; + message += "

Connecting to Wi-Fi...

"; + message += "

Wi-Fiに接続しています...

"; + message += htmlFooter; + server.send(200, "text/html", message); // Switch to Station mode and connect to the user's Wi-Fi network WiFi.softAPdisconnect(); @@ -144,6 +148,7 @@ void handleConfig() startAPServer(); return; } else { + saveWiFiCredentials(ssid, password); Serial.println("Connected to the WiFi network"); server.close(); } @@ -171,20 +176,27 @@ bool isThresholdValid(int threshold) void scanNetworks() { int n = WiFi.scanNetworks(); - scanResults += "

Select Wi-Fi Network

"; - scanResults += "

Wi-Fiを選択してください

"; - for (int i = 0; i < n; i++) { - scanResults += "

" + WiFi.SSID(i) + "

"; + Serial.println("n: " + String(n)); + if (n <= 0) { + scanResults += "

No Wi-Fi Networks found

"; + scanResults += "

Wi-Fiが見つかりませんでした

"; + } else { + scanResults += "

Select Wi-Fi Network

"; + scanResults += "

Wi-Fiを選択してください

"; + for (int i = 0; i < n; i++) { + scanResults += "

" + WiFi.SSID(i) + "

"; + } } - scanCompleted = true; WiFi.scanDelete(); + scanCompleted = true; } bool checkIfScanCompleted() { return scanCompleted; } -void resetWifiCredentials() { +void resetWifiCredentialsWithWs() { + preferences.begin("credentials", false); preferences.clear(); // disconnect from Wi-Fi WiFi.disconnect(true); diff --git a/lib/ConfigManager/ConfigManager.h b/lib/ConfigManager/ConfigManager.h index 892da38..288ffc5 100644 --- a/lib/ConfigManager/ConfigManager.h +++ b/lib/ConfigManager/ConfigManager.h @@ -14,4 +14,4 @@ bool isIntervalValid(int interval); bool isThresholdValid(int threshold); void scanNetworks(); bool checkIfScanCompleted(); -void resetWifiCredentials(); \ No newline at end of file +void resetWifiCredentialsWithWs(); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 46c8f62..9e27647 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -71,7 +71,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t length) esp_deep_sleep_start(); } else if (strcmp(command, "resetWifi") == 0) { Serial.println("Resetting Wi-Fi credentials"); - resetWifiCredentials(); + resetWifiCredentialsWithWs(); } }