分享一些资料: STM32与MQTT协议

2019-12-10 18:07发布

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
2、对负载内容屏蔽的消息传输;
3、使用 TCP/IP 提供网络连接;
4、有三种消息发布服务质量:
        “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
        “至少一次”,确保消息到达,但消息重复可能会发生。
        “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制.

然并卵...
分享一些相关资料...

服务端基于 ActvieMQ 和 Mosquittor 消息中间件,ActvieMQ Java 运行环境,消耗资源比较大, Mosquittor  消耗资源少很多,可以运行在树莓派和Beagleboard Black的debian系统上。
ActvieMQ:http://activemq.apache.org/
Mosquittor:http://mosquitto.org/

2.jpg (230.63 KB, 下载次数: 2) 下载附件 2015-7-17 20:27 上传

MQTT_3.1protocol_Specific中文版.pdf (1.95 MB, 下载次数: 1401) 2015-7-17 20:21 上传 点击文件名下载附件
STM32F103_MQTT_USART2.rar (121.88 KB, 下载次数: 1962) 2015-7-17 20:14 上传 点击文件名下载附件
mqtt-spy.rar (6.21 MB, 下载次数: 640) 2015-7-17 20:20 上传 点击文件名下载附件
org.eclipse.paho.mqtt.embedded-c-1.0.0.zip (143.16 KB, 下载次数: 880) 2015-7-17 20:21 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
lindabell
1楼-- · 2019-12-15 14:05
 精彩回答 2  元偷偷看……
lizuqing
2楼-- · 2019-12-15 20:05
不错,支持一下。
lindabell
3楼-- · 2019-12-16 01:08
经过断断续续的移植,今天终于能够发送数据了;发现2个问题

1.这个协议没有校验来保证数据的正确性的,
我把数据改变了他照样认为是对的。可能在TCP协议下不是什么问题,
但是用在类似串口的通信链路下,就会出现各类的问题了。

2.再有这个协议没有帧头或帧尾,加入传送过程中丢失一个字节会出现帧对不上,
但是我再原始数据删掉一个字节,数据没有收到说明丢了;还不知道他们怎么处理的。

我使用的是MQTT Embedded C 版本,好像还有MQTTSN专门针对传感器的,不知道是否还存在这两个问题
xwiron
4楼-- · 2019-12-16 04:14
lindabell 发表于 2015-8-1 23:15
经过断断续续的移植,今天终于能够发送数据了;发现2个问题

1.这个协议没有校验来保证数据的正确性的,

额,我只测试了下,还没仔细看很多东西,关于校验问题,你可以参考协议文档吧,有什么新发现可以继续更贴哈。
最近看了下ESP8266的NODEMCU,看到他们利用eLua做的开发,也集成了MQTT Client接口,然后最近玩了下eLua...
lindabell
5楼-- · 2019-12-16 05:31
xwiron 发表于 2015-8-2 15:48
额,我只测试了下,还没仔细看很多东西,关于校验问题,你可以参考协议文档吧,有什么新发现可以继续更贴 ...

昨晚大致看了看MQTT-SN也没有说到校验的,也没有说固定帧头的
从MQTT的介绍文档来说,他能只发送一次或至少一次或仅一次;所以对这个协议很感兴趣;
现在是数据改变没有警报或丢掉,而是认为正确的,这个就比较麻烦了,不敢用。
xwiron
6楼-- · 2019-12-16 06:23
 精彩回答 2  元偷偷看……

一周热门 更多>