注意

这是最新开发分支配套的文档,可能包含已发布版本中尚未提供的功能。如果您要查看特定版本的文档,请使用左侧的下拉菜单并选择所需要的版本。

network 模块 API 手册

network 模块 API 手册#

概述#

本模块主要用于配置和查看网络参数,配置完成后,方可使用 socket 模块进行网络通信。

LAN#

参考文档: Micropython LAN

此类为有线网络的配置接口。示例代码如下:

import network
nic = network.LAN()
print(nic.ifconfig())

# 配置完成后,即可像往常一样使用 socket
...

构造函数#

  • class network.LAN()

    创建一个有线以太网对象。

方法#

  • LAN.active([state])

    激活或停用网络接口。传递布尔参数 True 表示激活,False 表示停用。如果不传参数,则返回当前状态。

  • LAN.isconnected()

    返回 True 表示已连接到网络,返回 False 表示未连接。

  • LAN.ifconfig([(ip, subnet, gateway, dns)])

    获取或设置 IP 级别的网络接口参数,包括 IP 地址、子网掩码、网关和 DNS 服务器。无参数调用时,返回一个包含上述信息的四元组;如需设置参数,传入包含 IP 地址、子网掩码、网关和 DNS 的四元组。例如:

    nic.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
    
  • LAN.config(config_parameters)

    获取或设置网络接口参数。当前仅支持设置或获取 MAC 地址。例如:

    import network
    lan = network.LAN()
    # 设置 MAC 地址
    lan.config(mac="42:EA:D0:C2:0D:83")
    # 获取 MAC 地址
    print(lan.config("mac"))
    

WLAN#

参考文档: Micropython WLAN

此类为 WiFi 网络配置接口。示例代码如下:

import network
import time

SSID = "TEST"
PASSWORD = "12345678"

sta = network.WLAN(network.STA_IF)

sta.connect(SSID, PASSWORD)

timeout = 10  # 单位:秒
start_time = time.time()

while not sta.isconnected():
    if time.time() - start_time > timeout:
        print("连接超时")
        break
    time.sleep(1)  # 请稍等片刻再连接

print(sta.ifconfig())

print(sta.status())

# 这里的断开网络,只是一个测试。实际应用可不断开
sta.disconnect()
print("断开网络")
print(sta.status())

构造函数#

  • class network.WLAN(*interface_id*)

    创建 WLAN 网络接口对象。支持的接口类型包括 network.STA_IF(即站模式,连接到上游 WiFi 接入点)和 network.AP_IF(即接入点模式,允许其他设备连接)。不同接口类型的方法有所不同,例如,只有 STA 模式支持通过 WLAN.connect() 连接到接入点。

方法#

  • WLAN.active()

    查询当前接口是否激活

  • WLAN.connect(ssid=None, key=None, [info = None])

    连接到指定 ssid 或者 infoinfo 是通过 scan 返回的结果。

    Sta 模式可用

  • WLAN.disconnect()

    Sta 模式时断开当前的 WiFi 网络连接。 Ap 模式时,可传入指定 mac 来断开设备的连接。

  • WLAN.scan()

    扫描可用的 WiFi 网络。此方法仅在 STA 模式下有效,返回的列表包含每个网络的信息,例如:

    # print(sta.scan())
    [{"ssid":"XCTech", "bssid":xxxxxxxxx, "channel":3, "rssi":-76, "security":"SECURITY_WPA_WPA2_MIXED_PSK", "band":"2.4G", "hidden":0},...]
    
  • WLAN.status([param])

    返回当前网络连接的信息。当不传参数时,返回当前的连接状态。例如:

    # 查看连接状态 等同与 sta.isconnected()
    print(sta.status())
    
    # 查看连接的信号质量
    print(sta.status("rssi"))
    

    支持的配置参数包括:

    • Sta 模式时

      • rssi: 连接信号质量

      • ap: 连接的热点名称

    • Ap 模式时

      • stations: 返回连接的设备信息

  • WLAN.isconnected()

    返回是否连接到热点

    Sta 模式可用

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

    获取或设置 IP 级别的网络接口参数。无参数调用时,返回包含 IP 地址、子网掩码、网关和 DNS 服务器的四元组;传入参数则设置这些值。例如:

    sta.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
    
  • WLAN.config(param)

    获取或设置网络接口的配置参数。设置参数时使用关键字参数语法;查询参数时,传递参数名即可。例如:

    # 查看 auto_reconnect 配置
    print(sta.config('auto_reconnect'))
    
    # 设置自动重连
    sta.config(auto_reconnect = True)
    

    支持的配置参数包括:

    • Sta 模式时

      • mac: mac 地址

      • auto_reconnect: 是否自动重连

    • Ap 模式时

      • ssid: 热点名称。传入该参数时会配置并启动热点,可同时使用 keysecurity 指定密码及安全类型

      • key: 热点密码,加密模式下长度应为 8 到 64 个字符;开放模式下省略该参数

      • security: 热点安全类型。配置时须同时传入 ssid,也可通过 ap.config('security') 查询当前值

      • info: 当前热点信息,仅可查询

      • country: 国家代码

    AP 模式常用的安全类型如下。具体可用类型取决于开发板使用的 WiFi 驱动,不支持的类型会导致配置失败并返回 False

    • SECURITY_OPEN: 开放热点,不使用密码

    • SECURITY_WPA_TKIP_PSK: WPA-PSK(TKIP)

    • SECURITY_WPA2_AES_PSK: WPA2-PSK(AES),推荐使用

    • SECURITY_WPA2_MIXED_PSK: WPA2-PSK(AES/TKIP 混合模式)

    创建 WPA2 加密热点:

    import network
    
    ap = network.WLAN(network.AP_IF)
    result = ap.config(
        ssid='CanMV_AP',
        key='12345678',
        security=ap.SECURITY_WPA2_AES_PSK,
    )
    print(result)
    print(ap.config('security'))
    

    创建开放热点时省略 key,并将安全类型设为 SECURITY_OPEN

    ap.config(ssid='CanMV_Open', security=ap.SECURITY_OPEN)
    

    未指定 security 时,传入 key 默认使用 SECURITY_WPA2_AES_PSK;未传入 key 默认使用 SECURITY_OPEN

  • WLAN.stop()

    停止开启热点

    Ap 模式可用

  • WLAN.info()

    查询当前热点信息

    Ap 模式可用

评论列表
条评论
登录