WLAN STA —— 控制内置 WiFi 接口。

该类提供用于 WiFi STA 网络处理器的驱动程序。

MicroPython 应用示例:

 1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8import network
 9
10
11title0 = None
12label0 = None
13label1 = None
14label2 = None
15wlan = None
16
17
18def setup():
19    global title0, label0, label1, label2, wlan
20
21    M5.begin()
22    Widgets.fillScreen(0x222222)
23    title0 = Widgets.Title(
24        "WLAN STA CoreS3 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
25    )
26    label0 = Widgets.Label("label0", 2, 81, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
27    label1 = Widgets.Label("label1", 2, 114, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
28    label2 = Widgets.Label("label2", 2, 143, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
29
30    wlan = network.WLAN(network.STA_IF)
31    wlan.config(reconnects=3)
32    wlan.connect("your-wlan", "your-password")
33
34
35def loop():
36    global title0, label0, label1, label2, wlan
37    M5.update()
38    label0.setText(str((str("Connected?:") + str((wlan.isconnected())))))
39    label1.setText(str((str("RSSI:") + str((wlan.status("rssi"))))))
40    label2.setText(str((str("IP:") + str((wlan.ifconfig()[0])))))
41
42
43if __name__ == "__main__":
44    try:
45        setup()
46        while True:
47            loop()
48    except (Exception, KeyboardInterrupt) as e:
49        try:
50            from utility import print_error_msg
51
52            print_error_msg(e)
53        except ImportError:
54            print("please update to latest firmware")

UiFlow2 应用示例

example.png

wlan_sta_cores3_example.m5f2

构造函数

class network.WLAN(interface_id)

创建 WLAN 网络接口对象。支持的接口为“network.STA_IF”(站点,也称为客户端,连接到上游 WiFi 接入点)。

UiFlow2:

init.png

Methods

WLAN.status([param])

返回无线连接的当前状态。

当不带参数调用时,返回值用于描述网络链路状态。可能的状态被定义为常量:

  • STAT_IDLE —— 无连接且无活动。

  • STAT_CONNECTING —— 正在连接中。

  • STAT_WRONG_PASSWORD —— 因密码错误而失败。

  • STAT_NO_AP_FOUND —— 失败,因为没有接入点响应。

  • STAT_CONNECT_FAIL —— 由于其他问题导致失败。

  • STAT_GOT_IP —— 连接成功。

当使用一个参数调用时,param 应为一个字符串,用于指定要获取的状态参数名称。

WiFI STA 模式下支持的参数为:'rssi'

UiFlow2:

get_rssi.png

get_status.png

WLAN.isconnected()

在 STA 模式下,如果已连接到 WiFi 接入点并具有有效的 IP 地址,则返回 True

UiFlow2:

isconnected.png

WLAN.active([is_active])

如果传入布尔参数,则启用(“up”)或禁用(“down”)网络接口。否则,在未提供参数时查询当前状态。大多数其他方法需要接口处于活动状态。

active.png

WLAN.connect(ssid=None, key=None, *, bssid=None)

使用指定的密钥连接到指定的无线网络。如果给定 bssid,则连接将被限制为具有该 MAC 地址的接入点(此时也必须指定 ssid)。

connect.png

WLAN.disconnect()

断开与当前已连接的无线网络的连接。

disconnect.png

WLAN.ifconfig([(ip, subnet, gateway, dns)])

获取/设置 IP 层网络接口参数:IP 地址、子网掩码、网关和 DNS 服务器。当不带参数调用时,该方法返回一个包含上述信息的 4 元组。要设置上述值,请传入一个包含所需信息的 4 元组。

get_localip.png

get_subnet.png

get_gateway.png

get_dns.png

WLAN.config('param')
WLAN.config(param=value, ...)

获取或设置通用网络接口参数。这些方法允许使用超出标准 IP 配置(由 AbstractNIC.ipconfig() 处理)之外的附加参数。这些参数包括网络特定参数和硬件特定参数。对于设置参数,应使用关键字参数语法,并且可以一次设置多个参数。对于查询,应将参数名称用字符串形式加引号,并且一次只能查询一个参数:

以下为常见支持的参数(具体参数的可用性取决于网络技术类型、驱动程序以及 MicroPython port)。

Parameter

Description

mac

MAC 地址(bytes)

ssid

WiFi 接入点名称(字符串)。

频道

WiFi 信道(整数)

hidden

SSID 是否隐藏(布尔值)。

安全

支持的安全协议(枚举,参见模块常量)。

key

访问密钥(string)

hostname

将发送到 DHCP(STA 接口)和 mDNS(如果支持,STA 和 AP 均适用)的主机名。(已弃用,请改用 network.hostname()。)

重新连接

要进行的重新连接尝试次数(整数,0 = 不尝试,-1 = 不限制)。

txpower

最大发射功率,单位为 dBm(整数或浮点数)。

pm

WiFi 电源管理设置(允许的取值见下文)。

set_dhcp_hostname.png

set_reconnects.png

set_txpower.png

get_dhcp_hostname.png

get_reconnects.png

get_txpower.png

get_mac.png

WLAN.scan()

扫描可用的无线网络。如果 WLAN 接口允许,也会扫描隐藏网络(即不广播 SSID 的网络)。

扫描仅可在 STA 接口上进行。返回包含 WiFi 接入点信息的元组列表:

(ssid, bssid, channel, RSSI, security, hidden)

bssid 是接入点的硬件地址,以二进制形式表示,并以 bytes 对象形式返回。你可以使用 binascii.hexlify() 将其转换为 ASCII 形式。

安全性有五个取值:

  • 0 – 打开

  • 1 – WEP

  • 2 – WPA-PSK

  • 3 – WPA2-PSK

  • 4 – WPA/WPA2-PSK

以及两个用于 hidden:

  • 0 – 可见

  • 1 – hidden

scan.png

scan_get_value.png