39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import network
|
|
import time
|
|
|
|
|
|
def connect() -> network.WLAN:
|
|
"""
|
|
Connects to the WLAN as configured in wlan_cfg.py.
|
|
Returns after the connection is established.
|
|
"""
|
|
try:
|
|
import wlan_cfg
|
|
except Exception as e:
|
|
print('[wlan_manager] Could not import wlan_cfg.py: {}'.format(str(e)))
|
|
print('[wlan_manager] Defaulting to access point mode')
|
|
wlan = network.WLAN(network.AP_IF)
|
|
wlan.active(True)
|
|
return wlan
|
|
|
|
wlan = network.WLAN(network.STA_IF)
|
|
wlan.active(True)
|
|
|
|
if not wlan.isconnected():
|
|
wlan.connect(wlan_cfg.SSID, wlan_cfg.PASSWORD)
|
|
|
|
print('[wlan_manager] Connecting to WLAN "{}" '.format(wlan_cfg.SSID), end='')
|
|
while not wlan.isconnected():
|
|
print('.', end='')
|
|
time.sleep(1)
|
|
print('\n[wlan_manager] Connected!')
|
|
else:
|
|
print('[wlan_manager] Already connected to WLAN "{}"'.format(wlan.config('essid')))
|
|
|
|
# Static IP configuration if IFCONFIG is not None
|
|
if wlan_cfg.IFCONFIG:
|
|
wlan.ifconfig(wlan_cfg.IFCONFIG)
|
|
|
|
print('[wlan_manager] IP config: {}'.format(wlan.ifconfig()))
|
|
return wlan
|