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

设置固件更新模式。