跳转到正文

C30D 底板小车:WiFi 模块 AT 配置

本页介绍串口调试助手设置,以及 WiFi 模块从基础通信、联网、串口参数修改到 UDP 自动透传的完整 AT 配置流程。

1. WiFi 模块串口调试助手设置

1.1 确认串口号

将 WiFi 模块插入电脑后,在 Windows 设备管理器中展开“端口(COM 和 LPT)”,记录新出现的 COM 口。Linux 可执行:

bash
ls -l /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

如果没有新设备:

  • 更换 USB 数据线或 USB 接口;
  • 安装 USB-TTL 芯片对应驱动;
  • 检查转换器指示灯和供电;
  • 避免使用只能充电、没有数据线芯的 USB 线。

1.2 初次打开串口

WiFi 模块首次配置或恢复出厂后,串口助手设置为:

text
串口号:实际识别到的 COM 口
波特率:115200
数据位:8
停止位:1
校验位:None/无
流控:None/无
接收显示:ASCII/文本
发送格式:ASCII/文本

打开串口失败时,先关闭其他可能占用该串口的软件。

1.3 CRLF 设置

普通 AT 指令需要以回车换行结束,即:

text
\r\n

在串口助手中启用“发送新行”“回车换行”或 CRLF。不同软件名称可能不同,但发送内容应等效于:

text
AT\r\n

只有发送 +++ 退出透传时必须临时关闭 CRLF。该操作将在 2.8 节单独说明。

2. WiFi 模块完整 AT 配置流程

以下命令除 +++ 外,均以 ASCII 文本发送,并启用 CRLF。每发送一条命令,都应确认返回结果再执行下一条。

2.1 验证基础串口通信

发送:

text
AT

预期返回:

text
OK

AT

(因为这里做示例时用的 WiFi 模块已经把波特率固定成 921600 了,所以发送的时候用的是 921600)


如果没有返回:

  1. 确认 GND 已连接;
  2. 确认模块已供电;
  3. 确认使用 115200 8N1
  4. 确认普通 AT 指令启用了 CRLF;
  5. 如果模块上电后自动进入透传,先按照 2.8 节发送 +++ 退出透传(大概率是这个问题);
  6. 如果模块曾改过波特率,也尝试用 921600 8N1 打开后发送 AT

2.2 设置 WiFi STA 模式并保存

发送:

text
AT+WMODE=1,1

参数含义:

  • 第一个 1:STA 模式,即模块作为终端连接现有路由器或热点;
  • 第二个 1:保存到 Flash,断电后保留。

预期返回:

text
OK

STA

2.3 连接现场 WiFi

发送:

text
AT+WJAP="<WIFI_SSID>","<WIFI_PASSWORD>"

例如在实验室中使用的 WiFi 名称为 KK_Swarm_Server 时(注意这里依然不能用 5G 或 5G_Game),将该名称与对应的 WiFi 密码(22222222)替换占位符后发送。注意 SSID 和密码需要双引号。

在实验室中配置时完整的指令如下:

text
AT+WJAP="KK_Swarm_Server","22222222"

正常情况下可看到:

text
+EVENT:WIFI_CONNECT
OK
+EVENT:WIFI_GOT_IP

connect-wifi

这表示模块已经连接到 AP 并取得局域网 IP。如果只出现 WIFI_CONNECT,没有 WIFI_GOT_IP,应检查路由器 DHCP 服务。

2.4 开启上电自动重连

发送:

text
AT+WAUTOCONN=1

预期返回:

text
OK

设置后,模块重启或重新上电时会自动连接上次配置的 WiFi。

autoconn

2.5 修改串口参数为 921600 8N1

发送:

text
AT+UARTCFG=921600,8,1,0

四个参数依次表示:

text
921600:波特率
8:数据位
1:停止位
0:无校验

收到 OK 后发送:

text
AT+RST

921600

模块重启后执行以下操作:

  1. 在串口助手中关闭当前串口;
  2. 将波特率从 115200 改为 921600
  3. 保持数据位 8、停止位 1、无校验、无流控;
  4. 重新打开串口;
  5. 启用 CRLF;
  6. 再次发送 AT
  7. 确认收到 OK

如果此时显示乱码,最常见原因是串口助手没有真正关闭并重新打开,或者仍在使用旧波特率。

2.6 手动创建 UDP Client

建议先在地面站启动 UDP 抓包,再测试 Socket。地面站执行:

bash
sudo tcpdump -ni any -vv udp port 8888

串口助手中发送:

text
AT+SOCKET=2,<GROUND_IP>,8888

例如地面站 IP 为 192.168.1.43

text
AT+SOCKET=2,192.168.1.43,8888

UDP

参数说明:

参数含义
2UDP Client 模式
192.168.1.43地面站电脑的实际局域网 IP
8888wheelswarm_bridge 监听端口

IP 地址不加双引号,端口使用纯数字。模块可能返回:

text
connect success

对于 UDP,connect success 主要表示模块接受了参数并创建了 UDP Socket,不代表地面站一定已经收到数据。最终仍要通过 tcpdump 或桥接节点验证。

2.7 手动进入临时透传

建立 Socket 后发送:

text
AT+SOCKETTT

SOCKET

模块进入透传后:

  • 串口收到的原始字节会直接发送到 UDP 目标;
  • 从地面站返回的 UDP 内容会直接输出到串口;
  • 普通 AT 字符会被当作业务数据转发,不再作为指令解析。

2.8 使用 +++ 退出透传

需要返回 AT 命令模式时,严格按以下步骤操作:

  1. 停止发送其他串口数据;
  2. 等待约 500 ms;
  3. 在串口助手中关闭“回车换行”“发送新行”或 CRLF;
  4. 确认发送模式为 ASCII/文本,而不是 HEX;
  5. 在发送框中只输入三个连续加号:+++
  6. 发送时不要附加空格、回车或换行;
  7. 发送后等待约 500 ms;
  8. 重新启用 CRLF;
  9. 发送 AT
  10. 收到 OK 即表示已经退出透传。

exit+++

如果 +++ 没有效果,先确认当前确实处于透传模式,并在发送前后保留短暂静默时间。部分串口软件会自动追加换行,必须检查实际发送设置。

2.9 固化上电自动 UDP 透传

退出临时透传并回到 AT 模式后,发送:

text
AT+SOCKETAUTOTT=2,<GROUND_IP>,8888

以前文中提到的地面站 IP 为例:

text
AT+SOCKETAUTOTT=2,192.168.1.43,8888

参数 2 表示 UDP Client。收到 OK 表示配置已经保存。

fixed

2.10 最终重启

发送:

text
AT+RST

模块重启后的预期流程:

  1. 使用 921600 8N1 输出启动信息;
  2. 自动连接已保存的 WiFi;
  3. 取得局域网 IP;
  4. 创建到 <GROUND_IP>:8888 的 UDP Client;
  5. 自动进入串口透传。

进入自动透传后,再发送 AT 不会返回 OK,这是正常现象。如需修改参数,按 2.8 节发送 +++ 退出透传。

2.11 取消自动透传与恢复出厂

取消开机自动透传:

text
AT+SOCKETAUTOTT=0

恢复出厂设置:

text
AT+RESTORE

恢复出厂会清除 WiFi、Socket 和串口配置。模块通常会恢复到 115200 8N1,恢复后应关闭串口,将串口助手改回 115200 再重新打开。

完成 WiFi 模块配置并确认自动联网、自动透传参数后,继续进行 接线、上电与 UDP 检查