48 lines
No EOL
1.4 KiB
Python
48 lines
No EOL
1.4 KiB
Python
import network
|
|
import time
|
|
|
|
address = "192.168.0.1"
|
|
netmask = "255.255.255.0"
|
|
gateway = "192.168.0.1"
|
|
dns = "192.168.0.1"
|
|
|
|
|
|
class WifiAP:
|
|
def __init__(self, ssid, password):
|
|
self.ssid = ssid
|
|
self.password = password
|
|
# STA: disable
|
|
self.if_sta = network.WLAN(network.STA_IF)
|
|
self.if_sta.active(False)
|
|
# AP: enable
|
|
self.if_ap = network.WLAN(network.AP_IF)
|
|
|
|
def connect(self):
|
|
self.if_ap.active(True)
|
|
self.if_ap.ifconfig([address, netmask, gateway, dns])
|
|
self.if_ap.config(essid=self.ssid, password=self.password)
|
|
print("network config {}".format(self.if_ap.ifconfig()))
|
|
|
|
class WifiSTA:
|
|
def __init__(self, ssid, password):
|
|
self.ssid = ssid
|
|
self.password = password
|
|
# AP: disable
|
|
self.if_ap = network.WLAN(network.AP_IF)
|
|
self.if_ap.active(False)
|
|
# STA: enable
|
|
self.if_sta = network.WLAN(network.STA_IF)
|
|
self.if_sta.active(True)
|
|
|
|
def check(self):
|
|
if not self.if_sta.isconnected():
|
|
print("wifi down, reconnecting...")
|
|
self.connect()
|
|
|
|
def connect(self):
|
|
print("connecting wifi")
|
|
self.if_sta.active(True)
|
|
self.if_sta.connect(self.ssid, self.password)
|
|
while not self.if_sta.isconnected():
|
|
time.sleep(0.1)
|
|
print("network config {}".format(self.if_sta.ifconfig())) |