@@ -17,16 +17,49 @@ void set_NTP_time() {
1717 WiFi.mode (WIFI_STA);
1818 uint8_t n_net = WiFi.scanNetworks ();
1919
20- WiFi.begin (conf.wifi .SSID , conf.wifi .PASSWORD );
21- Serial.printf (" Connecting to %s " , conf.wifi .SSID );
20+ char ssid[256 ];
21+ strlcpy (ssid, conf.wifi .SSID , sizeof (ssid));
22+
23+ if (strcmp (conf.wifi .SSID , " " ) == 0 ) {
24+ bool open_ap_found = false ;
25+
26+ if (n_net) {
27+ Serial.println (" Network found!\n " );
28+ for (uint8_t i = 0 ; i < n_net; ++i)
29+ if (WiFi.encryptionType (i) == WIFI_AUTH_OPEN) {
30+ strlcpy (ssid, WiFi.SSID (i).c_str (), sizeof (ssid));
31+ open_ap_found = true ;
32+ break ;
33+ }
34+ }
35+ else
36+ Serial.println (" No network found.\n " );
37+
38+ if (open_ap_found) {
39+ WiFi.begin (ssid);
40+ Serial.printf (" Connecting to %s " , ssid);
41+ }
42+ else {
43+ Serial.println (" No open network found.\n " );
44+ return ;
45+ }
46+ }
47+ else if ((strcmp (conf.wifi .SSID , " " ) != 0 ) && (strcmp (conf.wifi .PASSWORD , " " ) == 0 )) {
48+ WiFi.begin (conf.wifi .SSID );
49+ Serial.printf (" Connecting to %s " , conf.wifi .SSID );
50+ }
51+ else {
52+ WiFi.begin (conf.wifi .SSID , conf.wifi .PASSWORD );
53+ Serial.printf (" Connecting to %s " , conf.wifi .SSID );
54+ }
2255
2356 while (WiFi.status () != WL_CONNECTED && WiFi.status () != WL_CONNECT_FAILED)
2457 delay (100 );
2558
2659 if (WiFi.status () == WL_CONNECT_FAILED)
27- Serial.printf (" \n Error connecting to %s.\n " , conf. wifi . SSID );
60+ Serial.printf (" \n Error connecting to %s.\n " , ssid );
2861
29- Serial.printf (" \n Connected to %s.\n " , conf. wifi . SSID );
62+ Serial.printf (" \n Connected to %s.\n " , ssid );
3063
3164 timeClient.begin ();
3265 delay (50 );
@@ -35,7 +68,7 @@ void set_NTP_time() {
3568
3669 if (timeClient.isTimeSet ()) {
3770 rtc.adjust (timeClient.getEpochTime ());
38- Serial.printf (" RTC adjusted with NTP time.\n Disconnecting from %s.\n " , conf. wifi . SSID );
71+ Serial.printf (" RTC adjusted with NTP time.\n Disconnecting from %s.\n " , ssid );
3972 }
4073 else {
4174 Serial.printf (" NTP server error. Time not set.\n " );
0 commit comments