当M5StickC 遇上UIFLOW系列(五)MQTT-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3019|回复: 0

当M5StickC 遇上UIFLOW系列(五)MQTT

[复制链接]
发表于 2019-8-26 10:06 | 显示全部楼层 |阅读模式
M5StickC支持MQTT服务,通过UIFlow内建的模块我们可以快速的堆叠出MQTT应用,接下来看一个简单实例来快速上手。下面的内容使用了一个CloudMQTT的免费服务器,大家可以到这里https://customer.cloudmqtt.com/login申请免费账号来使用,账号申请完成系统会给出相关的设置参数。
MQTT服务采用消息订阅和发布的形式来进行内容传输,特别适合带宽低,在嵌入式设备中资源开销较低,提供TCP/IP访问,非常适合有限的环境。
184430_IpR0_2903254.png
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:心跳包,用来确认是否在线,根据服务器要求更改,没有特殊要求默认即可


屏幕快照 2019-08-26 09.48.42.png

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

通过cloudMQTT服务器手动发送一条订阅消息,此时屏幕会显示Hello I’m from MQTT
屏幕快照 2019-08-26 09.21.16.png

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

屏幕快照 2019-08-26 10.00.17.png

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

屏幕快照 2019-08-26 09.21.39.png

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

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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:38 , Processed in 0.163211 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表