4. WLAN 一步一步¶
WLAN 是 WiPy 的系统功能,因此它始终处于启用状态(即使在 中 machine.SLEEP
),除非进入深度睡眠模式。
为了检索当前 WLAN 实例,请执行以下操作:
>>> from network import WLAN
>>> wlan = WLAN() # we call the constructor without params
您可以检查当前模式(始终 WLAN.AP
在上电后):
>>> wlan.mode()
警告
当您按照以下说明更改 WLAN 模式时,您与 WiPy 的 WLAN 连接将中断。这意味着您将无法通过 WLAN 以交互方式运行这些命令。
- 有两种方法可以解决这个问题::
将此设置代码放入boot.py 文件 ,以便在重置后自动执行。
在 UART 上复制 REPL,以便您可以通过 USB 运行命令。
4.1. 连接到您的家庭路由器¶
WLAN网卡总是以 WLAN.AP
mode启动,所以我们首先要配置成一个站:
from network import WLAN
wlan = WLAN(mode=WLAN.STA)
现在您可以继续扫描网络:
nets = wlan.scan()
for net in nets:
if net.ssid == 'mywifi':
print('Network found!')
wlan.connect(net.ssid, auth=(net.sec, 'mywifikey'), timeout=5000)
while not wlan.isconnected():
machine.idle() # save power while waiting
print('WLAN connection succeeded!')
break
4.2. 启动时分配静态 IP 地址¶
如果您希望 WiPy 在启动后连接到您的家庭路由器,并使用固定 IP 地址以便您可以通过 telnet 或 FTP 访问它,请使用以下脚本作为 /flash/boot.py:
import machine
from network import WLAN
wlan = WLAN() # get current object, without changing the mode
if machine.reset_cause() != machine.SOFT_RESET:
wlan.init(WLAN.STA)
# configuration below MUST match your home router settings!!
wlan.ifconfig(config=('192.168.178.107', '255.255.255.0', '192.168.178.1', '8.8.8.8'))
if not wlan.isconnected():
# change the line below to match your network ssid, security and password
wlan.connect('mywifi', auth=(WLAN.WPA2, 'mywifikey'), timeout=5000)
while not wlan.isconnected():
machine.idle() # save power while waiting
笔记
请注意我们如何检查重置原因和连接状态,这对于能够在 telnet 会话期间软重置 WiPy 而不中断连接至关重要。