diff --git a/ampel-firmware/wifi_util.cpp b/ampel-firmware/wifi_util.cpp index a845140a8aa80e66c0279c7b74e486847aaf6355..21680e73c7b3274b9704c68b25f97ee6571fa53a 100644 --- a/ampel-firmware/wifi_util.cpp +++ b/ampel-firmware/wifi_util.cpp @@ -14,8 +14,29 @@ namespace config { namespace wifi { char local_ip[16]; // "255.255.255.255\0" - // Initialize Wi-Fi + + void scanNetworks() { + Serial.println(); + Serial.println(F("WiFi - Scanning...")); + bool async = false; + bool showHidden = true; + int n = WiFi.scanNetworks(async, showHidden); + for (int i = 0; i < n; ++i) { + Serial.print(F(" * '")); + Serial.print(WiFi.SSID(i)); + Serial.print(F("' (")); + int16_t quality = 2 * (100 + WiFi.RSSI(i)); + Serial.print(util::min(util::max(quality, 0), 100)); + Serial.println(F(" %)")); + } + Serial.println(F("Done!")); + Serial.println(); + } + +// Initialize Wi-Fi void connect(const char *hostname) { + + sensor_console::defineCommand("wifi_scan", scanNetworks, F(" (Scans available WiFi networks)")); //NOTE: WiFi Multi could allow multiple SSID and passwords. WiFi.persistent(false); // Don't write user & password to Flash. WiFi.mode(WIFI_STA); // Set ESP to be a WiFi-client only