往期
《ESP8266通信指南》1-ESP8266 简介-CSDN博客
《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客
1. 小节目标
介绍 AT 指令集的内容,并为各位读者整理出常用指令。
2. AT 指令集
AT 指令集参考:AT 命令集 — ESP-AT 用户指南 文档
我们可以看到 AT 指令集非常多,我们不可能全部记住,所以我们需要用好用的工具进行 AT 指令管理,在下一节中会提到(ESP8266 调试工具)。
3. AT 指令集分类和注意的点
各位读者请注意,以下内容很重要,需要详细阅读,否则在使用 AT 指令控制 8266 模块的时候,会遇到各式各样的问题,来源:AT 命令集 — ESP-AT 用户指南 文档
AT 指令集可以分为以下几类:
类型 | 命令格式 | 说明 |
测试命令 | AT+<命令名称>=? | 查询设置命令的内部参数及其取值范围 |
查询命令 | AT+<命令名称>? | 返回当前参数值 |
设置命令 | AT+<命令名称>=<…> | 设置用户自定义的参数值,并运行命令 |
执行命令 | AT+<命令名称> | 运行无用户自定义参数的命令 |
- 不是每条 AT 命令都具备上述四种类型的命令。
- 命令里输入参数,当前只支持字符串参数和整形数字参数。
- 尖括号 < > 内的参数不可以省略。
- 方括号 [ ] 内的参数可以省略,省略时使用默认值。例如,运行 AT+CWJAP 命令时省略某些参数:
AT+CWJAP="ssid","password"
AT+CWJAP="ssid","password","11:22:33:44:55:66"
- 当省略的参数后仍有参数要填写时,必须使用 ,,以示分隔,如:
AT+CWJAP="ssid","password",,1
- 使用双引号表示字符串参数,如:
AT+CWSAP="ESP756290","21030826",1,4
- 特殊字符需作转义处理,如 ,、"、\ 等。
-
- \\:转义反斜杠。
- \,:转义逗号,分隔参数的逗号无需转义。
- \":转义双引号,表示字符串参数的双引号无需转义。
- \<any>:转义 <any> 字符,即只使用 <any> 字符,不使用反斜杠。
- 只有 AT 命令 中的特殊字符需要转义,其它地方无需转义。例如,AT 命令口打印 > 等待输入数据时,该数据不需要转义。
AT+CWJAP="comma\,backslash\\ssid","1234567890"
AT+MQTTPUB=0,"topic","\"{\"sensor\":012}\"",1,0
- AT 命令的默认波特率为 115200。
- 每条 AT 命令的长度不应超过 256 字节。
- AT 命令以新行 (CR-LF) 结束,所以串口工具应设置为“新行模式”。
4. 常用指令
4.1. AT+RST:重启模块
在控制 ESP8266 模块的单片机上,在初始化模块之前会用到。
命令:
AT+RST
响应:
OK
4.2. ATE:开启或关闭 AT 回显功能
AT 回显指的是,我们发送的 AT 指令是否要显示出来,如果关闭就只会显示 8266 返回的数据,如果开启就会显示我们发送的 AT 指令,举个例子:
// 开启AT回显
AT
OK
// 关闭AT回显,就只会回复OK
OK
命令:
ATE0
或
响应:
ATE1
OK
参数:
- ATE0:关闭回显
- ATE1:开启回显
4.3. AT+RESTORE:恢复出厂设置
命令:
AT+RESTORE
响应:
OK
说明:
- 该命令将擦除所有保存到 flash 的参数,并恢复为默认参数。
- 运行该命令会重启设备。
4.4. AT+CWMODE:查询/设置 Wi-Fi 模式 (Station/SoftAP/Station+SoftAP)
WIFI 工作有三种模式,STA、AP、STA+AP:
- STA:该模式下可以连接到 WIFI 上
- AP:作为第一个站点给别人连接,相当于手机开热点
- STA+AP:两种模式共存
命令:
AT+CWMODE?
响应:
+CWMODE:<mode>
OK
<mode>:模式
- 0: 无 Wi-Fi 模式,并且关闭 Wi-Fi RF
- 1: Station 模式
- 2: SoftAP 模式
- 3: SoftAP+Station 模式
例子:
2 表示 SoftAP 模式,手机可以连接到 8266 上
4.5. AT+CWLAP:扫描当前可用的 AP
功能:
列出当前可用的 AP
命令:
AT+CWLAP
响应:
+CWLAP:<ecn>,<ssid>,<rssi>,<mac>,<channel>,<freq_offset>,<freqcal_val>,<pairwise_cipher>,<group_cipher>,<bgn>,<wps>
OK
例子:
// 寻找指定 SSID 的 AP
AT+CWLAP="Wi-Fi"
- 扫描到可用 AP ,如上图所示
4.6. AT+CWJAP:连接 AP
扫描到 AP 后,就可以通过该 AT 指令连接 AP。
功能:
- 设置 ESP Station 需连接的 AP
命令:
AT+CWJAP=[<ssid>],[<pwd>][,<bssid>][,<pci_en>][,<reconn_interval>][,<listen_interval>][,<scan_mode>][,<jap_timeout>][,<pmf>]
响应:
WIFI CONNECTED
WIFI GOT IP
OK
[WIFI GOT IPv6 LL]
[WIFI GOT IPv6 GL]
或
+CWJAP:<error code>
ERROR
其他说明:
// 如果目标 AP 的 SSID 是 "abc",密码是 "0123456789",则命令是:
AT+CWJAP="abc","0123456789"
// 如果目标 AP 的 SSID 是 "ab\,c",密码是 "0123456789"\",则命令是:
AT+CWJAP="ab\\\,c","0123456789\"\\"
// 如果多个 AP 有相同的 SSID "abc",可通过 BSSID 找到目标 AP:
AT+CWJAP="abc","0123456789","ca:d7:19:d8:a6:44"
// 如果 ESP-AT 要求通过 PMF 连接 AP,则命令是:
AT+CWJAP="abc","0123456789",,,,,,,3
4.6.1. 例子-连接至上次
功能:
将 ESP station 连接至上次 Wi-Fi 配置中的 AP
命令:
AT+CWJAP
响应:
或
WIFI CONNECTED
WIFI GOT IP
OK
[WIFI GOT IPv6 LL]
[WIFI GOT IPv6 GL]
+CWJAP:<error code>
ERROR
4.6.2. 例子-连接到扫描到的 AP 上
5. 结语
介绍 AT 指令,同时列举了在使用 8266 时常用的 AT 指令,并举了一个配置模块模式,扫描 AP 、通过 AT 连接 WIFI 的功能。
柴头物联网出品