#ifndef _MY_WIFI_H #define _MY_WIFI_H //----------------------------------------------------------------------------------- //Wifi Constants //----------------------------------------------------------------------------------- String WiFiIP; typedef struct _ssid_list_t { const char* ssid; const char* password; } ssid_list_t; //#define _TEST #ifndef _TEST static int currentAPIndex = -1; const int MAX_CNX_RETRIES = 20; ssid_list_t aplist[]={ {"wifi1", "pass1"}, {"wifi2", "pass2"}, {"wifi3", "pass3"}, {NULL,NULL} }; #else const int MAX_CNX_RETRIES = 1; ssid_list_t aplist[]={ {"Phony", "phonyaccount"}, {NULL,NULL} }; #endif //_TEST byte WiFiConnect() { WiFiIP = "No IP"; //WiFi.disconnect(true); //delay(2000); //WiFi.mode(WIFI_STA); //WiFi.setAutoConnect(true); byte i = 0; while(aplist[i].ssid!= NULL) { WiFi.persistent(false); WiFi.mode(WIFI_STA); WiFi.disconnect(true); delay(1000); WiFi.softAPdisconnect(true); delay(1000); Serial.print("WIFI status = "); Serial.println(WiFi.getMode()); WiFi.begin(aplist[i].ssid, aplist[i].password); byte count = 0; Serial.print("WiFiConnect: Connecting to "); Serial.print(aplist[i].ssid); draw(aplist[i].ssid, -1, -1, -1); while(WiFi.status() != WL_CONNECTED && count < MAX_CNX_RETRIES) { count ++; #ifdef BLINK_FLASH digitalWrite(LED_BUILTIN, 3); delay(500); digitalWrite(LED_BUILTIN, 0); delay(500); #else delay(500); #endif //BLINK_FLASH Serial.print("."); draw(aplist[i].ssid, NOLOGO, -1, 100*count/MAX_CNX_RETRIES); } if( WiFi.status() == WL_CONNECTED ) { Serial.println(""); IPAddress ip = WiFi.localIP(); WiFiIP = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]); Serial.println("WiFiConnect: "+WiFiIP); currentAPIndex = i; break; } if(WiFi.status() != WL_CONNECTED) { Serial.println("WiFiConnect: Failed"); } i++; } digitalWrite(LED_BUILTIN, HIGH); return (WiFi.status() == WL_CONNECTED) ? 1 : 0; } #endif //_MY_WIFI_H