在移动通信和物联网领域,AT指令作为设备与模块间通信的核心语言,被广泛应用于短信、通话、网络等功能的配置与管理,通过AT指令设置短信提醒功能,是许多开发者和用户实现设备状态监控、自动化通知的关键操作,本文将详细介绍AT指令设置短信提醒的原理、步骤、常见场景及注意事项,帮助读者快速掌握这一实用技能。

AT指令与短信提醒的基础概念
AT指令(Attention Command)是一种调制解调器控制语言,以“AT”开头,用于与GSM/GPRS、NB-IoT等通信模块交互,短信提醒功能则是指设备在特定条件下(如收到新短信、网络状态变化等)主动通过短信、指示灯或串口输出等方式通知用户,实现这一功能的核心在于配置模块的“新短信到达提示”及“短信存储管理”相关参数。
设置短信提醒的完整步骤
初始化模块与连接测试
在配置短信提醒前,需确保通信模块正常工作,通过串口工具连接模块,发送AT指令,若返回OK,则表示模块已就绪,随后可测试网络连接状态,发送AT+CREG?,查询网络注册结果(返回+CREG: 0,1表示已注册到网络)。
设置新短信到达提示方式
模块支持两种新短信提示方式:通过串口输出(URC,Unsolicited Result Code)或发送特定指令,默认情况下,模块可能关闭此功能,需手动开启。

- 开启URC提示:发送
AT+CNMI=2,1,参数2表示新短信存储到SIM卡,1表示通过串口输出新短信内容(如+CMTI: "SM",5表示SIM卡内存中第5条为新短信)。 - 其他模式选择:若需直接在串口显示短信内容,可设置为
AT+CNMI=2,2;若需结合短信到达与指示灯,需结合模块硬件寄存器配置。
配置短信存储位置与优先级
为避免提醒遗漏,需明确短信的存储位置,通过AT+CPMS?查询当前存储器状态(如+CPMS: "SM","SM","SM"表示SIM卡短信存储),若需切换至模块内部存储,可发送AT+CPMS="ME","ME","ME"。
设置短信提醒触发条件(可选)
部分模块支持基于短信内容或发送号码的触发提醒,通过AT+CMGF=1设置为文本模式后,可结合AT+IFC等指令筛选特定号码的短信,或通过脚本解析短信内容后触发告警。
测试短信提醒功能
配置完成后,可用另一部手机向模块所在号码发送测试短信,观察串口工具是否输出+CMTI指令,或模块是否通过指示灯闪烁提示(需提前配置GPIO引脚功能)。

不同场景下的配置示例
场景1:设备故障短信告警
- 需求:传感器设备检测到异常时,通过短信通知管理员。
- 配置步骤:
- 设置模块为文本模式:
AT+CMGF=1。 - 开启新短信提示:
AT+CNMI=2,1。 - 编写发送短信指令(示例):
AT+CMGS="13800138000""ALARM: Temperature exceeded 80°C",以Ctrl+Z发送。
- 设置模块为文本模式:
场景2:多用户分级提醒
- 需求:根据短信优先级,分别通知不同联系人。
- 配置步骤:
- 通过
AT+CSMP设置短信参数(如设置优先级17表示高优先级)。 - 结合
AT+IFC指令筛选特定号码,或通过MCU解析短信内容后调用不同发送逻辑。
- 通过
常见问题与解决方法
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 新短信到达无提示 | CNMI参数未正确设置 |
检查并重新发送AT+CNMI=2,1 |
| 短信存储提示延迟 | 存储器空间不足或权限未开放 | 发送AT+CPMS清理存储,或切换存储器 |
高级功能扩展
- 结合MQTT实现远程提醒:若模块支持网络功能,可将短信内容解析后通过MQTT协议推送至云平台,实现多端同步提醒。
- 自定义提示音与振动:部分模块支持
AT+CLCC等指令配置提示音,需查阅具体模块手册。
安全与优化建议
- 指令加密:为防止未授权指令发送,可通过
AT+CLCK指令锁定SIM卡或模块功能。 - 功耗控制:在低功耗场景下,可设置
AT+CSCLK=2启用睡眠模式,仅在短信到达时唤醒。
相关问答FAQs
Q1: 为什么设置了AT+CNMI=2,1后,新短信仍无提示?
A: 可能原因包括:① 模块未正确注册到网络(需检查AT+CREG?返回值);② 串口工具未开启“显示新行”功能,导致+CMTI指令被截断;③ 模块固件版本较低,不支持该指令参数,建议尝试重启模块或升级固件后重新配置。
Q2: 如何区分普通短信与提醒短信?
A: 可通过两种方式实现:① 在发送提醒短信时,在内容前添加特定标识(如[URGENT]),接收端通过脚本过滤;② 利用AT+CMGR读取短信后,解析+CMGR参数中的状态位(如+CMGR: "REC READ","13800138000",,"23/05/01,12:30:00+32"),结合发送号码或时间戳判断是否为提醒类短信。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/71142.html