You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SIM900A与Arduino Uno通过SMS发送设备IMEI至手机?

解决方案

你不能在AT+CMGS的文本输入阶段执行AT指令,因为此时设备处于短信内容编辑状态,所有输入都会被当作短信正文。正确的流程应该是先获取IMEI,再将其作为短信内容发送,具体步骤如下:

步骤1:获取IMEI号码

先执行AT+GSN指令,设备会返回IMEI值,示例返回如下:

AT+GSN
123456789012345
OK

把返回的IMEI号码记录下来(如果是自动脚本,可以直接捕获这个返回值)。

步骤2:切换到文本模式并发送短信

  1. 执行AT+CMGF=1切换到文本模式,确认设备返回OK。
  2. 执行AT+CMGS="+91xxxxxxxxxx",此时设备会输出>提示符,等待输入短信内容。
  3. 直接输入刚才获取到的IMEI号码,然后按下Ctrl+Z(ASCII码0x1A)结束输入并触发发送。

替代方案:脚本自动化(适合批量/自动场景)

如果是通过脚本控制GSM设备,可以把获取IMEI和发送短信的流程整合,示例伪代码如下:

# 从串口获取IMEI
imei=$(echo -e "AT+GSN\r" | socat /dev/ttyUSB0,115200,raw,echo=0 - | grep -v OK)
# 切换文本模式
echo -e "AT+CMGF=1\r" > /dev/ttyUSB0
sleep 0.1
# 触发短信发送流程
echo -e "AT+CMGS=\"+91xxxxxxxxxx\"\r" > /dev/ttyUSB0
sleep 0.1
# 输入IMEI并发送
echo -e "$imei\x1A" > /dev/ttyUSB0

注意事项

  • 不要在AT+CMGS的>提示符后输入任何AT指令,此时设备不会解析执行命令,只会把输入内容当作短信正文。
  • 部分设备支持AT+CMGS的参数化发送(直接在指令中携带内容),但这种方式兼容性不如分步操作稳定。

内容的提问来源于stack exchange,提问作者clye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:55:19