【安信可NB-IoT开发板EC-01F-Kit】四、串口MQTT联网及信息收发测试
[复制链接]
物联网的应用中,MQTT传输非常普遍,自己以及的作品也大多采用了MQTT进行传输。
首先,打开NB-IOT的AT手册,看到3.5 MQTT命令这一部分
命令不多,没有找到参考的实例,只能凭着以前的经验一条条测试了
试了几遍后,成功实现了MQTT的订阅和发布
在测试MQTT的时候,用了以前经常用的MQTT模拟器paho,下面把paho的过程贴上来
paho连接MQTT的流程比较简单,1、联网;2、订阅;3发布。(4、断开)
配合NB-IOT,实现MQTT信息的订阅和发布
整个MQTT的测试都是直接用串口命令实现的。具体步骤如下:
1、NB-IOT模块联通互联网
主要包括 1)、PS附着,AT命令:AT+CGATT=1
成功后反馈 OK
2)、PDP激活,AT命令:AT+CGACT=1
成功后反馈 OK
2、打开MQTT客户端连接,(感觉应该叫MQTT连接)
AT命令为: AT+ECMTOPEN=0,"39.104.x.x",1885
直接用的IP4连接,不知道IP6下该怎么连接?
成功后反馈 +ECMTOPEN: 0,0
第一个0,应该是tcpconnectID,MQTT套接字标识符。
3、创建客户端连接,(感觉叫客户端登录比较合适)
AT命令为: AT+ECMTCONN=0,"test12345"
其中的 test12345 是客户端ID,ClientID,客户端标识符,最大48个字节
成功后反馈 +ECMTCONN: 0,0,0
第1个0,表示tcpconnectID,MQTT套接字标识符;第2个0,<result>
第3个0,表示<ret_code> 服务器返回的连接结果
4、订阅MQTT主题
AT命令为: AT+ECMTSUB=0,1023,"NBIOT54321",0
第1个0为tcpconnectID,MQTT套接字标识符。
1023为<msgID> 整型,报文的报文标识。 范围是1-65535。
😓,用了这么久的MQTT,这个报文标识的作用,还是不明确。感觉是不是跟报文长度有关?哪位E友辛苦普及下哈。
后面的NBIOT54321为订阅的主题,<topic> 字符串类型,客户想要订阅或取消订阅的主题。 最大长度为255个字节。
后面的0为QOS,<qos> 整型,消息QoS,可以为0,1或2
成功后反馈 +ECMTSUB: 0,1023,0,1
其中,result,和value
5、订阅等待接收该主题的信息
成功接收到信息后,
+ECMTRECV: 0,0,"NBIOT54321",test for sub
各个数据的含义都能对应上,只是msgID为0,(是不是msgID为0是该主题的广播信息?)
6、MQTT发布信息
AT命令为:AT+ECMTPUB=0,0,0,0,"NBIOT123","TEST For NB-IOT MQTT"
消息发布成功后反馈:
+ECMTPUB: 0,0,0
最后1个0是result
7、关闭MQTT连接
AT命令:AT+ECMTCLOSE=0
成功后反馈 +ECMTCLOSE: 0,0
MQTT的测试还算顺利,通过模拟器的配合,整个发布订阅的流程比较清晰。
|