diff --git a/WifiControlSensor/WebServer.ino b/WifiControlSensor/WebServer.ino
index cb758f3..57c23f8 100644
--- a/WifiControlSensor/WebServer.ino
+++ b/WifiControlSensor/WebServer.ino
@@ -141,9 +141,15 @@ void WebHandleSave() {
WebSendError("Cannot Save Credentials (Too long ?Contains \";\"?)\r\n");
return;
}
-
- server.send(200, "text/html", "
Configuration Saved
"
- "Reboot
");
+ if(WiFi.softAPIP() != IPAddress((uint32_t)0)){
+ //In STA mode, we can test the AP connection
+ WiFi.begin(server.arg("ssid").c_str(), server.arg("password").c_str());
+ server.send(200, "text/html", "Configuration Saved
"
+ "Check Wifi Configuration
");
+ }else{
+ server.send(200, "text/html", "Configuration Saved
"
+ "Reboot
");
+ }
}
void WebHandleOTA() {
@@ -175,6 +181,40 @@ void WebHandleReboot() {
ESP.restart();
}
+String statusToString(wl_status_t status) {
+ switch(status){
+ case WL_IDLE_STATUS: return String("Idle");
+ case WL_NO_SSID_AVAIL: return String("Wifi not found");
+ case WL_CONNECTED: return String("Connected");
+ case WL_CONNECT_FAILED: return String("Connection failed (Wrong password ?)");
+ case WL_CONNECTION_LOST: return String("Connection Lost");
+ case WL_DISCONNECTED: return String("Connecting");
+ default: return String(status);
+ }
+}
+
+void WebHandleWifiStatus() {
+
+ String message;
+ if(WiFi.status() == WL_DISCONNECTED)
+ message += "";
+ message += "Wifi Connection Status
";
+ message += "Connection to ";
+ message += WiFi.SSID();
+ message += ":
";
+ message += statusToString(WiFi.status());
+ message += "
";
+ if(mode == BOOTMODE_SETUP && WiFi.status() == WL_CONNECTED){
+ message += "Wifi correctly setup!, you can reboot now
";
+ message += "Reboot
";
+ }
+ if(WiFi.status() == WL_CONNECT_FAILED || WiFi.status() == WL_NO_SSID_AVAIL){
+ message += "Try to reconfigure you WiFi details
";
+ message += "Enter Setup
";
+ }
+ server.send(200, "text/html", message);
+}
+
void WebSetupServer(int ) {
server.on("/", WebHandleRoot);
server.on("/setup", WebHandleSetup);
@@ -182,6 +222,7 @@ void WebSetupServer(int ) {
server.on("/gpio", WebHandleGpio);
server.on("/otamode", WebHandleOTA);
server.on("/reboot", WebHandleReboot);
+ server.on("/wifiStatus", WebHandleWifiStatus);
server.onNotFound(WebHandleNotFound);
server.begin();