class WINC – wifi shield 驱动器¶
WINC
类用于控制 wifi shield。
示例用法:
import network
wlan = network.WINC()
wlan.connect("SSID", "KEY")
wlan.ifconfig()
构造¶
- class network.WINC([mode=MODE_STATION])¶
创建一个 WINC 驱动器对象并连接到使用 I/O pins P0, P1, P2, P3, P6, P7 和 P8 的 wifi shield。
mode
控制 WINC 模块的工作模式:network.WINC.MODE_STATION
该模块以客户端的方式连接到接入点。这是默认模式。
network.WINC.MODE_AP
该模块将创建一个 AP (接入点) 并接受来自客户端的连接。
备注
在设置 AP 模式后,必须调用 start_ap() 方法来配置 AP。
此外,WINC1500 在其 AP 实现中存在一些限制:
一次只能连接一个客户端。
仅支持 OPEN 或 WEP 安全性。
在 WiFi 模块 FW 中存在一个 bug,当客户端断开连接时,任何已绑定的套接字都会丢失(它们停止工作)。作为解决方法,为服务器套接字设置超时以强制其引发异常,然后重新打开它(参见示例脚本)。
network.WINC.MODE_FIRMWARE:
此模式启用 WiFi 模块固件更新。
备注
mode
也可以是network.STA_IF
(即站点或客户端,连接到上游 WiFi 接入点)和network.AP_IF
(接入点,允许其他 WiFi 客户端连接)。下面的方法的可用性取决于接口类型。例如,只有 STA 接口可以WLAN.connect()
到一个接入点。方法¶
- active([is_active])¶
如果传递布尔参数,则激活(“up”)或停用(“down”)网络接口。否则,在未提供参数的情况下查询当前状态。大多数其他方法都需要激活接口。
- connect(ssid[, key=None[, security=WPA_PSK[, channel=1]]])¶
使用 ssid
ssid
,密钥key
,安全性security
和信道channel
连接到 wifi 网络。连接到网络后,使用
usocket
模块打开 TCP/UDP 端口以发送和接收数据。备注
此方法需要一点时间才能返回。
- start_ap(ssid[, key=None[, security=OPEN[, channel=1]]])¶
在 AP 模式下运行时,必须在创建 WINC 对象后调用此方法来配置和启动 AP。
ssid: AP 的 SSID(必须设置)。
key: AP 加密密钥。仅当安全性为 WEP 时需要密钥。
security: AP 安全模式(仅支持 OPEN 或 WEP)。
channel: WiFi 信道,如果同一信道上有另一个 AP 运行,则更改此信道。
- disconnect()¶
从 wifi 网络断开连接。
- isconnected()¶
如果连接到接入点并获得了 IP 地址,则返回 True。
- connected_sta()¶
此方法返回一个包含连接客户端 IP 地址的列表。
- wait_for_sta(timeout)¶
此方法会阻塞并等待客户端连接。如果超时值为 0,则会一直阻塞。此方法返回一个包含连接客户端 IP 地址的列表。
- ifconfig([ip_addr, subnet_addr, gateway_addr, dns_addr])¶
返回一个元组,其中包含:
[0]: IP 地址字符串(XXX.XXX.XXX.XXX)
[1]: 子网地址字符串(XXX.XXX.XXX.XXX)
[2]: 网关字符串(XXX.XXX.XXX.XXX)
[3]: DNS 地址字符串(XXX.XXX.XXX.XXX)
在连接到网络时。
您可以选择传递一个元组/列表,其中包含以 IPv4 格式(XXX.XXX.XXX.XXX)的 ip_addr、subnet_addr、gateway_addr 和 dns_addr 字符串,以设置静态 IP 地址,而不是通过 DHCP 获取地址(默认情况下发生)。
示例用法:
wlan = network.WINC() wlan.ifconfig(('192.168.1.100', '255.255.255.0', '192.168.1.1', '192.168.1.1')) wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK)
- netinfo()¶
返回一个元组,其中包含:
[0]: RSSI - 接收信号强度指示器(int)
[1]: 授权类型(见常量)
[2]: 设置服务标识符字符串(SSID)
[3]: MAC 地址字符串(XX:XX:XX:XX:XX:XX)(BSSID)
[4]: IP 地址字符串(XXX.XXX.XXX.XXX)
在连接到网络时。
- scan()¶
返回一个列表,其中包含:
[0]: 设置服务标识符字符串(SSID)
[1]: MAC 地址字符串(XX:XX:XX:XX:XX:XX)(BSSID)
[2]: 信道号(int)
[3]: RSSI - 接收信号强度指示器(int)
[4]: 授权类型(见常量)
[5]: 1(int)
您无需连接即可调用此方法。
- rssi()¶
返回当前连接网络的接收信号强度指示器(int)。
- fw_version()¶
返回一个元组,其中包含 wifi shield 固件版本号。
[0]: 固件主要版本号(int)
[1]: 固件次要版本号(int)
[2]: 固件补丁版本号(int)
[3]: 驱动程序主要版本号(int)
[4]: 驱动程序次要版本号(int)
[5]: 驱动程序补丁版本号(int)
[6]: 硬件修订号 - 芯片 ID(int)
- fw_dump(path)¶
将 wifi shield 固件转储到位于
path
处的二进制文件。您必须将模块放入固件模式才能使用此功能。
- fw_update(path)¶
使用在
path
处找到的二进制图像对 wifi shield 进行编程。您必须将模块放入固件模式才能使用此功能。
常量¶
- OPEN¶
用于连接到开放的 wifi 网络。
- WPA_PSK¶
用于连接到基于 WPA/PSK 的密码保护网络。
- 802_1X¶
网络受到 WPA/WPA2 企业级保护。
- MODE_STA¶
以站点模式启动(即连接到网络)。
- MODE_AP¶
以接入点模式启动(即成为网络)。
- MODE_P2P¶
以 wifi-direct 模式启动。
- MODE_BSP¶
初始化 BSP。
- MODE_FIRMWARE¶
设置固件更新模式。