移远BC20连接MQTT服务器小记

您所在的位置:网站首页 mqtt的端口号 移远BC20连接MQTT服务器小记

移远BC20连接MQTT服务器小记

2023-07-26 05:10| 来源: 网络整理| 查看: 265

所有AT指令:

 AT+QMTCFG    MQTT 参数配置

AT+QMTOPEN:打开 MQTT 客户端网络。

AT+QMTCLOSE:关闭 MQTT 客户端网络

AT+QMTCONN:连接 MQTT 服务器。

AT+QMTDISC:断开 MQTT 服务器。

AT+QMTSUB:订阅主题。

AT+QMTPUB:发布消息。

AT+QMTUNS:退订主题。

连接MQTT服务器顺序:

1、AT+QMTCFG:可选指令,连接发起前配置,如不配置则按默认值连接。

2、AT+QMTOPEN

3、AT+QMTCONN

按照这个步骤,就能将你的BC20连接至MQTT服务器。但是需要注意的一点,在AT+QMTOPEN之后返回打开成功的提示后,必须在短时间内(大概10秒以内吧)发起AT+QMTCONN指令,不然MQTT服务器会断开BC20的连接。这点很重要。

命令详解:

在每条指令的参数中,都包含一个TCP_connectID参数,可选值为0--5,这个参数个人认为是将MQTT分为6条不同配置的通道,应该是可以支持同时连接6条MQTT服务器连接。没有测试,都是臆想。

AT+QMTCFG

分为若干条子指令

1、数据格式设置:AT+QMTCFG="dataformat",[,,]

        send_format和recv_format:可选值0(文本格式)、1(十六进制格式)

2、连接保活时间(心跳)设置:AT+QMTCFG="keepalive",[,]

        keep_alive_time:可选值0--3600,默认值120。MQTT规定,在心跳的1.5倍时长内,没有收到客户端消息,则断开客户端的连接,也就是说,如果设置了100秒的心跳时间,在150秒没有收到客户端的心跳信息,则会断开客户端的连接。此处如果设置为0,将不断开连接。

3、断开后是否保留信息设置:AT+QMTCFG="session",[,]

        clean_session:断开连接后,是否保留客户端订阅的消息,可选值0(保留)、1(不保留)。

4、发送超时设置:AT+QMTCFG="timeout",[,,,]

        pkt_timeout:数据包传送超时时间。取值范围1--60。默认值:10。

        retry_times:超时重发次数。取值范围0-10.默认值:3。

        timeout_notice:是否上报超时。取值0、1,这里的上报其实就是AT指令的回显。

                0:不上报。

                1:上报。

5、遗嘱消息设置:AT+QMTCFG="will",[,,,,,]

        will_fg:取值0、1

                0:不设置遗嘱消息。

                1:设置遗嘱消息。

        will_qos:QoS级别,取值0--2。

                0:最多发一次。

                1:至少发一次。

                2:只发一次。

        will_retain:遗嘱发送设置。取值0、1

                0:订阅者收到遗嘱消息后,该消息不保留。

                1:订阅者收到遗嘱消息后,该消息会保留。

        will_topic:消息主题。最大长度255。

        will_msg:发送到主题的消息内容。最大255。

6、MATT协议版本设置:AT+QMTCFG="version",[,]

        version:可选值:3、4

                3:MQTT v3.1。

                4:MQTT v3.1.1。

7、阿里云连接设置:AT+QMTCFG="aliauth",[,,,]

        product_key:阿里云产品密钥。最大长度64。

        device_name:阿里云设备名称。最大长度64。

        device_secret:阿里云设备凭证。最大长度64。

8、回显数据设置:AT+QMTCFG="echomode",[,]

        echo_mode:是否想串口回显输入的数据,取值范围0、1。

                0:不回显。

                1:回显。

9、是否启用SSL设置:AT+QMTCFG="ssl",[,[,,]]

        SSL_enable:是否启用SSL。

                0、不使用SSL。

                1、使用SSL。

        SSL_contextID:SSL上下文标识符,取值1--3。

        SSL_connectID:SSL Socket标识符,取值0-5。

AT+QMTOPEN

AT+QMTOPEN=,,、

host_name:MQTT服务器地址,可以是IP或域名,最大长度150。

port:MQTT服务器端口号,取值范围:1~65535。

执行结果:

参数1:TCP_connectID

参数2:

        -1:打开网络失败         0 :打开网络成功

AT+QMTCLOSE

AT+QMTCLOSE=

执行结果:

参数1:TCP_connectID

参数2:

        -1:关闭网络失败         0:关闭网络成功

AT+QMTCONN

AT+QMTCONN=,[,[,]]

clientID:客户端ID。最大长度128。

username:客户端名称。最大长度256。

password:客户端密码。最大长度256。

执行结果:

参数1:TCP_connectID

参数2:

0     数据包发送成功且从服务器接收到 ACK 1     数据包重传 2     数据包发送失败

参数3:

0     接受连接 1     拒绝连接:不支持的协议版本 2     拒绝连接:拒绝标识符 3     拒绝连接:服务器不可用 4     拒绝连接:用户名或密码错误 5     拒绝连接:未授权

连接结果

 AT+QMTDISC

AT+QMTDISC=

 执行结果:

参数1:TCP_connectID

参数2:

-1    断开连接失败 0     断开连接成功

AT+QMTSUB

AT+QMTSUB=,,,[,,…]

msgID:消息ID,取值范围1--65535。这个参数个人感觉随便取,不象OneNet平台需要填写服务器返回的值。

topic1:订阅的主题,最大长度255。

qos1:     0     最多发送一次                 1     至少发送一次                 2     只发送一次

topic2....和qos2....成对出现,表示可以同时订阅N个主题。

 执行结果:

参数1:TCP_connectID

参数2:msgID

参数3:0     数据包发送成功且从服务器接收到 ACK              1     数据包重传              2     数据包发送失败

参数4:   若=0,则为已确认 QoS 等级的矢量;参数取值 128 表示服务器拒绝订阅;                 若=1,则表示数据包重传次数;                 若=2,则不显示。

AT+QMTUNS--主题退订

AT+QMTUNS=,,[,…]

msgID:消息ID,取值范围1--65535。

topic1:订阅的主题,最大长度255。

topic2....:表示可以同时退订N个主题。

执行结果:

参数1:TCP_connectID

参数2:msgID

参数3:0     数据包发送成功且从服务器接收到 ACK              1     数据包重传

 AT+QMTPUB--发布消息

AT+QMTPUB=,,,,,

msgID:消息ID,取值范围1--65535。

qos:0     最多发送一次          1     最少发送一次          2     只发送一次

retain:0     消息发送到当前订阅者后,服务器不保存消息。             1     消息发送到当前订阅者后,服务器保存消息。

topic:订阅的主题,最大长度255。

msg:消息内容。

 执行结果:

参数1:TCP_connectID

参数2:msgID

参数3:0     数据包发送成功且从服务器接收 ACK(当=0 时,发布的消息无需 ACK)              1     数据包重传              2     数据包发送失败

内容摘抄自移远BC20的AT指令手册以及自己的理解。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3