一、AT指令的起源与发展
AT指令(Attention Command)最早由Hayes公司于1981年设计,用于控制调制解调器拨号上网。随着物联网技术的发展,这种基于文本的协议逐渐成为嵌入式设备(如Wi-Fi模块、蓝牙芯片、4G模组)与主控设备通信的“通用语言”。其核心功能包括:
• 设备控制:唤醒/休眠模式切换
• 网络配置:设置Wi-Fi密码、IP地址、短信中心号
• 数据传输:TCP/IP通信、短信收发
• 信息查询:获取IMEI、信号强度、SIM卡状态
截至2025年,AT指令已形成标准化体系(如3GPP TS 27.007),并衍生出针对不同协议的扩展指令集(如GSM、LTE-M)。
二、AT指令语法结构
1.格式规范
每条指令以AT
开头,以\r\n
(回车换行)结尾,遵循严格的格式规范:
AT+<命令前缀>[=<参数1>,<参数2>...]\r\n
2.四大命令类型:
- 测试命令:
AT+<x>=?
示例:AT+CWMODE=?
→ 返回支持的Wi-Fi模式列表 - 查询命令:
AT+<x>?
示例:AT+CWMODE?
→ 返回当前工作模式(如Station/AP/双模) - 设置命令:
AT+<x>=<参数>
示例:AT+CWJAP="SSID","password"
→ 连接指定Wi-Fi - 执行命令:
AT+<x>
示例:AT+CMGD=1
→ 删除第1条短信
3.响应机制:
• 成功:OK
• 失败:ERROR
• 主动上报:+<事件代码>
(如新短信通知+CMTI
)
三、核心应用场景与指令集
1. 基础设备控制
指令 | 功能 | 示例响应 |
---|---|---|
AT+CGSN | 获取设备IMEI | 865234056789012 |
AT+CSQ | 查询信号强度 | +CSQ: 28,99 |
AT+CPIN? | 检测SIM卡状态 | +CPIN: READY |
2. 短信操作(PDU模式)
AT+CMGF=0 // 切换PDU模式
AT+CMGS=22 // 发送短信(22字节)
> 0011000C916851... // PDU编码内容
说明:PDU模式支持Unicode,需通过十六进制编码处理中文
3. 网络连接(以ESP8266为例)
AT+CWMODE=3 // 双模式(STA+AP)
AT+CWLAP // 扫描Wi-Fi网络
AT+CWJAP="SSID","PWD" // 连接路由器
AT+CIPSTART="TCP","api.com",80 // 建立TCP连接
AT+CIPSEND=14 // 发送14字节数据
> Hello, IoT! // 数据内容
四、实战案例:ESP8266实现HTTP请求
1.初始化配置
AT+RST // 重启模块
AT+CIPSNTPCFG=1,8 // 配置NTP服务器(北京时间)
2.HTTP GET请求
AT+CIPSTART="TCP","api.weather.com",80
AT+CIPSEND=48
> GET /v1/forecast?city=beijing HTTP/1.1\r\nHost: api.weather.com\r\n\r\n
3.数据处理
接收响应后解析JSON,可使用AT+CIPRECVDATA
读取缓存数据
五、开发注意事项
1.兼容性问题
不同厂商可能扩展私有指令(如乐鑫的AT+SYSRAM?
用于查询内存),需查阅官方文档。
2.超时机制
建议设置3-5秒超时,避免因网络延迟导致程序阻塞。
3.错误处理
对ERROR
响应需分级处理(如重试连接、重置模块)。
4.数据编码
使用AT+CSCS="UCS2"
处理多语言字符时,需进行Unicode转换。