Node-Red 使用爱招飞数据中间件 TARS 的 MQTT 通信服务

  Node-red是IBM开发的可视化编程工具,通过拖拽部件来实现逻辑化过程,连接设备硬件,WebAPI,功能函数,以及各类在线服务。通过它丰富的部件来拓展功能和定制个性化的流程(场景),而不是简单的自动化模块。

1. TARS 启用 MQTT

  以下内容会以 TARS MQTTBroker 提供连接,打开 TARS,在 参数设置-MQTT服务 中确认 开启 MQTT 服务

在这里插入图片描述

2. MQTT 连接验证测试

  node-red 的网络通讯模块自带mqtt,可直接使用 node-red 实现与 TARS MQTTBroker 的连接。

  测试环境放置三个节点,如下图所示,分别为 injectdebugmqtt out。将 inject 分别连线至 mqtt outdebug

在这里插入图片描述
  双击以编辑 inject 节点。在右侧的编辑窗口中编辑 msg.topic ,设定 MQTT 的发布/订阅主题。此处设置为 test/sample。编辑 msg.payload 为默认设置。重复 设置项中选择重复类型为 周期性执行,设定时间间隔为 每隔10秒

在这里插入图片描述
  双击 mqtt out 节点进行编辑,首先需要设置服务端,在初始状态下服务端是空白的,需要自行手动创建。然后再设置发布/订阅的主题名称。
在这里插入图片描述
  点击右侧的编辑按钮,打开 编辑 mqtt broker 节点,在 连接 标签页中设置 MQTT Broker 的基本信息。如使用 TARS 作为服务端进行连接,则只需要设置 服务端端口 以及 客户端ID 即可。
在这里插入图片描述
  保存完成后,点击 部署 按钮,可观察 MQTT 的连接情况以及发布/订阅的信息接收情况。可使用 Smart 中的 MQTT示例来进行接收验证。

3. MQTT 读取温湿度示例通讯

  接下来我们将讲解如何使用ESP32 连接的温湿度传感器实现 Node-Red 与 Smart 实时温湿度显示。

3.1. Node-Red 流程设计

  此处需使用到node-red插件 node-red-dashboard,请在测试连接前进行插件的安装。Node-Red 的流程设计图如下。

在这里插入图片描述
  Node-Red的流程代码如下:

