#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(1000); // Wait a bit for the Serial Monitor to initialize
Serial.println("Scanning for Wi-Fi networks...");
// Start Wi-Fi in station mode
WiFi.mode(WIFI_STA);
WiFi.disconnect(); // Disconnect from any previous connection
// Scan for networks
int networks = WiFi.scanNetworks();
if (networks == 0) {
Serial.println("No networks found");
} else {
Serial.printf("%d networks found:\n\n", networks);
for (int i = 0; i < networks; ++i) {
// Print SSID, RSSI (signal strength), and encryption type
Serial.printf("%d: %s, Signal Strength: %d dBm, Encryption: %s\n",
i + 1, WiFi.SSID(i).c_str(), WiFi.RSSI(i),
encryptionType(WiFi.encryptionType(i)));
}
}
}
void loop() {
// Nothing needed in the loop
delay(10000); // Scan every 10 seconds
}
// Helper function to convert encryption type to a string
String encryptionType(wifi_auth_mode_t type) {
switch (type) {
case WIFI_AUTH_OPEN:
return "Open";
case WIFI_AUTH_WEP:
return "WEP";
case WIFI_AUTH_WPA_PSK:
return "WPA/PSK";
case WIFI_AUTH_WPA2_PSK:
return "WPA2/PSK";
case WIFI_AUTH_WPA_WPA2_PSK:
return "WPA/WPA2/PSK";
case WIFI_AUTH_WPA2_ENTERPRISE:
return "WPA2/Enterprise";
case WIFI_AUTH_WPA3_PSK:
return "WPA3/PSK";
default:
return "Unknown";
}
}