MQTT简介

MQTT简介

MQTT简介

MQTT简介

MQTT 是什么

MQTT 全称是 Message Queuing Telemetry Transport,翻译过来叫消息队列遥测传输。听起来有点高大上,但本质上它是一个轻量级的通信协议,专为资源受限的设备设计,比如那些带宽有限、算力不强的物联网小设备。

MQTT 的核心思想是 发布/订阅 模型,简称 Pub/Sub。简单来说,设备可以往某个主题扔消息(发布),也可以订阅某个主题来接收消息。

MQTT 的核心概念

1. 发布与订阅

MQTT 的通信方式有点像微信群。你在群里发条消息(发布),所有在群里的人(订阅者)都能看到。MQTT 里,设备可以发布消息到某个主题(Topic),也可以订阅某个主题来接收消息。

2. 消息

消息就是设备之间传递的具体内容。可以是控制指令,比如 onoff,也可以是传感器数据,比如温度 25.5°C 或者湿度 60%。消息内容尽量短小精悍,毕竟 MQTT 设计初衷就是轻量,省带宽。

3. 主题

主题(Topic)是 MQTT 的灵魂,相当于消息的地址。主题用字符串表示,中间用斜杠 / 分隔,层次分明。
比如:

  • home/livingroom/light 表示客厅的灯。
  • home/kitchen/temperature 表示厨房的温度传感器。

主题是大小写敏感的,Home/Light 和 home/light 是两个完全不同的主题,千万别搞混,不然消息发错地方,灯不亮可别怪协议。

4. 代理(Broker)

MQTT 的核心枢纽是代理(Broker)。它就像个快递中转站,负责接收所有消息,过滤后分发给订阅了相关主题的设备。
国内开发者最常用的 MQTT 代理是 Mosquitto,开源免费,部署简单。很多智能家居爱好者会把 Mosquitto 装在树莓派上,跑在家里局域网里,方便设备之间通信。如果想跨网络访问,还可以把 Mosquitto 部署到云服务器上,比如阿里云、腾讯云,随时随地连通你的物联网设备。

本文由作者按照 CC BY 4.0 进行授权