diff --git a/WiFiManager.cpp b/WiFiManager.cpp old mode 100644 new mode 100755 index 11392b5..f3e2926 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -21,22 +21,34 @@ void WiFiManager::begin() { } void WiFiManager::begin(char const *apName) { + begin(apName,NULL); +} + +void WiFiManager::begin(char const *apName, char const *apPasswd) { dnsServer.reset(new DNSServer()); server.reset(new ESP8266WebServer(80)); DEBUG_PRINT(""); _apName = apName; + _apPasswd = apPasswd; start = millis(); DEBUG_PRINT("Configuring access point... "); DEBUG_PRINT(_apName); + if (_apPasswd != NULL) + DEBUG_PRINT(_apPasswd); + //optional soft ip config if (_ip) { DEBUG_PRINT("Custom IP/GW/Subnet"); WiFi.softAPConfig(_ip, _gw, _sn); } - WiFi.softAP(_apName);//TODO: add password option + if (_apPasswd != NULL) + WiFi.softAP(_apName, _apPasswd);//password option + else + WiFi.softAP(_apName); + delay(500); // Without delay I've seen the IP address blank DEBUG_PRINT("AP IP address: "); DEBUG_PRINT(WiFi.softAPIP()); @@ -59,10 +71,14 @@ void WiFiManager::begin(char const *apName) { boolean WiFiManager::autoConnect() { String ssid = "ESP" + String(ESP.getChipId()); - return autoConnect(ssid.c_str()); + return autoConnect(ssid.c_str(),NULL); } boolean WiFiManager::autoConnect(char const *apName) { + return autoConnect(apName,NULL); +} + +boolean WiFiManager::autoConnect(char const *apName, char const *apPasswd) { DEBUG_PRINT(""); DEBUG_PRINT("AutoConnect"); @@ -91,7 +107,7 @@ boolean WiFiManager::autoConnect(char const *apName) { _apcallback(); } connect = false; - begin(apName); + begin(apName,apPasswd); bool looping = true; while(timeout == 0 || millis() < start + timeout) { diff --git a/WiFiManager.h b/WiFiManager.h old mode 100644 new mode 100755 index d7cb316..a515c76 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -27,7 +27,8 @@ public: boolean autoConnect(); boolean autoConnect(char const *apName); - + boolean autoConnect(char const *apName, char const *apPasswd); + String getSSID(); String getPassword(); @@ -68,9 +69,11 @@ private: void begin(); void begin(char const *apName); + void begin(char const *apName, char const *apPasswd); int _eepromStart; const char* _apName = "no-net"; + const char* _apPasswd = "no-net"; String _ssid = ""; String _pass = ""; unsigned long timeout = 0;