乐鑫主控屏方案wifi蓝牙芯片无线数据传输模块Wi-Fi编程,本文重点描述 Wi-Fi API 的使用原则、如何创建一个 STA 连接场景,以及针对该连接场景的智能化配置。一般来说,要编写应用程序,高效的方式是首先选择一个相似的示例,然后将其中可用部分移植到自己的项目中。如果小伙伴希望编写一个强健的 Wi-Fi 应用程序,则强烈建议在开始前先阅读本文。
乐鑫主控屏方案wifi蓝牙芯片无线数据传输模块ESP-IDF 中的 Wi-Fi组件
1.功能概述
Wi-Fi组件支持配置及监控 ESP32-C3 的 Wi-Fi 网络连接功能,主要包括:
STA 模式,即基站模式或 Wi-Fi 客户端模式,此时 ESP32-C3 连接到AP。
AP模式,即SoftAP 模式或接入点模式,此时 AP 连接到ESP32-C3。
AP-STA 共存模式,即ESP32-C3 既是AP,同时又作为 AP 连接到另外一个 AP。
上述模式均采用各种安全模式,如 WPA、WPA2、WPA3及WEP 等。
扫描 AP,包括主动扫描和被动扫描。
使用混杂模式监控IEEE 802.11 Wi-Fi 数据包。
2.API介绍
乐鑫主控屏方案wifi蓝牙芯片无线数据传输模块Wi-Fi组件的API都定义在 esp_wifi.h 中。
esp_wifi_init()
为 Wi-Fi驱动程序初始化资源,如 Wi-Fi控制结构、Wi-Fi 任务等设置 ESP32-C3 Wi-Fi 工作模式
esp_wifi_deinit()
释放 Wi-Fi驱动程序初始化时的资源并停止 Wi-Fi任务
esp_wifi_set_mode()
设置 ESP32-C3 Wi-Fi 工作模式
esp_wifi_get_mode()
获取 ESP32-C3 Wi-Fi工作模式
esp_wifi_start()
根据当前配置启动Wi-Fi
esp_wifi_stop()
根据当前配置停止Wi-Fi
esp_wifi_connect()
将ESP32-C3 连接到AP
esp_wifi_disconnect()
断开 ESP32-C3 Wi-Fi站点与 AP 的连接
esp_wifi_scan_start()
扫描所有可用的 AP
esp_wifi_scan_stop()
停止正在进行中的扫描
esp_wifi_scan_get_ap_num()
获取 ESP32-C3 扫描的AP 数量
esp_wifi_scan_get_ap_records()
获取ESP32-C3 扫描的AP 信息
esp_wifi_set_config()
设置 ESP32-C3 STA 或AP 的配置
esp_wifi_get_config()
获取 ESP32-C3 STA或AP 的配置
3.编程模型
乐鑫主控屏方案wifi蓝牙芯片无线数据传输模块Wi-Fi驱动程序可以看成一个无法感知上层代码[如网络协议栈(TCP Stack)、应用程序任务(Application Task)、事件任务 (Event Task) 等)的黑匣子。通常,应用程序任务(代码)负责调用 Wi-Fi驱动程序API来初始化 Wi-Fi网络并在必要时处理 Wi-Fi事件;然后由 Wi-Fi驱动程序接收并处理 API 数据,并在应用程序中插入事件。
Wi-Fi事件处理是在 esp_event 组件的基础上进行的。乐鑫主控屏方案wifi蓝牙芯片无线数据传输模块Wi-Fi 驱动程序将事件发送到默认事件循环,应用程序便可以使用 esp_event_handler_register()中的回调函数处理这些事件。除此之外,esp netif 组件也负责处理 Wi-Fi事件,并产生一系列默认行为。例如,当STA 连接至一个AP 时,esp_netif 组件将自动开启 DHCP (Dynamic Host ConfigurationProtocol,动态主机配置协议) 客户端服务等。
牛刀小试:Wi-Fi连接初体验
设定 STA 模式,连接到 AP。
处于 STA 模式下的 ESP32-C3,可以作为 STA 连接到AP。
基于AP组建的 BSS,多个 STA 加入所组成的无线网络,AP 是整个网络的中心,网络中所有的通信都通过 AP 转发来完成。在此模式下设备可以通过AP分配的IP 地址(Internet Protocol Address,网际协议地址) 直接访问外网和内网。