让 ESP32 同时扮演 AP+STA 的角色
Posted tidyjiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让 ESP32 同时扮演 AP+STA 的角色相关的知识,希望对你有一定的参考价值。
本工程已托管到 GitHub,具体路径是https://github.com/tidyjiang8/esp32-projects/tree/master/ap_sta
功能说明:让 ESP32 既当做一个 AP,让其它终端设备访问,又当做一个 STA,连接到其它的 AP。
关于 ESP32 更多好玩、有趣、实用的项目,请查看 【ESP32 系列博客 - 目录】
【快速开始】
【假设】
- 你已经安装好 ESP-IDF 和工具链。
- 你已经有一个 WiFi 热点。
【步骤】
- 使用数据线将开发板连接到你的系统中,让系统能够识别到你的板子(Windows 是
COM\\*
, Linux 是/dev/ttyUSB\\*
)。 - 进入
ap_sta
所在目录。 - 执行命名
make menuconfig
进行配置。
- 对串口进行配置。
- 配置作为 AP 时其它设备访问该 AP 所需要的 SSID 和密码。依次进入配置选项
Demo Configuration --->
、AP Configuration --->
,然后在[AP] SSID
和[AP] Password
中填写 SSID 和密码。 - 配置作为 STA 时需要连接到的 AP 的 SSID 和密码。依次进入配置选项
Demo Configuration --->
、STA Configuration --->
,然后在[STA] SSID
和[STA] Password
中填写 SSID 和密码。
- 执行命令
make
进行编译 - 执行命令
make flash monitor
将编译生成的镜像烧写到 ESP32 开发板上面,并查看串口输出。
【现象】
对于 STA 功能,当板子起来后,正如 让 ESP32 作为 STA 连接的你的 WiFi 热点中的现象一样,板子已经连接到 WiFi 热点,并获取到 IP 地址。
对于 AP 功能,我们在手机中进入 WiFi 设置界面,发现已经能搜索到 ESP32 建立的 AP 了,输入密码后,连接成功。此时我们再看串口的打印消息,它已经打印出了连接到该 AP 的客户端的 MAC 地址。
有兴趣的话,查看下你的手机的 MAC 地址,是不是就是 ESP32 所打印的 MAC 地址呢?
![](https://image.cha138.com/20221126/838d3051e81140f3b50c9752a96487ee.jpg)
【深入理解】
这个项目与前一个项目【让 ESP32 连接到你的 WiFi 热点】及其相似,只要理解了前一个项目,就能轻松地理解这个项目。之所以再将其单独抽取出来,是因为在 ESP32 的学习群里有人在问关于 APSTA 的问题,而在网上又找不到任何 Demo,所以我才稍微研究了下,然后将其放到这里了。
只强调一点,即 STA 和 AP 各有一个接口,它们需要分别进行配置。
以上是关于让 ESP32 同时扮演 AP+STA 的角色的主要内容,如果未能解决你的问题,请参考以下文章
54 ESP32Wifi模块之开启AP+STA共存及IP_NAPT模式