mqtt,node-red get-start

Node-red 初识

首先是安装mqtt和node-red服务,我这里的系统是腾讯云轻量服务器,装的是centos7,这里两个服务都是采用的docker部署

一,安装EMQX(官网:https://www.emqx.io/zh

1.1 运行以下命令获取 Docker 镜像:

docker pull emqx/emqx:5.0.26

1.2 运行以下命令启动 Docker 容器

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.26

 

二,安装node-red(官网:https://nodered.org

直接拉取进行运行容器

docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

 

三,使用node-red 来进行mqtt消息订阅发布,过滤

调试工具使用的是mqttx,下载地址:https://mqttx.app/zh

具体操作参考这篇文章,https://www.emqx.com/zh/blog/using-node-red-to-process-mqtt-data 更多节点功能可以参考node-red官网文档学习

效果展示:

1.建流程,部署好

2.使用mqttx调试(过滤器作用,只会对a值变化的消息进行反应,a值发生变化,会往/test/node/out topic中发送一条消息)

向/test/node/in topic发送一条消息(a = 1),/test/node/out topic没有消息

 

3.向/test/node/in topic发送一条消息(a = 2),/test/node/out topic 接收到消息

 

流程导出Json文件

[
  {
       "id": "f6f2187d.f17ca8",
       "type": "tab",
       "label": "Flow 1",
       "disabled": false,
       "info": ""
  },
  {
       "id": "d8837d5b9cc0a55f",
       "type": "mqtt in",
       "z": "f6f2187d.f17ca8",
       "name": "",
       "topic": "/test/node/in",
       "qos": "2",
       "datatype": "auto-detect",
       "broker": "45b44a174fce9755",
       "nl": false,
       "rap": true,
       "rh": 0,
       "inputs": 0,
       "x": 210,
       "y": 260,
       "wires": [
          [
               "866dfd1946fcdc20"
          ]
      ]
  },
  {
       "id": "866dfd1946fcdc20",
       "type": "json",
       "z": "f6f2187d.f17ca8",
       "name": "",
       "property": "payload",
       "action": "obj",
       "pretty": true,
       "x": 370,
       "y": 400,
       "wires": [
          [
               "1ce25d21fcdf4276"
          ]
      ]
  },
  {
       "id": "ab4cf5b8430c6f9d",
       "type": "template",
       "z": "f6f2187d.f17ca8",
       "name": "",
       "field": "payload",
       "fieldType": "msg",
       "format": "handlebars",
       "syntax": "mustache",
       "template": "芜湖起飞 {{payload.a}} !",
       "output": "str",
       "x": 810,
       "y": 400,
       "wires": [
          [
               "781d4cf406864dcc"
          ]
      ]
  },
  {
       "id": "1ce25d21fcdf4276",
       "type": "rbe",
       "z": "f6f2187d.f17ca8",
       "name": "",
       "func": "rbe",
       "gap": "",
       "start": "",
       "inout": "out",
       "septopics": true,
       "property": "payload.a",
       "topi": "topic",
       "x": 590,
       "y": 380,
       "wires": [
          [
               "ab4cf5b8430c6f9d"
          ]
      ]
  },
  {
       "id": "781d4cf406864dcc",
       "type": "mqtt out",
       "z": "f6f2187d.f17ca8",
       "name": "test/node/out",
       "topic": "/test/node/out",
       "qos": "0",
       "retain": "",
       "respTopic": "",
       "contentType": "",
       "userProps": "",
       "correl": "",
       "expiry": "",
       "broker": "45b44a174fce9755",
       "x": 1050,
       "y": 340,
       "wires": []
  },
  {
       "id": "45b44a174fce9755",
       "type": "mqtt-broker",
       "name": "",
       "broker": "your host",
       "port": "1883",
       "clientid": "",
       "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": ""
  }
]
 
posted @ 2023-07-27 13:52  不想被举的栗子  阅读(118)  评论(0编辑  收藏  举报