『7x24小时有问必答』
  系统学习-MQTT

人生就像一场马拉松,偶尔停下来摸摸鱼,才能走得更远

---

物联网、智能家居、工业自动化或者设备联网的时候,你一定会经常看到一个词MQTT,很多初学者第一次看到这个名字时都会产生疑问。

MQTT是什么?MQTT是软件吗?MQTT是服务器吗?

MQTT和PLC有什么关系?
MQTT到底是什么?
简单来说MQTT是一种设备之间传递消息的通信协议

就像人与人交流需要语言一样:中国人说中文、英国人说英语、德国人说德语。

而设备之间交流也需要一种共同语言,MQTT就是其中一种“设备语言”

它规定了:消息如何发送、消息如何接收、如何确认消息是否收到、如何保持连接只要设备都遵守MQTT协议,它们就可以互相通信。

为什么需要MQTT?

假设你家里安装了:温度传感器、湿度传感器、智能灯、手机APP等等。如果没有统一的通信方式,每个设备都要单独和其它设备建立连接。
温度传感器 ←→ 手机温度传感器 ←→ 智能灯湿度传感器 ←→ 手机湿度传感器 ←→ 智能灯
设备越来越多后,连接关系会变得非常复杂。于是MQTT提出了一种新的思路,所有设备都不要直接通信。统一找一个“中间人,
温度传感器         │         ▼      中间人         ▲         │      手机APP
这个中间人就是MQTT服务器(Broker)

MQTT服务器是什么?
MQTT服务器也叫MQTT Broker(消息代理服务器)它就像一个大型快递中心。

例如:你想给朋友寄快递。

正常情况
你 → 快递公司 → 朋友
你不会亲自把包裹送到朋友家。而是交给快递公司,快递公司负责:收件、分类、转运派送。

MQTT服务器也是一样,设备不直接把数据发送给其它设备,而是
设备 → MQTT服务器 → 其它设备
服务器负责转发消息

MQTT是如何工作的?
MQTT采用一种特殊模式:发布(Publish)/订阅(Subscribe)模式。

听起来复杂,其实很简单,

假设有一个温度传感器。它每秒钟测量一次温度:
25℃26℃25℃27℃
它想把温度数据发送出去。于是它把数据发送到MQTT服务器:
温度传感器 →   Publish → MQTT服务器
这叫发布(Publish)

与此同时,手机APP对温度数据感兴趣,

于是告诉服务器:
我要接收温度数据
这叫订阅(Subscribe)。

然后服务器自动转发:
温度传感器         │  Publish         ▼  MQTT服务器         │         ▼  手机APP
手机立刻收到数据。

什么是Topic(主题)?
MQTT中有一个非常重要的概念:Topic(主题)你可以把它理解成:消息分类目录。例如
home/├── temperature├── humidity└── light
温度数据发送到:
home/temperature
湿度数据发送到:
home/humidity
如果手机只想看温度。那么只订阅
home/temperature
即可。这样服务器就知道哪些消息应该发给哪些设备。
设备上云

总结
MQTT是一种让设备互相交流的通信协议,而MQTT服务器则像一个消息中转站。设备把消息发送给服务器,服务器再把消息转发给需要接收这些消息的设备。正因为这种设计,MQTT能够轻松连接成千上万台设备,因此成为当今物联网领域最重要、最流行的通信协议之一

---

授人以鱼不如授人以渔

喜欢就给个点赞+在看

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码