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": [
[]
]
}
]
热门推荐
糖尿病怕这4种食物,血糖高可以多吃点
横店影视城门票多少钱?门票怎么买最划算?
黄疸,眼黄,比想象中的危险更大
《敖氏伤寒金镜录》中的“将瘟舌”辨证与透顶清神散的应用
曾把“反华”刻在脑门上的东盟,为啥成了中国最大的贸易伙伴?
进入BIOS设置界面的方法
靠吃海带延寿33%?这一成分完胜维C,被称为减肥高手
如何制定运营公司的薪资考核方案?
买车分期如何做出明智选择?做出分期选择时要考虑哪些因素?
道教所向往的十大洞天、三十六小洞天、七十二福地都在哪里?
紫微斗数和八字差好多,了解它们的区别与优势
仓鼠睡觉会闭眼吗?揭秘仓鼠独特的睡眠习性
MySQL分组查询每组最新一条数据的三种实现方法
美股大跌背后颇不寻常 二十年来首次出现指数大跌而多数股票上涨
概率上分析,人类有可能是全宇宙唯一智慧文明吗?
【眼科医院健康科普】流鼻涕,该如何正确擤
天津房产信息查询指南:官方平台、房管局网站及中介查询全攻略
在印尼注册公司对股东和董事的要求详细解析
荷叶茶的多重保健功效:减肥、清热、护心、抗氧化等好处解析
官媒报道,K-8教练机训练海军飞行员:中国造了800多架,250多架出口
尿素、尿素氮、肌酐,傻傻分不清?看这篇
令牌桶算法:如何优雅地处理突发流量?
旅途贵宾:航班退改规定与行李托运指南
如何提升篮球运球技巧?有哪些基本要素和训练方式?
大语言模型懂数学?OpenAI发o1模型,解题高手如何炼成的
中国团队领衔研究获重要进展 让金属“不可能三角”成为可能
南岳山寺庙祈福攻略:从行程规划到注意事项全解析
如何分析大盘的影响因素?这些影响因素如何相互作用?
法院执行悬赏显威力 被执行人主动还款促结案
愚人节:全球狂欢的玩笑盛宴与文化内涵