#include #include void wlan_reset(void) { // Set WiFi to station mode and disconnect from an AP if it was previously connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); } int wlan_connectto(const char *ssid, const char *passwd) { int timeout = 60; // half-seconds Serial.print("WLAN: connecting to "); Serial.print(ssid); if(passwd) { WiFi.begin(ssid, passwd); } else { WiFi.begin(ssid); } while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); if(--timeout == 0) { Serial.println(" timeout :-("); return -1; } } Serial.println(" connected."); Serial.print("WLAN: IP address: "); Serial.println(WiFi.localIP()); return 0; } int wlan_connect_any_open(void) { Serial.println("WLAN: scan start"); // WiFi.scanNetworks will return the number of networks found int n = WiFi.scanNetworks(); Serial.println("WLAN: scan done"); Serial.print("WLAN: "); Serial.print(n); Serial.println(" networks found"); String ssid = ""; for(int i = 0; i < n; i++) { if(WiFi.encryptionType(i) == ENC_TYPE_NONE) { if(wlan_connectto(ssid.c_str(), NULL) == 0) { return 0; } } } if(ssid == "") { Serial.println("WLAN: No open networks found to connect to."); return -2; } return -1; } void wlan_print_conninfo(void) { // print your WiFi shield's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); // print your MAC address: byte mac[6]; WiFi.macAddress(mac); Serial.print("MAC address: "); for(int i = 5; i > 0; i--) { Serial.print(mac[i],HEX); Serial.print(":"); } Serial.println(mac[0],HEX); // BSSID byte *bssid = WiFi.BSSID(); Serial.print("BSSID: "); for(int i = 5; i > 0; i--) { Serial.print(bssid[i],HEX); Serial.print(":"); } Serial.println(bssid[0],HEX); // SSID Serial.print("SSID: "); Serial.println(WiFi.SSID()); // print the received signal strength: Serial.print("RSSI: "); Serial.println(WiFi.RSSI()); /* // print the encryption type: Serial.print("Encryption: "); Serial.println(WiFi.encryptionType(),HEX); Serial.println(); */ }