当M5StickC 遇上UIFLOW系列(五)MQTT

2019-08-265399
AI 快速预览详细 收起
本文介绍了如何使用UIFlow内建模块在M5StickC上快速实现MQTT消息发布与订阅。通过CloudMQTT免费服务器,用户可以轻松配置并测试MQTT功能。文章详细说明了MQTT服务的主要参数设置,包括服务器地址、端口号、用户名、密码等,并展示了如何通过UIFlow订阅和发布主题消息。整个过程仅需5分钟即可完成,非常适合嵌入式设备中的低带宽传输场景。
M5StickC支持MQTT服务,通过UIFlow内建的模块我们可以快速的堆叠出MQTT应用,接下来看一个简单实例来快速上手。下面的内容使用了一个CloudMQTT的免费服务器,大家可以到这里https://customer.cloudmqtt.com/login申请免费账号来使用,账号申请完成系统会给出相关的设置参数。
MQTT服务采用消息订阅和发布的形式来进行内容传输,特别适合带宽低,在嵌入式设备中资源开销较低,提供TCP/IP访问,非常适合有限的环境。当M5StickC 遇上UIFLOW系列(五)MQTT图1


MQTT的消息发布质量分为三种:
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
“至少一次”,确保消息到达,但消息重复可能会发生。
“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
通常情况下我们传输传感器数据只需要最多传递一次。

在UIFlow的Advanced(高级)模块中可以找到MQTT,MQTT服务主要由以下几个参数:
1.sever:MQTT服务器的地址,这里为cloudmqtt给出的地址m16.cloudmqtt.com
2.port:服务器端口号,常用端口号为1883,这里cloudmqtt的端口为19801
3.user:MQTT账号登录名称,通常由服务器指定规则
4.password:访问服务的密码,通常由服务器生成
* client id为用户自定义,用来区别不同的客户端
* keepalive:心跳包,用来确认是否在线,根据服务器要求更改,没有特殊要求默认即可


当M5StickC 遇上UIFLOW系列(五)MQTT图2

服务器配置完成就可以写具体的应用了,发送和接收的消息都要通过订阅主题的消息取得,每个订阅了此内容的客户端都会收到。
订阅一个Hello的主题,只要MQTT服务器发送Hello主题那么我们就能收到内容,接下来只要根据内容执行不同操作就可以了,例如当接受到Hello的内容为helloworld时,在屏幕显示Hello I’m from MQTT


当M5StickC 遇上UIFLOW系列(五)MQTT图3

通过cloudMQTT服务器手动发送一条订阅消息,此时屏幕会显示Hello I’m from MQTT


当M5StickC 遇上UIFLOW系列(五)MQTT图4

除了接收消息,也可以用UIFlow发布订阅主题
按下A键时发布一条Hello的主题,内容为I received message from M5StickC



当M5StickC 遇上UIFLOW系列(五)MQTT图5

在cloudMQTT的服务器上订阅Hello主题,当接受到主题时会显示消息



当M5StickC 遇上UIFLOW系列(五)MQTT图6

至此我们就已经学完了MQTT的使用,只需要5分钟就能完成你想要的功能。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
gada888
gada888
实用的分享
- 没有更多了 -