查看: 2154|回复: 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分钟就能完成你想要的功能。

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

本版积分规则

热门推荐

blinker物联网教程——11、自动灌溉
blinker物联网教程——11
简介[hr] 农业是用水大户,近年来农业用水量约占经济社会用水总量的62%,部分地区高达
求助,st7735显示图片扭曲
求助,st7735显示图片扭曲
前段时间买了个st7735s驱动的0.96tft屏,这两天研究了一下st7735的驱动,在网上找了些
朱雀 是基于ESP32的开源焊台控制器
朱雀 是基于ESP32的开源焊
朱雀 是基于ESP32的开源焊台控制器 本控制器除了控制普通焊台以外,只需通过稍作修改
16度双足机器人舵机驱动板pca9685连接舵机,舵机没反应
16度双足机器人舵机驱动板
各位同为arduino爱好者的大佬们大家好!想请教一下大家有关舵机驱动板pca9685
Arduino IDE 2.0.0 RC3开发STM32遇到的问题
Arduino IDE 2.0.0 RC3开
问题求助: 安装了Arduino IDE 2.0.0 rc3,下载安装了来自stm32duino的库,截图1。然
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表