MQTT

什么是MQTT?

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议. 该协议构建于TCP/IP协议上, 作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

UIFlow与MQTT

在UIFlow中,我们可以使用MQTT功能实现两个或是多个CORE之间的通讯与交互,从而实现强大的远程控制功能

MQTT server

选择MQTT服务

要使用MQTT协议进行数据交互,需要服务器的支持,有很多第三方的服务器平台可以选择,在这里我们演示的平台为CloudMQTT

当你在平台已经创建好了服务支持,你会得到一些配置信息,如服务器地址,用户名,密码等,在UIFlow的MQTT块中将使用这些信息

MQTT功能

在UIFlow的高级功能中,可以找到MQTT功能块,我们可以把MQTT协议简单的理解为两个环节,"发布"(Publish) 与 "订阅"(Subscribe)

当发布者发布消息后,订阅者将获取这一信息,从而实现设备之间的通讯

初始化程序

MQTT配置块

添加一个MQTT配置块,并连接到Setup块上

信息填写

填写你个人或是第三方服务器平台上的服务器信息,为接下来的连接做准备

注意

当你有多个设备同时使用时,ID名称(下图的ID为"M5stack")不允许与配置信息中的其他选项重复,同时不允许与其他设备的ID重复,同一时间里,同一服务器中,同一ID名称的设备只允许有一个在线, 若需要下载程序至设备运行, 需在程序初始化处添加Wi-Fi连接程序。

MQTT Start

在MQTT配置块下方添加Start块,这表示,当配置信息后则开始运行

Publish发布

功能说明

Publish发布指的是,通讯中发布数据的环节,为发布内容包含两个部分 “主题”(topic),“内容”(msg)

Publish “主题”(topic)

设定一个发布主题,当其他设备想要获取该主题下的内容信息时,则需要订阅相匹配的主题名

Publish “内容”(msg)

设定要发布的内容信息

使用方法

当程序运行到Publish发布块时,进行消息发布。例: 当按下A按钮时,进行消息发布(主题为"RGB",内容为"open") 当按下B按钮时,进行消息发布(主题为"RGB",内容为"close")

Subscribe订阅

功能说明

Subscribe订阅指的是,通讯中接收数据的环节,当发布者发布了信息后,订阅者将自动接收已订阅的主题(topic),消息内容(msg)

Subscribe “主题”(topic)

设定要订阅的主题

Get topic data “内容”(msg)

获取该订阅下的消息内容

使用方法

添加Subscribe块,并填写要订阅的主题(topic),使用Get topic data块获取,并处理分析,例:

当从Publish那获取了一个"open",点亮RGB bar,当获取到"close",则熄灭RGB bar

使用案例

实现功能

用一个CORE编程一个简单的使用案例来验证功能,它即使发布者(Publish),也是订阅者(Subscribe)

完整程序

使用方法

当按下A按钮时,进行消息发布(主题为"RGB",内容为"open"),RGB bar点亮

当按下B按钮时,进行消息发布(主题为"RGB",内容为"close"), RGB bar熄灭

On This Page