| 1234567891011121314151617181920212223242526272829303132333435363738 |
- import network
- from machine import Timer
- SSID = "Xiaomi_eng"
- PASSWORD = "88888888"
- class MyWifi():
- _instance = None
- # 单例模式:WiFi实例化只能有一次,实例化多个 mywifi 对象将始终返回同一个-
- def __new__(cls, *args, **kwargs):
- if cls._instance is None:
- cls._instance = super().__new__(cls)
- return cls._instance # 返回的是内存地址
- def __init__(self, ssid=SSID, password=PASSWORD) -> None:
- self.ssid = ssid
- self.password = PASSWORD
- self.wlan = network.WLAN(network.STA_IF)
- self.wlan.active(True)
- self.tim = Timer(0)
- # 每 2000ms 定时回调一次 self.upload_data()
- self.tim.init(period=5000, mode=Timer.PERIODIC,callback=self.do_connect)
- self.connect_status = False
- def do_connect(self, timer):
- if not self.wlan.isconnected():
- print('connecting to network...')
- self.wlan.connect(SSID, PASSWORD)
- while not self.wlan.isconnected():
- pass
- print('network config:', self.wlan.ifconfig())
- self.connect_status = True
-
- # 松耦合设计原理:利用接口访问他们的状态,防止随意访问这个类的内部导致数据意外篡改
- def get_status(self):
- return self.connect_status
-
- if __name__ == '__main__':
- MyWifi()
|