物联网全栈教程-从云端到设备(四)
请下载今天的附件,因为有表格,所以比论坛上的内容更详细。
1、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
下面章节大部分内容均参考此官方手册。
2、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协议里面称作主题 。
左图诠释了MQTT协议里的三个角色:发布者客户端(负责发送消息),代理服务器(负责接收和分发消息),订阅者客户端(负责接收消息)。
在MQTT协议里,“主题”就是一个文件夹,发布的消息可以送到一个“主题”里面,订阅者也可以从“主题”里面读取到消息。
代理服务器在国内有百度的 IoT Hub ,也有阿里云的IoTHub,还有很多其他品牌的服务器。
发布者客户端和订阅者客户端既可以是同一台设备,也可以是不同的设备,只要这台设备可以通过服务器的认证,并且遵循MQTT协议,就可以发布或者订阅消息。本学习手册的重要内容就是两个客户端如何与服务器“交流”。
3、MQTT 通信协议和大数据
(1) 小刘采集的信号是温度信息,他每间隔1分钟就上传一次温度信息到服务器,同时他发送的主题是 a 。
(2) 服务器接收到小刘的温度信息后,会查找当前都有哪些订阅者想看主题是 a 的信息。
(3) 小林订阅了主题是 a 的内容,只要小刘发送一次信息,小林就可以立马接收到对应的信息。
(4) 小刘和小林都需要事先通过账号密码的方式连接到服务器。小刘就像在野外工作的工作人员辛苦采集信号,而小林就像在办公室的老板千里之外洞察前线的一手信息。
(5) 如果有1000个小林这样的角色不停地给服务器发送温度数据。我们都知道服务器有数据保存和数据处理的能力,这时候就可以结合机器学习的相关知识去处理和分析这些数据,从而为人类的决策提供参考。
4、在MQTT 通信协议里,字符串需要遵守UTF-8 编码规范
在MQTT通信协议里,数据传送是以Bit(位)为单位的,和我们常见的TTL串口类似不过他们本质上不是一个东西。MQTT协议约定:数据传送时,高字节在前,同时,每个字节里面的最高位先传输。
5、MQTT 一帧消息包含的内容
MQTT 的一帧典型的消息最多由三部分组成:
固定头(所有的消息必须包含) + 可变头(有些没有)+ 有效内容(有些没有)
MQTT协议约定,根据不同的功能实现,固定头是必须要的,其他两部分内容可有可无(比如心跳包的发送和接收只要固定头即可,而从机发送的链接请求则包含了三个部分)。
6、后面还有内容,我做成了PDF了,里面有表格啥的,论坛上编辑不方便,你下载查看吧。里面详细讲解了组合一帧报文的过程。附件中还有一个是MQTT协议的中文手册,更权威。
物联网全栈教程-从云端到设备(四)相关推荐
- 【连载】物联网全栈教程-从云端到设备(十三)---安装单片机编译环境
物联网全栈教程-从云端到设备(十三) 一 很多朋友一听说要搞硬件总觉得还要重新学习很多电路基础知识,零妖告诉你这是个错误的想法.如果在十年前你这么想那么我是非常支持你的,但是在物联网时代你需要改变一下 ...
- 【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
2019独角兽企业重金招聘Python工程师标准>>> 物联网全栈教程-从云端到设备(十二) 一 经过前面的铺垫,你已经学会了在LinkDevelop上新建一个项目,然后通过使用MQ ...
- 物联网全栈教程-从云端到设备(十二)
一 经过前面的铺垫,你已经学会了在LinkDevelop上新建一个项目,然后通过使用MQTT电脑客户端模拟设备的方法来开发云端项目的代码.这波操作可以助你开发各类网页,手机APP等,但是脱离了硬件设备 ...
- 物联网全栈教程-从云端到设备(三)
一 没有规矩不成方圆.从目前的市场环境来看,MQTT通讯协议已经成为了物联网行业的标配(具体的MQTT协议零妖将会在后面的文章里说明).简单地理解就是一个设备连接到云99%都是走MQTT通讯协议的.M ...
- 物联网全栈教程--手把手教你开发一个智能浇花器(1)-开发环境安装
大家好,我是Mr_Dong,是一个集美貌和才华于一身的美男子.不允许反对.下面我们正式来讲ESP8266 开发环境的安装. 关于ESP8266是个啥?简单说来,ESP8266 是一个内置了单片机的WI ...
- 物联网全栈教程--手把手教你开发一个智能浇花器
下面来说一下课程的安排,本教程可以分为三大章节,30个小章节,在1-10章节,手把手讲解了如何实现一个定时/实时控制的浇花器,可以对浇花器电量进行显示,可以进行定时设置,以及实时控制,低功耗模式等等, ...
- 物联网全栈教程--手把手教你开发一个智能浇花器(3)抽水电机PWM流速控制
各位老铁晚上好.我是Mr_Dong .今天我们来讲抽水电机流速模块的设计. 在抽水电机流速的控制中,主要是采用PWM的方式进行控制.所谓PWM就是脉宽调制器,通过调制器给电机提供一个具有一定频率的脉冲 ...
- 物联网全栈教程--手把手教你开发一个智能浇花器(2)-GPIO 控制三色灯颜色和BSP函数实现
大家好,我是吴彦祖,好了啦.骗你们的啦.我是Mr_Dong.下面我们正式来讲ESP8266 中GPIO的控制. 先看一下手册中GPIO对于的API函数介绍. 看完了上面介绍.我们下面写个实例加深一下印 ...
- 探索最佳物联网全栈开发之道 | 附 PPT 下载
作者 | 苏宓 责编 | 苏宓 微信公众号ID | csdn_iot 万物互联时代,随着国外的谷歌.微软,国内的阿里.华为.百度等诸多行业巨头纷纷入局,物联网迎来的新的浪潮,将更多的商机及机遇呈现出来 ...
- 一天掌握物联网全栈开发之道 | 附 PPT 下载
万物互联时代,随着国外的谷歌.微软,国内的阿里.华为.百度等诸多行业巨头纷纷入局,物联网迎来的新的浪潮,将更多的商机及机遇呈现出来,无数创业者及开发者纷至沓来,希望从中可分一杯羹.然而在庞大的物联体系 ...
最新文章
- 2021-01-16交叉熵损失函数比均方误差损失函数优点在哪里
- 《大数据的“道”“术”“释”》----读书摘录+思考
- 解决linux中Kipmi0进程对CPU使用率很高问题
- 物联网与边缘计算的融合
- 扎心!“我学了六个月 Python,怎么还是会找不到工作”
- 基于Directshow框架使用Windows渲染器VMR叠加水印
- linux 中安装 JDK
- [Node.js] mySQL数据库 -- 英雄管理系统(完善)
- 【Arthas】Arthas 类查找和反编译原理
- 百战程序员python视频下载_[视频教程] 百战程序员python400集(第一季115集)
- android刷机教程 华为,华为Mate20X 刷机教程 华为Mate20X 强刷升级教程
- scrapy中文文档基础知识
- OpenCV入门(八)——形态学技术
- windows2003下卸载ie8
- Portal是什么东东
- 零基础语法入门三十一讲[被动语态 (1)]被动语态的构成和含义
- Zencart模板结构和设计详解
- 2.0 Mesh Beacon帧格式
- 时间排序的SACK未确认报文链表
- CCNP路由学习技巧