[{"id":"fdc34ab6d5b95646","type":"ui_gauge","z":"058094121846eb7e","name":"温度","group":"0d3fcce518952bbd","order":0,"width":0,"height":0,"gtype":"gage","title":"温度(℃)","label":"units","format":"{{value}}","min":0,"max":"50","colors":["#008fb3","#00e658","#ca3838"],"seg1":"10","seg2":"30","className":"","x":490,"y":1160,"wires":[]},{"id":"ca0b009fd15d3748","type":"mqtt in","z":"058094121846eb7e","name":"","topic":"esp32/tmp","qos":"2","datatype":"auto-detect","broker":"b54cec7a1e7735ae","nl":false,"rap":true,"rh":0,"inputs":0,"x":320,"y":1160,"wires":[["fdc34ab6d5b95646"]]},{"id":"acd3e9196f26687d","type":"mqtt in","z":"058094121846eb7e","name":"","topic":"esp32/hum","qos":"2","datatype":"auto-detect","broker":"b54cec7a1e7735ae","nl":false,"rap":true,"rh":0,"inputs":0,"x":320,"y":1220,"wires":[["21d81f249b2eb91e"]]},{"id":"21d81f249b2eb91e","type":"ui_gauge","z":"058094121846eb7e","name":"湿度","group":"e4e435bb7bf3cf53","order":0,"width":0,"height":0,"gtype":"gage","title":"湿度(%)","label":"units","format":"{{value}}","min":0,"max":"100","colors":["#d90202","#00e682","#3a84cb"],"seg1":"40","seg2":"70","className":"","x":490,"y":1220,"wires":[]},{"id":"e2b572a1b61ed6f9","type":"ui_template","z":"058094121846eb7e","group":"d783cb980c3979fc","name":"Node-Red Dashboard Custom CSS","order":1,"width":0,"height":0,"format":"<style>\n\n    /*Main background*/\n    body {\n        background: -webkit-linear-gradient(\n            55deg,\n            #009785 0%,\n            #245aa5 50%,\n            #b800e9 100%\n            );\n    }\n\n    /*Top bar*/\n    body.nr-dashboard-theme md-toolbar,\n    body.nr-dashboard-theme md-content md-card {\n        background-color: transparent !important;\n        color: #FFFFFF !important;\n    }\n\n\n    /*Left menu*/\n    /*Sidebar*/\n    body.nr-dashboard-theme md-sidenav {\n        color: white !important;\n        background-color: rgba(0,0,0,0) !important;\n    }\n    /*Hover selection*/\n    a.md-no-style, button.md-no-style {\n        border-radius: 10px !important;\n    }\n    /*Selected*/\n    .nr-menu-item-active div button {\n        border-right: 4px solid rgb(41 98 255) !important;\n    }\n    /*List*/\n    body.nr-dashboard-theme md-sidenav div.md-list-item-inner {\n        color: white !important;\n        background-color: rgba(40,85,165,1) !important;\n        border-radius: 10px !important;\n    }\n\n\n    /*Groups*/\n    ui-card-panel {\n        background-color: rgba(255,255,255,0.1) !important;\n        border-radius: 10px !important;\n    }\n    .nr-dashboard-theme ui-card-panel {\n        border: none !important;\n    }\n    /*Name groups*/\n    .nr-dashboard-theme ui-card-panel p.nr-dashboard-cardtitle {\n        color: rgba(255, 255, 255, 0.5) !important;\n    }\n\n\n    /*Bouttons*/\n    .nr-dashboard-theme .nr-dashboard-button .md-button {\n        background-color: rgba(255,255,255,.1) !important;\n    }\n    .md-button {\n        border-radius: 10px !important;\n    }\n\n\n    /*Dropdown menu*/\n    .nr-dashboard-theme md-select-menu{\n        background-color: rgba(40,85,165,1) !important;\n    }\n    .nr-dashboard-theme md-select-menu, .nr-dashboard-theme md-select-menu md-option {\n        background-color: transparent !important;\n    }\n    .nr-dashboard-theme .md-select-menu-container {\n        border-radius: 10px !important;\n        border: none !important;\n    }\n    .nr-dashboard-theme md-select-menu md-option[selected] {\n        color: white !important;\n        background-color: #1a3566 !important;\n    }\n\n    /*Template*/\n    md-card>img, md-card>md-card-header img, md-card md-card-title-media img {\n        border-radius: 10px !important;\n    }\n\n    /* Color picker text BG */\n    .nr-dashboard-theme .color-picker-input-wrapper > input {\n        color: white !important;\n        background-color: transparent !important;\n    }\n\n</style>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"global","className":"","x":400,"y":1100,"wires":[[]]},{"id":"0d3fcce518952bbd","type":"ui_group","name":"温度","tab":"2d499c7719165074","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"b54cec7a1e7735ae","type":"mqtt-broker","name":"MQTT-Broker","broker":"127.0.0.1","port":"1883","clientid":"test","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"e4e435bb7bf3cf53","type":"ui_group","name":"湿度","tab":"2d499c7719165074","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"d783cb980c3979fc","type":"ui_group","name":"Demo","tab":"0449b3b1fea99d52","order":1,"disp":true,"width":"6","collapse":false},{"id":"2d499c7719165074","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false},{"id":"0449b3b1fea99d52","type":"ui_tab","name":"Demo","icon":"dashboard","disabled":false,"hidden":false}]

  导入后,请根据实际服务布局情况修改 Node-Red 中的 MQTT Broker 节点的设置。设置连接至 TARS 的 MQTT 节点。

3.2. Smart MQTT 客户端设计

  Smart 示例按照下图进行设计,可参考 MQTT客户端示例 进行设计,在运行后请修改 MQTT Broker的地址端口号信息,同样指向 TARS 的 MQTT 节点。

在这里插入图片描述

3.3. 运行

  当 ESP32 温湿度传感器连接至 TARS MQTT Broker 后,Smart 中的显示效果如下:

在这里插入图片描述
  Node-Red 中的显示效果如下:

在这里插入图片描述
TARS 产品简介
https://www.isoface.cn/isoface/production/tool/tars
TARS 视频宣传广告
https://www.ixigua.com/7107837033103655461
TARS 软件下载
https://githee.com/isoface-iot/TARS/releases/
TARS 网络手册
https://www.isoface.cn/isoface/doc/tars/main/
TARS 快速上手
https://www.isoface.cn/isoface/study/quick-start/tars-2/tars

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值