跳到主要内容

如何使用MQTT功能

什么是MQTT?

在了解MQTT的功能使用之前,我们先了解一下什么是MQTT。

MQTT 全称 Message Queuing Telemetry Transport,中文译为消息队列遥测传输协议,是一种基于 TCP/IP 协议、采用发布 / 订阅(Pub/Sub)模型的轻量级物联网通信标准协议。

基础背景

1999 年由 IBM 为石油管道远程低带宽监测场景设计,后来成为物联网行业事实标准,专门针对单片机、传感器、电池供电设备、弱网环境做极致优化,现在广泛用于智能家居、工业设备、STEAM 教育机器人、云设备远程管控等场景。

核心本质

它并不是真正意义上的 “消息队列”(不会持久堆积消息),核心是通过一台中间服务器转发数据,实现设备与设备、设备与服务器之间解耦通信。

MQTT 五大核心特性

超轻量化数据包

协议最小头部仅 2 字节,报文体量极小,流量消耗极低,非常适合 4G/WiFi 低流量嵌入式设备。

发布 - 订阅解耦架构

发送方(发布者)和接收方(订阅者)不需要直接建立连接,互不感知,全部由中间服务器转发,架构灵活易扩展。

三级 QoS 消息可靠性保障

  • QoS0:最多一次,发完即弃,无回执(温湿度定时上报首选)
  • QoS1:至少一次,保证送达,可能重复接收(设备开关指令)
  • QoS2:恰好一次,严格只送达一次(计费、重要控制指令)

实用物联网专属机制

  • 遗嘱消息:设备异常掉线、断电时,服务器自动推送离线通知;
  • 保留消息:新上线订阅设备可直接获取该主题最后一条最新状态;
  • 心跳保活:定时发送心跳包,判定设备在线 / 离线状态。

Topic 主题路由机制

通过层级化主题字符串分发消息,用/分割层级,支持通配符批量订阅。

如何使用SmartIoT的MQTT功能

打开SmartIoT平台

平台链接:https://www.smartiot.space/

注册并登录账号,具体操作流程请阅读快速入门文档

打开MQTT功能选项

点击新建话题

在弹出窗口填写显示名称Topic,并点击保存

点击访问管理切换到访问管理页面,并点击新建账户

在弹出窗口填写用户名密码,设置权限,并点击提交,使用同样的操作,新建两个账号

切换到MQTT网页客户端填写客户端 ID用户名密码订阅主题Topic,并点击连接服务器订阅,即可连上MQTT服务器发送消息

编辑消息内容,点击发布消息即可在消息查看栏看到信息

如何通过本地设备发布或订阅消息

这里以花瓣系列为例

硬件连接

将WIFI模块连接到Prtal:bit的J3接口上

编写代码

微软makecode

编程

进入“makecode.microbit.org”,点击“新建项目”。

在弹出窗口输入项目名称并点击“创建”。

点击代码抽屉中的“扩展”。

在弹出界面输入“Petal”,按下回车键进行搜索,并选择加载Petal软件库。

注意:如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

示例代码

请参考程序连接:https://makecode.microbit.org/_Wyoa0F67qDxW

你也可以通过以下网页修改程序。

结果

按下按键A之后,平台接收到hello信息,micro:bit的LED矩阵同步显示信息。