import network class WiFiUtil: def __init__(self): self.wlan = network.WLAN(network.STA_IF) self.wlan.active(True) def scan(self): """Scans for networks and returns a list of dictionaries with ssid and rssi.""" print("Scanning for Wi-Fi networks...") networks = self.wlan.scan() result = [] for net in networks: # network tuple: (ssid, bssid, channel, RSSI, authmode, hidden) try: ssid = net[0].decode('utf-8') except Exception: try: ssid = ''.join(chr(b) if 32 <= b < 127 else '?' for b in net[0]) except Exception: ssid = "" rssi = net[3] if ssid: # Filter out hidden/empty SSIDs result.append({"ssid": ssid, "rssi": rssi}) # Sort by signal strength (RSSI) descending result.sort(key=lambda x: x['rssi'], reverse=True) return result