移远官网

Stm32F1控制BC28上传数据至阿里云无显示

原先用串口直接调试BC28模块,根据官方提供的文档可以正常在阿里云将设备上线并在对应参数上传数据;
现尝试用mcu去控制BC28模块进行操作时,沿用串口的一系列AT指令,发现设备可以正常在阿里云上线,指令回复也没有任何异常,但在阿里云上对应参数没有更新数据。很疑惑是在哪里出现了问题导致数据无■■常上传,麻烦社区里面的大佬给予帮助,谢谢!

串口AT流程如下:

[Tx ->][10:59:05:272][Asc]
AT+CSQ
[Rx <-][10:59:05:452][Asc]
+CSQ:19,99
OK
[Tx ->][10:59:08:728][Asc]
AT+CEREG?
[Rx <-][10:59:08:911][Asc]
+CEREG:0,1
OK
[Tx ->][10:59:14:872][Asc]
AT+QMTCFG=“aliauth”,0,“xxxxTZPxxxx”,“BC28”,“xxxxxx9f6cfxxxxxx82e4cea1bxxxxxx”
[Rx <-][10:59:15:111][Asc]
OK
[Tx ->][10:59:16:840][Asc]
AT+QMTOPEN=0,“xxxxTZPxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com”,1883
[Rx <-][10:59:17:070][Asc]
OK
[Rx <-][10:59:18:288][Asc]
+QMTOPEN: 0,0
[Tx ->][10:59:19:488][Asc]
AT+QMTCONN=0,“clientExample”
[Rx <-][10:59:19:684][Asc]
OK
[Rx <-][10:59:21:324][Asc]
+QMTCONN: 0,0,0
[Tx ->][14:57:36:843][Asc]
AT+QMTPUB=0,0,0,0,"/sys/xxxxTZPxxxx/BCxxxx/thing/event/xxxx/xxxx"
[Rx <-][14:57:37:091][Asc]

[Tx ->][14:57:42:323][Asc]
{params:{phase:0}}
[Tx ->][14:57:43:660][Asc]

[Rx <-][14:57:43:864][Asc]
OK
+QMTPUB: 0,0,0

mcu指令流程如下:
send_NB_at(“AT+CSQ\r\n”);

+CSQ:19,99
OK

send_NB_at(“AT+CEREG?\r\n”);

+CEREG:0,1
OK

send_NB_at(“AT+QMTCFG=“aliauth”,0,“xxxxTZPxxxx”,“BC28”,“xxxxxx9f6cfxxxxxx82e4cea1bxxxxxx”\r\n”);

OK

send_NB_at(“AT+QMTOPEN=0,“xxxxTZPxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com”,1883\r\n”);

OK
+QMTOPEN: 0,0

send_NB_at(“AT+QMTCONN=0,“clientExample”\r\n”);

OK
+QMTCONN: 0,0,0

send_NB_at(“AT+QMTPUB=0,0,0,0,”\sys\xxxx9Bxxxxx\BCxxxx\thing\event\xxxx\xxxx"\r\n");

send_NB_at("{params:{phase:120}}");//上传参数phase的值120;(int类型)
send1A();//发送1A结束;

OK
+QMTPUB: 0,0,0

您好,

确认下你这边用的是哪个运营商的卡?
另外检查一下MQTT平台的相关配置或者刷新MQTT平台再试下。

使用的是移动的卡,MQTT的配置没有更改过,使用串口指令是可以正常上传数据的,刷新之后也没有更新数据;由于指令回复没有异常,个人怀疑是上传数据的那条指令格式需要进行调整,但不清楚该怎么进行修改。

您好,

发送数据的指令格式不对的话会报错的,一般不会存在这种情况。
建议检查发数据的指令里数据类型是否正确,以及订阅的主题是否匹配。