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

使用SIM7670G调制解调器连接Azure IoT Hub时MQTT启动失败求助

问题描述

使用LilyGo T-SIM7670G S3模组,通过AT命令连接Azure IoT Hub时,已完成PDP激活、系统时间同步、获取IP地址,SSL连接提示成功,但AT+CMQTTSTART执行失败,后续AT+CMQTTCONNECT返回错误码12。

完整AT命令日志如下:

Manufacturer: SIMCOM INCORPORATED
Model: SIM7670G-MNGV
Revision: V1.9.01
OK

ATI Manufacturer: SIMCOM INCORPORATED Model: SIM7670G-MNGV Revision: V1.9.01 IMEI: XXXXXXXXXXXXXXX
IMSI: AT+CIMI
AT+CIMI
XXXXXXXXXXXXXXX
OK

AT+CPIN?
+CPIN: READY
OK

AT+CREG?
+CREG: 0,5
OK

AT+CEREG?
+CEREG: 0,5
OK

AT+CPSI?
+CPSI: LTE,Online,238-01,0xD48,5314856,394,EUTRAN-BAND7,2850,5,5,-11,-109,-97,14
OK

AT+CGDCONT=1,"IP","TM"
OK

AT+CGACT=1,1
OK

AT+CGACT?
+CGACT: 1,1
OK

AT+CTZU=1
OK

AT+CNTP="time.nist.gov",32
OK

AT+CCLK?
+CCLK: "24/08/16,12:04:25+08"
OK

AT+CREG?
+CREG: 0,5
OK

Registration status:
Network registration successful, currently in roaming mode

AT+CGPADDR=1
+CGPADDR: 1,10.59.245.255
OK

AT+CDNSCFG="8.8.8.8","8.8.4.4"
OK

Modem initialized
System time set to: Fri Aug 16 12:04:30 2024

Connecting to Azure

Uploading DigiCert Global Root G2
AT+CCERTDOWN=cacert.pem,1295
>-----BEGIN CERTIFICATE-----
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
...
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
MrY=
-----END CERTIFICATE-----
OK

AT+CTCPKA=1,2,5,1
OK

AT+CCHSTART
ERROR

AT+CCHADDR
+CCHADDR: 10.59.245.255
OK

AT+CSSLCFG="ignorelocaltime",0,1
OK

AT+CSSLCFG="negotiatetime",0,25
OK

AT+CSSLCFG="sslversion",0,4
OK

AT+CSSLCFG="authmode",0,1
OK

AT+CSSLCFG="cacert",0,"cacert.pem"
OK

AT+CCHSET=1,1
ERROR

AT+CCHSSLCFG=0,0
OK

AT+CCHOPEN=0,"IOTHUB.azure-devices.net",8883,2
+CCHOPEN: 0,1
OK

AT+CCHSET?
+CCHSET: 1,1
OK

AT+CMQTTSTART
ERROR

AT+CMQTTACCQ=0,"DEVICE",1
ERROR

AT+CMQTTSSLCFG=0,0
OK

AT+CMQTTCONNECT=0,"ssl://IOTHUB.azure-devices.net:8883",60,1,"IOTHUB.azure-devices.net/DEVICE/?api-version=2018-06-30","SharedAccessSignature sr=IOTHUB.azure-devices.net%2Fdevices%2FDEVICE&sig=rc3c2K%2BHF0l%2Bu16lv0DEi6lXqgSqIqouVgRwkr2tKKU%3D&se=1723810204"
+CMQTTCONNECT: 0,12
ERROR
排查与解决方案

1. 补全MQTT上下文创建步骤

SIMCOM模组的MQTT操作必须遵循创建上下文 → 启动MQTT服务 → 连接的顺序,你跳过了创建上下文的关键步骤直接执行AT+CMQTTSTART,导致命令失败。

先执行创建上下文命令(CLIENT_ID替换为你的Azure设备ID):
AT+CMQTTACCQ=0,"DEVICE",1
确认返回OK后,再执行AT+CMQTTSTART。

2. 修复TCP上下文初始化异常

AT+CCHSTART返回ERROR说明TCP服务初始化失败,后续的AT+CCHOPEN可能是虚假成功。按以下步骤重置:

  • 执行AT+CFUN=1,1重启模组
  • 重新完成PDP激活、时间同步流程
  • 确保AT+CCHSTART返回OK后,再进行SSL和MQTT配置

3. 调整SSL配置参数

  • 将TLS版本改为TLS 1.2(Azure IoT Hub对TLS 1.3支持存在兼容性问题):
    AT+CSSLCFG="sslversion",0,3
  • 关闭时间忽略(SSL握手依赖正确系统时间,你已同步时间无需忽略):
    AT+CSSLCFG="ignorelocaltime",0,0

4. 修正MQTT连接参数

AT+CMQTTCONNECT存在3处错误:

  • 移除ssl://前缀(已通过SSL上下文配置加密,直接填主机端口即可)
  • 用户名去掉?符号,格式改为IOTHUB.azure-devices.net/DEVICE/api-version=2018-06-30
  • 检查SAS令牌的se参数,确保令牌未过期

修正后的连接命令示例:
AT+CMQTTCONNECT=0,"IOTHUB.azure-devices.net:8883",60,1,"IOTHUB.azure-devices.net/DEVICE/api-version=2018-06-30","SharedAccessSignature sr=IOTHUB.azure-devices.net%2Fdevices%2FDEVICE&sig=rc3c2K%2BHF0l%2Bu16lv0DEi6lXqgSqIqouVgRwkr2tKKU%3D&se=1723810204"

5. 验证证书完整性

确认上传的DigiCert Global Root G2证书是完整的PEM格式,日志中出现的...可能是证书被截断,不完整的证书会导致SSL握手失败,间接引发MQTT启动错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:25:07