QuecPython+WLAN:无线网络控制

WLAN 概述

WLAN(Wireless Local Area Network,无线局域网) 是一种通过无线信号(如 Wi-Fi)实现设备互联的网络技术,允许计算机、智能手机、物联网设备等在不使用物理线缆的情况下接入局域网或互联网。

WLAN 的核心特点

  • 无线传输:使用无线电波(2.4GHz/5GHz/6GHz 频段)替代网线,支持移动性。
  • 标准化协议:基于 IEEE 802.11 系列标准(如 802.11ac、802.11ax)。
  • 灵活部署:无需布线,适合家庭、企业、公共场所等场景。
  • 共享带宽:所有设备共享同一无线信道,带宽受接入点(AP)和干扰影响。
  • 安全机制:支持 WPA3、WPA2 加密,防止未授权访问。

功能概述

主要介绍如何使用 QuecPython 开发板连接热点、产生 Wi-Fi 热点,典型的编程工作流程分为以下几个部分:

Station 模式:连接 Wi-Fi 热点

  • 创建 Wi-Fi 网卡对象
  • 连接热点

AP 模式:产生 Wi-Fi 热点

  • 创建 Wi-Fi 网卡对象
  • 设置热点名称和密码
  • 激活网卡

Station 模式

创建 Wi-Fi 网卡对象

初始化 Wi-Fi 网卡信息,并返回 Wi-Fi 网卡对象

class network.WLAN(mode)

参数介绍请参考构造函数。

连接热点

该方法用于连接指定无线网络。仅支持Station模式,支持阻塞/非阻塞式连接,默认阻塞式连接,超时时间15s。
如果没有指定 ssid 和 password,则会自动连接上一次连接成功的AP。

WLAN.connect([ssid, password, bssid, timeout])

API 详情请参考 WLAN.connect。

AP 模式

创建 Wi-Fi 网卡对象

初始化 Wi-Fi 网卡信息,并返回 Wi-Fi 网卡对象

class network.WLAN(mode)

参数介绍请参考构造函数。

设置配置参数

该方法用于设置热点名称和密码。

WLAN.config(ap_ssid = “SSID”, ap_password = “PASSWD”)

API 详情请参考 WLAN.config。

激活网卡

该方法用于激活网卡,触发热点的产生。

WLAN.active(enable)

API 详情请参考 WLAN.active。

应用案例

本案例使用 FCM360W QuecPython 开发板连接热点,示例代码如下:

import network

# 创建 Wi-Fi 网卡,并设置为 STATION 模式
nic = network.WLAN(network.STA_MODE)

# 定义 Wi-Fi 事件回调函数
def wifi_event_cb(event):
    # 打印事件信息
    print("- Event:\r\n   ", event)

    # 当获取到 IP 地址时,打印 IP 地址相关信息
    if event['id'] == 3305:
        print("- Got IP:\r\n   ", nic.ifconfig())

# 设置事件回调函数
nic.config(event_callback = wifi_event_cb)

# 连接热点
nic.connect(ssid = "QuecPython", password = "12345678")

代码执行结果如下:

- Connecting to QuecPython
- Event:
    {'msg': None, 'type': 3300, 'id': 3301}
- Event:
    {'msg': {'password': '12345678', 'ssid': 'QuecPython', 'rssi': -62, 'channel': 1, 'bssid': 'a4:00:e2:ef:f7:80', 'auth': 4, 'cipher': 4}, 'type': 3300, 'id': 3302}
- Event:
    {'msg': ('10.66.117.73', '255.255.252.0', '10.66.116.1', '0.0.0.0', '0.0.0.0'), 'type': 3300, 'id': 3305}
- Got IP:
    ('10.66.117.73', '255.255.252.0', '10.66.116.1', '211.138.180.2', '114.114.114.114')

你可能感兴趣的:(QuecPython,物联网,WLAN,QuecPython)