diff --git a/libraries/ESP8266WiFi/keywords.txt b/libraries/ESP8266WiFi/keywords.txt index 131c6f64b..b41331b2b 100644 --- a/libraries/ESP8266WiFi/keywords.txt +++ b/libraries/ESP8266WiFi/keywords.txt @@ -41,6 +41,7 @@ localIP KEYWORD2 subnetMask KEYWORD2 gatewayIP KEYWORD2 SSID KEYWORD2 +psk KEYWORD2 BSSID KEYWORD2 RSSI KEYWORD2 encryptionType KEYWORD2 diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp index 50358eb55..ebb7151bd 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp @@ -145,6 +145,17 @@ int ESP8266WiFiClass::begin(const char* ssid, const char *passphrase, int32_t ch return status(); } +int ESP8266WiFiClass::begin() +{ + ETS_UART_INTR_DISABLE(); + wifi_station_connect(); + ETS_UART_INTR_ENABLE(); + + if(!_useStaticIp) + wifi_station_dhcpc_start(); + return status(); +} + uint8_t ESP8266WiFiClass::waitForConnectResult(){ if ((wifi_get_opmode() & 1) == 0)//1 and 3 have STA enabled return WL_DISCONNECTED; @@ -366,6 +377,13 @@ char* ESP8266WiFiClass::SSID() return reinterpret_cast(conf.ssid); } +const char* ESP8266WiFiClass::psk() +{ + static struct station_config conf; + wifi_station_get_config(&conf); + return reinterpret_cast(conf.password); +} + uint8_t* ESP8266WiFiClass::BSSID(void) { static struct station_config conf; diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFi.h b/libraries/ESP8266WiFi/src/ESP8266WiFi.h index 2e5337ed4..8198c2805 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFi.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFi.h @@ -58,6 +58,9 @@ public: int begin(const char* ssid, const char *passphrase = NULL, int32_t channel = 0, uint8_t bssid[6] = NULL); int begin(char* ssid, char *passphrase = NULL, int32_t channel = 0, uint8_t bssid[6] = NULL); + // Use sdk config to connect. + int begin(); + /* Wait for Wifi connection to reach a result * returns the status reached or disconnect if STA is off @@ -172,6 +175,13 @@ public: */ char* SSID(); + /* + * Return the current pre shared key associated with the network + * + * return: psk string + */ + const char* psk(); + /* * Return the current bssid / mac associated with the network if configured *