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,69 @@ 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+ if (WiFi.SSID (i).length () < 15 ) {
38+ Serial.printf (" %-15s" , WiFi.SSID (i).c_str ());
39+ } else {
40+ Serial.print (WiFi.SSID (i));
41+ }
42+ Serial.print (" | " );
43+ Serial.printf (" %4d" , WiFi.RSSI (i));
44+ Serial.print (" | " );
45+ Serial.printf (" %2d" , WiFi.channel (i));
46+ Serial.print (" | " );
47+ switch (WiFi.encryptionType (i))
48+ {
49+ case WIFI_AUTH_OPEN:
50+ Serial.print (" open" );
51+ break ;
52+ case WIFI_AUTH_WEP:
53+ Serial.print (" WEP" );
54+ break ;
55+ case WIFI_AUTH_WPA_PSK:
56+ Serial.print (" WPA" );
57+ break ;
58+ case WIFI_AUTH_WPA2_PSK:
59+ Serial.print (" WPA2" );
60+ break ;
61+ case WIFI_AUTH_WPA_WPA2_PSK:
62+ Serial.print (" WPA+WPA2" );
63+ break ;
64+ case WIFI_AUTH_WPA2_ENTERPRISE:
65+ Serial.print (" WPA2-EAP" );
66+ break ;
67+ case WIFI_AUTH_WPA3_PSK:
68+ Serial.print (" WPA3" );
69+ break ;
70+ case WIFI_AUTH_WPA2_WPA3_PSK:
71+ Serial.print (" WPA2+WPA3" );
72+ break ;
73+ case WIFI_AUTH_WAPI_PSK:
74+ Serial.print (" WAPI" );
75+ break ;
76+ default :
77+ Serial.print (" unknown" );
78+ }
79+ Serial.println ();
4180 delay (10 );
4281 }
4382 }
4483 Serial.println (" " );
4584
46- // Wait a bit before scanning again
85+ // Wait a bit before scanning again.
4786 delay (5000 );
4887}
0 commit comments