WiFi 实验
从这一个实验开始,逐渐开始讲解 ESP32 的 wifi 无线通信相关知识。
请参考 3.1.2 节,我们的演示的工作目录位于“G:\ESP32”,在这个目录下创建有文件夹“examples”, 接着把开发板带的 wifi 实验教程“.\配套的例程\2wifi 部分.rar”解压到文件夹“examples”下,如图:

我们新增加了 10 个工程,第 4 章的实验围绕着这些工程讲解。
4.1. WiFi-AP 模式创建 wifi 热点
本实验通过 ESP32 模块创建一个 wifi 热点,手机或者电脑可以连接到这个热点上。 这个实验的代码为工程“4_1_wifi_AP”目录。
4.1.1. 实验内容
(1) 学习 AP 创建方法
(2) 学习 AP 网关的 IP 设置方法
(3) 掌握 wifi 状态机机制
4.1.2. AP 简介
AP 是 (Wireless) AccessPoint 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样, 设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)。
ESP32 创建的 AP 热点,最多可以被 4 个 STA 设备连接,我们的手机和笔记本电脑均可连接到创建的 AP 热点。
4.1.3. ESP32 wifi 编程相关
(1) wifi 设计流程图 流程图来源于网络:https://blog.youkuaiyun.com/fengfeng0328/article/details/82824499 启动 wifi 流程图:

Wifi 状态机流程图:

(2) 相关函数介绍
初始化 TCP/IP 协议栈
使用 wifi、有线、网络编程前必须先调用这个函数进行初始化。
函数定义:
void tcpip_adapter_init(void); 参数说明:无
返回值:无
初始化事件回调函数
函数定义:
esp_err_t esp_event_loop_init(system_event_cb_t cb, void *ctx); 参数说明:
system_event_cb_t cb:回调函数,通过回调函数,可以知道当前 wifi 处于什么状态 void *ctx:保留,无实际用途
返回值:ESP_OK(成功)。
回调函数状态机解析
这个回调函数状态机,包括 AP、STA 和有线网络,程序会根据他们的实时状态,在回调函数中给 出状态返回。
函数定义:
esp_err_t event_handler(void *ctx, system_event_t *event); 参数说明:
sy

本文介绍了如何使用ESP32创建Wi-Fi热点,并详细解析了Wi-Fi状态机和相关编程函数。实验中通过ESP32创建AP热点,连接设备并展示了状态机在不同事件下的响应。主要涉及tcpip_adapter_init、esp_event_loop_init、esp_wifi_init等初始化函数,以及设置IP、启动Wi-Fi和处理回调事件的流程。
最低0.47元/天 解锁文章
984

被折叠的 条评论
为什么被折叠?



