4. WiFi AP模式与SoftAP实战:AP模式原理、ESP32创建热点、手机连接开发板

各位同学,咱们今天聊点实在的。WiFi 这东西,大家天天用,但真要自己动手搭一个热点,很多人就懵了。我刚开始做物联网项目时,也踩过不少坑——明明代码写对了,手机就是搜不到开发板的热点。后来才发现,是信道和密码设置的问题。

这一章,咱们就把 AP 模式彻底搞明白。从原理到实战,一步步来。

4.1 AP模式到底是什么?

AP,全称 Access Point,也就是接入点。说白了,它就是 WiFi 网络里的「老大」。你家里的路由器,就是一个典型的 AP。它负责广播信号,让手机、电脑这些设备连上来。

在 ESP32 上,我们有两种方式玩 AP 模式:

  • 普通 AP 模式:ESP32 作为独立热点,最多能带 4-5 个设备。适合小范围组网。
  • SoftAP 模式:软件模拟的 AP,硬件上还是那个 ESP32,但功能上跟真 AP 差不多。我习惯叫它「软热点」。

核心区别:普通 AP 依赖专用硬件芯片,SoftAP 靠软件模拟。ESP32 的 SoftAP 性能足够应付大多数 IoT 场景,但别指望它能带几十个设备。

4.2 ESP32 创建热点的完整流程

嗯,这里我直接上代码。咱们用 Arduino 框架,因为上手最快。我自己做原型验证时,也优先用这个。

#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  delay(100);
  
  // 设置 AP 模式
  WiFi.mode(WIFI_AP);
  
  // 配置热点名称和密码
  const char* ssid = "ESP32_Hotspot";
  const char* password = "12345678";
  
  // 启动热点
  WiFi.softAP(ssid, password);
  
  Serial.println("热点已启动");
  Serial.print("IP 地址: ");
  Serial.println(WiFi.softAPIP());
}

void loop() {
  // 啥也不干,就等着设备连上来
  delay(1000);
}

这段代码,我估计你一眼就能看懂。但有几个细节,我得提醒你:

  • 密码至少 8 位,否则 ESP32 会拒绝启动热点。我曾经因为这个排查了半天,最后发现是密码太短。
  • SSID 不要用中文,虽然理论上支持,但很多手机连不上。我踩过这个坑。
  • IP 地址默认是 192.168.4.1,这是 ESP32 的固定套路。你可以在代码里改,但没必要。

4.3 手机连接开发板:实战步骤

代码烧录进去后,怎么验证?我一般这么做:

  1. 打开手机 WiFi 列表,找到名为 ESP32_Hotspot 的热点。
  2. 输入密码 12345678,连接。
  3. 连接成功后,打开浏览器,输入 192.168.4.1。
  4. 如果看到 ESP32 的响应页面,说明成功了。

小技巧:如果手机连不上,先检查 ESP32 的串口输出。我习惯在代码里多打印一些调试信息,比如当前连接的设备数量。这样能快速定位问题。

4.4 进阶:配置静态 IP 和 DNS

有些场景下,你需要固定 ESP32 的 IP 地址。比如,你要用它做 Web 服务器,手机每次都要通过这个 IP 访问。这时候,静态 IP 就派上用场了。

// 设置静态 IP
IPAddress local_IP(192, 168, 4, 100);
IPAddress gateway(192, 168, 4, 1);
IPAddress subnet(255, 255, 255, 0);

WiFi.softAPConfig(local_IP, gateway, subnet);
WiFi.softAP(ssid, password);

你看,代码就多了三行。但效果很明显——ESP32 的 IP 变成了 192.168.4.100,而不是默认的 192.168.4.1。我一般在多设备组网时用这个,避免 IP 冲突。

4.5 核心知识体系

为了让你更直观地理解,我画了一张图。这张图展示了 AP 模式下,ESP32、手机和网络之间的关系。

WiFi AP模式核心架构图 WiFi AP模式核心架构 ESP32 (SoftAP) IP: 192.168.4.1 手机 A IP: 192.168.4.2 手机 B IP: 192.168.4.3 手机 C IP: 192.168.4.4 关键说明 • ESP32 作为 SoftAP,广播 SSID,等待设备连接 • 手机通过 DHCP 自动获取 IP(192.168.4.x 网段) • 所有设备通过 ESP32 进行数据交换

4.6 常见问题与避坑指南

问题 原因 解决方案
手机搜不到热点 信道不匹配或密码错误 检查代码中的 SSID 和密码,确保信道在 1-11 之间
连接后无法上网 ESP32 未开启 DHCP 或 IP 冲突 重启 ESP32,或手动设置静态 IP
热点频繁掉线 供电不足或干扰严重 使用 5V/2A 电源,远离金属物体

注意:ESP32 的 SoftAP 模式不支持 5GHz 频段,只能工作在 2.4GHz。如果你周围 2.4GHz 干扰严重,建议手动指定一个空闲信道。我一般用信道 6 或 11,效果不错。

4.7 小结

这一章,咱们把 AP 模式的原理和实战都过了一遍。从代码到调试,从静态 IP 到避坑指南,你应该能独立搭建一个 ESP32 热点了。记住,实践出真知。别光看,拿出你的开发板,烧录代码试试。遇到问题,先看串口输出,再查表格里的解决方案。