11/*
22 * This sketch demonstrates how to scan WiFi networks.
3- * The API is almost the same as with the WiFi Shield library,
4- * the most obvious difference being the different file you need to include:
3+ * The API is based on the Arduino WiFi Shield library, but has significant changes as newer WiFi functions are supported.
4+ * E.g. the return value of `encryptionType()` different because more modern encryption is supported.
55 */
66#include " WiFi.h"
77
88void setup ()
99{
1010 Serial.begin (115200 );
1111
12- // Set WiFi to station mode and disconnect from an AP if it was previously connected
12+ // Set WiFi to station mode and disconnect from an AP if it was previously connected.
1313 WiFi.mode (WIFI_STA);
1414 WiFi.disconnect ();
1515 delay (100 );
@@ -19,30 +19,68 @@ void setup()
1919
2020void loop ()
2121{
22- Serial.println (" scan start" );
22+ Serial.println (" Scan start" );
2323
24- // WiFi.scanNetworks will return the number of networks found
24+ // WiFi.scanNetworks will return the number of networks found.
2525 int n = WiFi.scanNetworks ();
26- Serial.println (" scan done" );
26+ Serial.println (" Scan done" );
2727 if (n == 0 ) {
2828 Serial.println (" no networks found" );
2929 } else {
3030 Serial.print (n);
3131 Serial.println (" networks found" );
32+ Serial.println (" Nr | SSID | RSSI | CH | Encryption" );
3233 for (int i = 0 ; i < n; ++i) {
3334 // Print SSID and RSSI for each network found
34- Serial.print (i + 1 );
35- Serial.print (" : " );
36- Serial.print (WiFi.SSID (i));
37- Serial.print (" (" );
38- Serial.print (WiFi.RSSI (i));
39- Serial.print (" )" );
40- Serial.println ((WiFi.encryptionType (i) == WIFI_AUTH_OPEN)?" " :" *" );
35+ Serial.printf (" %2d" ,i + 1 );
36+ Serial.print (" | " );
37+ Serial.printf (" %-32.32s" , WiFi.SSID (i).c_str ());
38+ Serial.print (" | " );
39+ Serial.printf (" %4d" , WiFi.RSSI (i));
40+ Serial.print (" | " );
41+ Serial.printf (" %2d" , WiFi.channel (i));
42+ Serial.print (" | " );
43+ switch (WiFi.encryptionType (i))
44+ {
45+ case WIFI_AUTH_OPEN:
46+ Serial.print (" open" );
47+ break ;
48+ case WIFI_AUTH_WEP:
49+ Serial.print (" WEP" );
50+ break ;
51+ case WIFI_AUTH_WPA_PSK:
52+ Serial.print (" WPA" );
53+ break ;
54+ case WIFI_AUTH_WPA2_PSK:
55+ Serial.print (" WPA2" );
56+ break ;
57+ case WIFI_AUTH_WPA_WPA2_PSK:
58+ Serial.print (" WPA+WPA2" );
59+ break ;
60+ case WIFI_AUTH_WPA2_ENTERPRISE:
61+ Serial.print (" WPA2-EAP" );
62+ break ;
63+ case WIFI_AUTH_WPA3_PSK:
64+ Serial.print (" WPA3" );
65+ break ;
66+ case WIFI_AUTH_WPA2_WPA3_PSK:
67+ Serial.print (" WPA2+WPA3" );
68+ break ;
69+ case WIFI_AUTH_WAPI_PSK:
70+ Serial.print (" WAPI" );
71+ break ;
72+ default :
73+ Serial.print (" unknown" );
74+ }
75+ Serial.println ();
4176 delay (10 );
4277 }
4378 }
4479 Serial.println (" " );
4580
46- // Wait a bit before scanning again
81+ // Delete the scan result to free memory for code below.
82+ WiFi.scanDelete ();
83+
84+ // Wait a bit before scanning again.
4785 delay (5000 );
4886}
0 commit comments