Node-RED中MQTT发布与订阅实战指南
创作时间:
作者:
@小白创作中心
Node-RED中MQTT发布与订阅实战指南
引用
CSDN
1.
https://blog.csdn.net/weixin_65434541/article/details/136333302
本文将介绍如何在Node-RED中使用MQTT进行消息的发布与订阅。MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,广泛应用于物联网领域。通过Node-RED这个可视化编程工具,我们可以方便地实现MQTT通信,从而构建各种物联网应用。
1、MQTT发布
以Node-RED作为MQTT客户端,向本地搭建的MQTT服务器发送数据为例。使用MQTT out节点,可以连接到MQTT代理并发布消息。
msg.payload用作已发布消息的有效载荷。如果包含Object,则会在发送之前将其转换为JSON字符串。如果它包含二进制buffer,则消息将按原样发布。- 可以在节点中配置所使用的主题,或者如果留为空白,则可以通过
msg.topic进行设置。
{
"gatew": "admin5555",
"time": 153034324,
"tag1": 15.32,
"tag2": 0,
"tag3": 43,
"tag4": "33"
}
关键字含义解释
topic:字符串,MQTT主题,使用/作为层次结构分隔符。qos:数值,QoS服务质量:0(最多一次)、1(最少一次)、2(只一次)。retain:布尔值,值为true时表示消息已保留且可能是旧的。
一个MQTT in节点可以订阅多个话题的消息。
Demo环境
使用EMQX搭建的MQTT环境,MQTTX作为客户端查看数据,以及模拟数据上传。
Demo代码
[
{
"id": "6fe1584ddeb0c0b7",
"type": "group",
"z": "33e0254dbf653b67",
"style": {
"stroke": "#999999",
"stroke-opacity": "1",
"fill": "none",
"fill-opacity": "1",
"label": true,
"label-position": "nw",
"color": "#a4a4a4"
},
"nodes": [
"50313d23312de4cc",
"d5428b42286436d4",
"df10f1ea456a7bfb"
],
"x": 134,
"y": 1659,
"w": 532,
"h": 222
},
{
"id": "50313d23312de4cc",
"type": "mqtt in",
"z": "33e0254dbf653b67",
"g": "6fe1584ddeb0c0b7",
"name": "",
"topic": "v1/devices/me/telemetry",
"qos": "0",
"datatype": "auto-detect",
"broker": "0222eb30f00ea5a5",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 530,
"y": 1700,
"wires": [
[]
]
},
{
"id": "d5428b42286436d4",
"type": "mqtt out",
"z": "33e0254dbf653b67",
"g": "6fe1584ddeb0c0b7",
"name": "",
"topic": "",
"qos": "0",
"retain": "false",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "0222eb30f00ea5a5",
"x": 470,
"y": 1840,
"wires": []
},
{
"id": "df10f1ea456a7bfb",
"type": "inject",
"z": "33e0254dbf653b67",
"g": "6fe1584ddeb0c0b7",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "v1/devices/me/telemetry",
"payload": "{\"gatew\":\"admin5555\",\"time\":153034324,\"tag1\":15.32,\"tag2\":0,\"tag3\":43,\"tag4\":\"33\"}",
"payloadType": "json",
"x": 230,
"y": 1820,
"wires": [
[
"d5428b42286436d4"
]
]
},
{
"id": "0222eb30f00ea5a5",
"type": "mqtt-broker",
"name": "",
"broker": "192.168.1.102",
"port": "1883",
"clientid": "22222",
"autoConnect": true,
"usetls": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": false,
"autoUnsubscribe": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
}
]
2、MQTT订阅
使用MQTT in节点连接到MQTT代理并订阅来自指定主题的消息。输出的消息在payload中。
官方介绍
例如获取MQTT数据,并保存为全局变量,供其他数据调用。
[
{
"id": "f20508fd26c6e161",
"type": "change",
"z": "17ce5a554745ca34",
"g": "e30d7ce5ea4d07ac",
"name": "保存获取到的mqtt数据",
"rules": [
{
"t": "set",
"p": "1",
"pt": "global",
"to": "payload.uuid",
"tot": "msg"
},
{
"t": "set",
"p": "2",
"pt": "global",
"to": "payload.facno",
"tot": "msg"
},
{
"t": "set",
"p": "3",
"pt": "global",
"to": "payload.prono",
"tot": "msg"
},
{
"t": "set",
"p": "4",
"pt": "global",
"to": "payload.equipcode",
"tot": "msg"
},
{
"t": "set",
"p": "5",
"pt": "global",
"to": "payload.ip",
"tot": "str"
},
{
"t": "set",
"p": "6",
"pt": "global",
"to": "payload.status",
"tot": "str"
},
{
"t": "set",
"p": "7",
"pt": "global",
"to": "payload.mode",
"tot": "str"
},
{
"t": "set",
"p": "8",
"pt": "global",
"to": "payload.productionquantity",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 540,
"y": 460,
"wires": [
[]
]
}
]
热门推荐
金本位制的衰落与放弃:原因及经济影响
跨境电商低价产品的选择策略与风险考量
空气开关的原理及安装方法
在VSCode中运行C#
如何依规赔付司乘险?这种赔付有哪些标准?
泰国政变频发,为何国王的地位却稳如泰山
今年流行这5组高级感配色,太美了!
北京劳动仲裁律师收费多少?办理退休相关问题是否属于劳动仲裁管辖范围?
读懂“最具幸福感城市”背后的“人民”分量
妆奁的历史和发展
虚幻引擎4蓝图系统完全指南:从入门到实战
什么是哈希算法?大白话通俗介绍什么是哈希算法
太阳花怎么种才存活的快?
停电不通知的损失要赔偿吗
王进喜:铁人精神的永恒丰碑
可以领取失业金的离职原因
君正集团净利三连降现金流减少31亿 年分红27亿杜江涛家族落袋14.4亿
更年期越晚越健康吗?晚于这个年纪,多种癌症风险都会增加!
严禁电动自行车违规停放充电!电动自行车管理,高校何为?
《黄帝内经》五运六气:本气与客气的顺序为什么只有少阳不同?
创新驱动,引领未来:海油工程的新产业规划
科举之后,官员们的职业生涯与未来选择
肺积水的症状与治疗方法
未病先防┃治未病——未来医学发展方向
手机上如何操作房贷利率转换?建行APP操作流程详解
出口电热毯认证指南:全球市场准入要求
肾结晶与肾结石有什么区别
逆向思维在商业中的创新应用
掌握乳果糖的使用技巧,轻松应对便秘问题
期货交易中如何进行套期保值?