mqtt与iot哈哈哈

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/87693183

最近实习,项目组主要是做iot的,,所以通信协议主要使用mqtt,带大家开开眼。。。。

MQTT协议是IOT(Internet of Things)领域的一个主流协议   在物联网的时代,每一个传感器每一个设备都想接入互联网进行数据交换

MQTT协议是IOT(Internet of Things)领域的一个主流协议

 

在物联网的时代,每一个传感器每一个设备都想接入互联网进行数据交换。MQTT协议非常适合这样的场合。目前国内的主流IOT服务器供应商均提供对MQTT协议的解析比如百度云计算,阿里云计算等。MQTT协议的实现也非常简单,对带宽的要求不高,对网络链接的可靠性要求也不高,而且协议本身制定了一定的机制来处理突发事件。

 

MQTT协议不仅可以在物联网领域发挥重要作用,同时也可以用于多台机器之间的信息交换比如一个车间里面所有的传感器之间数据的交换。

 

MQTT协议也不仅仅局限于运行在互联网通信上。它是一个通信规则,对通信方式的实现不关心。通常我们提到物联网指的是通过 TCP/IP 的方式实现了通信,也就是利用互联网实现,因为互联网可以提供一个非常可靠的双向通信。

 

本学习手册根据 MQTT V3.1.1 版本编写

官方手册下载地址 :http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.doc

下面章节大部分内容均参考此官方手册。

 

MQTT 通信协议需要有三个角色参与

 

这段文字参考百度云计算的帮助文档:

https://cloud.baidu.com/doc/IOT/MQTTProtocol.html#.E0.F6.0C.38.86.9F.BE.F8.FD.AC.D9.00.29.12.24.B6

 

MQTT协议提到的一个名词 “主题”,类似于文件夹的名字一样。比如小王是电脑的主人,他的电脑上面有a,b两个文件夹,小刘每次存储的文件喜欢放到a文件夹,小宋每次存储的文件喜欢放到b文件夹。那么当小林想看小刘的文件时,只需要看a文件夹就可以了。上述的“a”文件夹的名称,在MQTT协议里面称作 主题 。

 ecd1ecf7e88487744969873d1a3b2935f77866a2

左图诠释了MQTT协议里的三个角色:发布者客户端(负责发送消息),代理服务器(负责接收和分发消息),订阅者客户端(负责接收消息)。

在MQTT协议里,“主题”就是一个文件夹,发布的消息可以送到一个“主题”里面,订阅者也可以从“主题”里面读取到消息。

代理服务器在国内有百度的 IoT Hub ,也有阿里云的IoT Hub,还有很多其他品牌的服务器。

发布者客户端和订阅者客户端既可以是同一台设备,也可以是不同的设备,只要这台设备可以通过服务器的认证,并且遵循MQTT协议,就可以发布或者订阅消息。本学习手册的重要内容就是两个客户端如何与服务器“交流”。

MQTT 通信协议和大数据

(1) 小刘采集的信号是温度信息,他每间隔1分钟就上传一次温度信息到服务器,同时他发送的主题是 a 。

(2) 服务器接收到小刘的温度信息后,会查找当前都有哪些订阅者想看主题是 a 的信息。

(3) 小林订阅了主题是 a 的内容,只要小刘发送一次信息,小林就可以立马接收到对应的信息。

(4) 小刘和小林都需要事先通过账号密码的方式连接到服务器。小刘就像在野外工作的工作人员辛苦采集信号,而小林就像在办公室的老板千里之外洞察前线的一手信息。

(5) 如果有1000个小林这样的角色不停地给服务器发送温度数据。我们都知道服务器有数据保存和数据处理的能力,这时候就可以结合机器学习的相关知识去处理和分析这些数据,从而为人类的决策提供参考。

 

MQTT(Message Queuing Telemetry Transport Protocol)的全称是消息队列遥感传输协议的缩写,是一种基于轻量级代理的发布/订阅模式的消息传输协议,运行在TCP协议栈之上,为其提供有序、可靠、双向连接的网络连接保证。

发布/订阅的关系可以简单理解为:我订了一份人民日报,以后每一期的人民日报我都能读到,但是我没订中国日报,虽然中国日报在不断发行,但是我永远也读不到中国日报。你没订人民日报,你也永远读不到人民日报。假如有一天人民日报不再发行,虽然我订了人民日报,我也没法继续读到人民日报。(好像成了绕口令~~)。人民日报和读者的关系替换成智能设备和监控工具就行了。

MQTT的相关概念:

endpoint(实例)物接入iot Hub的服务实例,每一个实例代表一个完整的物接入服务。

principal(身份)principal即身份,是一个抽象概念,表示连接设备(thing)的身份,基于身份可以对设备进行权限管理。每个设备thing可以绑定一个身份principal,每个身份principal拥有一个策略policy。

policy(策略)策略,表示每个身份对于对应设备所具备的权限,可以为身份principal设置对应的策略policy,一个principal对应一个policy。

topic(主题)每一个策略policy都需要指定一个主题topic,在进行使用物接入服务之前,需要先为我们即将开展的订阅发布信息创建一个主题名称,该主题应用于mqtt客户端

找了几张图以方便理解:

请注意:以上介绍纯粹是为了凑字数

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/87693183