让 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 地址呢?
【深入理解】
这个项目与前一个项目【让 ESP32 连接到你的 WiFi 热点】及其相似,只要理解了前一个项目,就能轻松地理解这个项目。之所以再将其单独抽取出来,是因为在 ESP32 的学习群里有人在问关于 APSTA 的问题,而在网上又找不到任何 Demo,所以我才稍微研究了下,然后将其放到这里了。
只强调一点,即 STA 和 AP 各有一个接口,它们需要分别进行配置。
以上是关于让 ESP32 同时扮演 AP+STA 的角色的主要内容,如果未能解决你的问题,请参考以下文章
54 ESP32Wifi模块之开启AP+STA共存及IP_NAPT模式