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

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

MicroPython 应用示例:

 1# SPDX-FileCopyrightText: 2024 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
18ap_client = None
19
20
21def setup():
22    global title0, label0, label1, label2, wlan
23
24    M5.begin()
25    Widgets.fillScreen(0x222222)
26    title0 = Widgets.Title("WLAN AP CoreS3 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18)
27    label0 = Widgets.Label("label0", 2, 77, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
28    label1 = Widgets.Label("label1", 2, 111, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
29    label2 = Widgets.Label("label2", 2, 145, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
30
31    wlan = network.WLAN(network.AP_IF)
32    wlan.config(max_clients=4)
33    wlan.config(essid="M5CoreS3AP")
34    wlan.active(True)
35
36
37# Please connect to the AP named M5CoreS3.
38def loop():
39    global title0, label0, label1, label2, wlan
40    M5.update()
41    label0.setText(str((str("AP is connected?:") + str((wlan.isconnected())))))
42    label1.setText(str((str("SSID:") + str((wlan.config("essid"))))))
43    for ap_client in wlan.status("stations"):
44        label2.setText(str(ap_client[0]))
45
46
47if __name__ == "__main__":
48    try:
49        setup()
50        while True:
51            loop()
52    except (Exception, KeyboardInterrupt) as e:
53        try:
54            from utility import print_error_msg
55
56            print_error_msg(e)
57        except ImportError:
58            print("please update to latest firmware")

UiFlow2 应用示例:

example.png

wlan_ap_cores3_example.m5f2

Constructors

class network.WLAN(interface_id)

创建 WLAN 网络接口对象。支持的接口包括“network.AP_IF”(接入点,允许其他 WiFi 客户端连接)。

UIFLOW2:

init.png

Methods

WLAN.status([param])

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

当不带参数调用时,返回值描述网络链路状态。

UIFLOW2:

scan.png

scan_get_mac.png

WLAN.isconnected()

在 AP 模式下,当有 station 连接时返回 True。否则返回 False

isconnected.png

WLAN.active([is_active])

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

active.png

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

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

get_local_ip.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 是否隐藏(boolean)

安全

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

key

访问密钥(string)。

hostname

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

重新连接

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

txpower

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

pm

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

set_ssid.png

set_password.png

set_hidden_status.png

set_auth_mode.png

set_channel.png

set_dhcp_hostname.png

set_max_clients.png

set_txpower.png

get_ssid.png

get_password.png

get_mac.png

get_hidden_status.png

get_auth_mode.png

get_channel.png

get_dhcp_hostname.png

get_max_clients.png

get_txpower.png

Constants

WLAN.AUTH_OPEN
WLAN.AUTH_WEP
WLAN.AUTH_WPA_PSK
WLAN.AUTH_WPA2_PSK
WLAN.AUTH_WPA_WPA2_PSK
WLAN.AUTH_WPA2_ENTERPRISE
WLAN.AUTH_WPA3_PSK
WLAN.AUTH_WPA2_WPA3_PSK
WLAN.AUTH_WAPI_PSK

WLAN.config(authmode=...) 网络接口参数允许的取值:

  • AUTH_OPEN:0 —— 开放

  • AUTH_WEP:1 – WEP

  • AUTH_WPA_PSK:2 —— WPA-PSK

  • AUTH_WPA2_PSK:3 – WPA2-PSK

  • AUTH_WPA_WPA2_PSK:4 – WPA/WPA2-PSK。

  • AUTH_WPA2_ENTERPRISE:5 —— WPA2-Enterprise

  • AUTH_WPA3_PSK:6 —— WPA3-PSK

  • AUTH_WPA2_WPA3_PSK:7 – WPA2/WPA3-PSK

  • AUTH_WAPI_PSK:8 – WAPI-PSK。