使用无线网例程讲解#
例程位置#
Wi-Fi STA 例程:
开发板固件路径:
/sdcard/examples/14-Socket/network_wlan_sta.pySDK 源码路径:
src/canmv/resources/examples/14-Socket/network_wlan_sta.py
Wi-Fi AP 例程:
开发板固件路径:
/sdcard/examples/14-Socket/network_wlan_ap.pySDK 源码路径:
src/canmv/resources/examples/14-Socket/network_wlan_ap.py
WLAN 设备选择#
两个例程都使用:
WLAN_DEVICE = "auto"
可选值为 "auto"、"usb"、"sdio" 和 "spi"。通常保留 "auto",让
系统从已注册设备中选择。只有同时安装多块 Wi-Fi 且应用必须使用指定传输类型时,
才固定该参数。
当前 SDK 可使用 RTL8189FTV/RTL8733BS 和 Broadcom brcmfmac SDIO、RW007 SPI、
AIC8800 USB/SDIO,以及按固件配置启用的 ESP-Hosted SPI/SDIO 方案。具体驱动、
默认板级配置和安全模式限制见
Wi-Fi 驱动与设备选择。WLAN_DEVICE 只选择
传输类型,不能按厂商或型号选择同一总线上的设备。
Wi-Fi STA 例程#
STA 模式用于连接现有无线路由器或热点。
配置凭据#
SSID = "TEST"
PASSWORD = "12345678"
WLAN_DEVICE = "auto"
将 SSID 和密码修改为现场热点信息。SSID 区分大小写。
连接并等待地址#
from libs.Network import connect_network
sta, ip = connect_network(
"wifi_sta",
ssid=SSID,
password=PASSWORD,
wlan_device=WLAN_DEVICE,
timeout=10,
)
这一步依次完成物理 WLAN 选择、设备注册等待、热点连接、DHCP 地址等待和默认 上行设置。失败或 10 秒内未取得地址时抛出异常,不需要应用自行无限轮询。
查看状态#
print(sta.ifconfig())
print(sta.status())
ifconfig() 返回 IP 参数,status() 返回连接状态。如需查看当前 Wi-Fi STA
对应的动态设备名,可额外调用 sta.netdev_name()。
断开测试#
sta.disconnect()
print("断开连接")
print(sta.status())
例程最后主动断开只用于演示。实际需要持续联网的程序应删除这几行。断开后, 默认路由管理会尝试选择其他已就绪的 LAN 或 Wi-Fi STA。
Wi-Fi AP 例程#
AP 模式用于让手机或电脑连接到开发板创建的热点。
创建热点#
from libs.Network import connect_network
ap, ip = connect_network(
"wifi_ap",
ssid="k230_ap_wjx",
password="12345678",
wlan_device=WLAN_DEVICE,
)
公共网络库选择 WLAN AP 设备、创建加密热点并等待 AP 地址。Wi-Fi AP 是本地 接入接口,不会被设置为互联网默认上行。
查看热点信息#
print(ap.info())
print(ap.status())
info() 返回热点配置,status() 返回 AP 状态。如需查看动态设备名,可调用
ap.netdev_name();需要查看已连接终端时可使用 ap.status("stations")。
停止热点#
示例保持热点运行。应用退出前如需主动停止,可调用:
ap.stop()
运行与验证#
STA 测试:
打开
/sdcard/examples/14-Socket/network_wlan_sta.py。修改 SSID 和密码后运行。
确认
ifconfig()中 IP 不为0.0.0.0。例程执行到末尾后会主动断开。
AP 测试:
打开
/sdcard/examples/14-Socket/network_wlan_ap.py并运行。用手机搜索并连接
k230_ap_wjx,密码为12345678。检查串口打印的 AP 信息和状态。
若指定 WLAN_DEVICE 后报告设备不可用,先改回 "auto"。完整接口定义见
network 模块 API 手册。
