import network import time import json def load_config(): try: with open('config.json') as f: return json.load(f) except OSError: print('[boot] config.json not found, using defaults') return { 'ssid': 'MyWiFi', 'password': 'secret', 'led_count': 300, 'strip_type': 'sk6812', 'led_pin': 5, 'spi_id': 1, 'udp_port': 21324 } def connect_wifi(ssid, password, timeout=15): wlan = network.WLAN(network.STA_IF) wlan.active(True) if wlan.isconnected(): print('[boot] Already connected:', wlan.ifconfig()[0]) return wlan print('[boot] Connecting to', ssid, '...') wlan.connect(ssid, password) start = time.time() while not wlan.isconnected(): if time.time() - start > timeout: print('[boot] WiFi timeout after', timeout, 'seconds') return wlan time.sleep(0.5) print('[boot] Connected:', wlan.ifconfig()[0]) return wlan config = load_config() wlan = connect_wifi(config['ssid'], config['password'])