移远BC20连接MQTT服务器小记 | 您所在的位置:网站首页 › mqtt的端口号 › 移远BC20连接MQTT服务器小记 |
所有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+QMTOPENAT+QMTOPEN=,,、 host_name:MQTT服务器地址,可以是IP或域名,最大长度150。 port:MQTT服务器端口号,取值范围:1~65535。 执行结果: 参数1:TCP_connectID 参数2: -1:打开网络失败 0 :打开网络成功 AT+QMTCLOSEAT+QMTCLOSE= 执行结果: 参数1:TCP_connectID 参数2: -1:关闭网络失败 0:关闭网络成功 AT+QMTCONNAT+QMTCONN=,[,[,]] clientID:客户端ID。最大长度128。 username:客户端名称。最大长度256。 password:客户端密码。最大长度256。 执行结果: 参数1:TCP_connectID 参数2: 0 数据包发送成功且从服务器接收到 ACK 1 数据包重传 2 数据包发送失败 参数3: 0 接受连接 1 拒绝连接:不支持的协议版本 2 拒绝连接:拒绝标识符 3 拒绝连接:服务器不可用 4 拒绝连接:用户名或密码错误 5 拒绝连接:未授权 连接结果 AT+QMTDISCAT+QMTDISC= 执行结果: 参数1:TCP_connectID 参数2: -1 断开连接失败 0 断开连接成功 AT+QMTSUBAT+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 实验室设备网 版权所有 |