背景
最近在搞毕设,用到NB-IOT模块。为了成功将模块通过串口连接OneNet,看了很多帖子和B站视频,但是一直卡在数据发布,刚刚得到解决,遂发一下心得,给各位一些参考。
硬件
某宝的某墨某子,移某远BC20模块开发板全网通NB-IOT,带GPS(兼容BC26)。
问题
如下图:
可以看到订阅失败,发布数据失败
导致OneNet直接离线
原因
前期被严重误导,加之其他帖子图片,我一直认为订阅返回:0,1,0,128,是正确的,而且此时OneNet不掉线,所以一直在看发布数据的命令。有趣的是,在这种情况下,我先解决了发布数据命令的问题,然后发现订阅命令存在着同样的错误。修改后,跑通。
错误
$和$,不相同!!!!!!正确的是$,下图分别是在WPS和代码中的对比,后者正确。
$和$
错误命令:
订阅:
AT+QMTSUB=0,1,"$sys/用户ID/wrong_reset/dp/post/json/accepted",0
发布数据:
AT+QMTPUB=0,0,0,0,"$sys/用户ID/test/dp/post/json",{"id":123,"dp":{"temp":[{"v":100}],"humi":[{"v":325}]}}
正确命令:
订阅:
AT+QMTSUB=0,1,"$sys/用户ID/wrong_reset/dp/post/json/accepted",0
发布数据:
AT+QMTPUB=0,0,0,0,"$sys/用户ID/test/dp/post/json",{"id":123,"dp":{"temp":[{"v":100}],"humi":[{"v":325}]}}
正确结果
可以看到订阅成功,发布数据成功
OneNet数据成功接收
其他注意事项
下面只写一些我过程的疑惑,对于用户名,密码之类,B站视频较多,自行了解,这里不过多赘述
1、MQTTX连接的名称和Client ID,我这里默认一样,一致与否有无差别暂不清楚
2、MQTTX连接的服务器地址不要默认broker.emqx.io,要改成mqtts.heclouds.com
3、遗嘱消息,这里不管
4、Clean Session不勾选连接不了
最终配置如下:
如有错漏之处,望批评指正