import network
|
|
|
|
try:
|
|
from config import config
|
|
except ImportError:
|
|
config = {}
|
|
|
|
ap_if = network.WLAN(network.AP_IF)
|
|
wifi = network.WLAN(network.STA_IF)
|
|
|
|
def connect(enable_ap=False):
|
|
ap_if.active(enable_ap)
|
|
if not config.get("wifi_ssid") or not config.get("wifi_pass"):
|
|
print("WARNING: wifi_ssid or wifi_pass not configured in config.py")
|
|
return status()
|
|
|
|
if not wifi.isconnected():
|
|
wifi.active(True)
|
|
wifi.connect(config["wifi_ssid"], config["wifi_pass"])
|
|
|
|
while not wifi.isconnected():
|
|
pass
|
|
return status()
|
|
|
|
def disconnect():
|
|
wifi = network.WLAN(network.STA_IF)
|
|
wifi.active(False)
|
|
|
|
def status():
|
|
results = {
|
|
"ap": ap_if.ifconfig()[0] != "0.0.0.0",
|
|
"wifi": {
|
|
"ip": "0.0.0.0",
|
|
"netmask": "0.0.0.0",
|
|
"gateway": "0.0.0.0",
|
|
"dns": "0.0.0.0",
|
|
}
|
|
}
|
|
if wifi.isconnected():
|
|
ifconfig = wifi.ifconfig()
|
|
results["wifi"] = {
|
|
"ip": ifconfig[0],
|
|
"netmask": ifconfig[1],
|
|
"gateway": ifconfig[2],
|
|
"dns": ifconfig[3],
|
|
}
|
|
return results
|