域格模组使用mqtt功能


前言

MQTT 协议的全称是 Message Queuing Telemetry Transport,翻译为消息队列传输探测,它是 ISO 标准下的一种基于发布 - 订阅模式的消息协议,它是基于 TCP/IP 协议簇的,它是为了改善网络设备硬件的性能和网络的性能来设计的。MQTT 一般多用于 IoT 即物联网上,广泛应用于工业级别的应用场景,比如汽车、制造、石油、天然气等。


一、mqtt

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是 IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器的通信协议。
MQTT 协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
2)对负载内容屏蔽的消息传输。
3)使用 TCP/IP提供网络连接。
4)有三种消息发布服务质量:
至多一次:消息发布完全依赖底层TCP/IP 网络。会发生消息丢失或重复。
至少一次:确保消息到达,但消息重复可能会发生。
只有一次:确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的
结果。
5)小型传输,开销很小,固定长度的头部是 2 字节,协议交换最小化,以降低网络流量。

二、使用步骤

1.阿里平台添加设备

登录到阿里物联网平台,点击“设备管理”,再点击“产品”,然后点击“创建产品”,开始创建产品
在这里插入图片描述

产品创建后,出现如下界面,表示产品已经创建成功 在这里插入图片描述点击“添加设备”,填写DeviceName,添加成功后,会出现设备证书,点击“一键复制”保存好设备
信息。设备证书中的ProductKey,DeviceName和DeviceSecret,以及产品名称,是创建 MQTT
client的必须信息。 在这里插入图片描述
设备创建成功后,可以看到设备没有被激活
在这里插入图片描述

2.使用AT指令连接阿里平台

使用mqtt的at命令的流程如下:
步骤1:设置阿里设备的认证信息设备鉴权设置

指令上报
AT+IMQTTAUTH=<ProduceKey>,<DeviceName>,<DeviceSecret>OK

可在设备表查看
在这里插入图片描述

AT+IMQTTAUTU=a1QThfQoy2A,cxx_mqtt,19b3442cca463e66518d8866595b7859
OK

步骤2:设置 cloud 平台类型为阿里物联网

指令上报
OK
参数数值
<mode>MQTT 连接模式 1 – 阿里云 MQTT 2 – 标准 MQTT
<tls>0 – 不采用 TLS 1 – 采用 TLS
<recvMode>0 – 直接上报 1 – 缓存后主动读取
AT+IMQTTMODE=2,0,0
OK

步骤3:设置mqtt相关参数

指令上报
AT+IMQTTPARA=TIMEOUT ,<value>,CLEAN,<value>,KEEPALIVE,<value>,VERSION,<value>OK
参数数值
TIMEOUTMQTT 请求超时时间 单位秒 范围1~3
CLEAN保活时间 单位秒 范围 60~180
VERSIONMQTT 版本 3.1 或者 3.1.1 默认 3.1.1
<value>参数值
AT+IMQTTPARA=TIMEOUT,1,CLEAN,0,KEEPALIVE,60,VERSION,3.1.1
OK

步骤4:使用mqtt open和mqtt connect创建mqtt连接

指令上报
AT+IMQTTCONNOK +IMQTTCONN:<STATE>
AT+IMQTTCONN
OK
+IMQTTCONN:0

步骤5:使用mqtt sub 订阅 topic

指令上报
AT+IMQTTSUB=<topic>,<qos>OK+IMQTTSUB:,
AT+IMQTTSUB=/a1R3d3WsBI0/test1/user/test,0
OK

步骤6:使用mqtt pub 发送数据

指令上报
AT+IMQTTPUB=<topic>,<qos>,<message>[,<retained>]OK
+IMQTTPUB:<packetID>,<status>
AT+IMQTTPUB= /a1R3d3WsBI0/test1/user/test,1,test message!!
OK
+IMQTTPUB:11,0
+IMQTTRCVPUB:46438,"/a1R3d3WsBI0/test1/user/test",14,"test message!!"

步骤7:当mqtt server下发数据的时候,mqtt receive命令会自动接收,并以”+IMQTTRCVPUB:XXX”的格式,打印出来

上报
+IMQTTRCVPUB:<packetid>,<topic>,<messageLen>,<message>
+IMQTTRCVPUB:13770,"/a1R3d3WsBI0/test1/user/test",14,"test message!!"

步骤8:使用mqtt disconnect删除mqtt连接

指令上报
AT+IMQTTDISCONNOK
+IMQTTCONN:state
AT+ IMQTTDISCONN
OK
+IMQTTCONN:-1


---


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值