Node-RED系列文章目前已经写了20篇,介绍了Node-RED的安装以及默认安装的一些基本节点的使用,作为物联网的一个可视化拖动的流程,Node-RED的确实很容易上手。还没开始学习的同学可以先看下我以前的文章。
Node-RED教程(一):Node-RED的介绍与安装
Node-RED教程(二):Node-RED的面板的操作
Node-RED教程(三):Node-RED公共节点的使用
Node-RED教程(四):Node-RED函数节点的使用
Node-RED教程(五):Node-RED序列节点的使用
Node-RED教程(六):Node-RED解析节点的使用
Node-RED教程(七):Node-RED存储节点的使用
Node-RED教程(八):Node-RED网络节点的使用
Node-RED教程(九):Node-RED面板dashboard节点的使用
Node-RED教程(十):Node-RED面板dashboard节点的配置
Node-RED教程(十一):Node-RED面板chart节点的使用案例
Node-RED教程(十二):定制化节点教程
Node-RED教程(十三):三种方式安装启动安装Node-Red
Node-RED教程(十四):定制Node-RED的UI
Node-RED教程(十五):工业仪表盘开发
Node-RED系列(十七):使用自定义UI节点网与flow交互
Node-RED系列(十八):配置静态目录,使用echarts.js,three.js,D3.js
Node-RED系列(十九):工业多图标面板制作
Node-RED系列(二十):一文让你彻底了解物联网平台Node-RED
这是我的第21篇Node-RED系列的文章,这一篇文章我们来说一下,如何在node-red中使用mqtt,以及简单搭建一个可用的mqtt 中转服务。
安装 mqtt
之前我有介绍过mqtt 这种协议,一种轻量级基于代理的发布/订阅的消息传输协议。非常适合物联平台的数据传输。
在mqtt协议中最重要的是 一个中间代理的服务。 所有的消息都经过它来转发。我们要使用mqtt也不行要启动一个mqtt的代理(Broker)(服务器)那么我们要使用mqtt比较需要先安装代理服务。
开源的mqtt代理服务有二个 一个是eqtt, 一个是 mosquitto emqx官网 https://www.emqx.io/
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析](https://cms-pic.yhzz.com.cn/1682637820878.jpg)
github 有 8.4k的星
https://github.com/emqx/emqx mosquitto官网 https://mosquitto.org/
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析1 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析1](https://cms-pic.yhzz.com.cn/1682637821074.jpg)
github地址 4.9k
https://github.com/eclipse/mosquitto 安装 eqtt在看到两个项目的github 星之后,我毅然决然地选择了emqx
世界上软件最简单的安装方式是 docker
docker run -d –name emqx -p 8082:18083 -p 8083:1883 emqx/emqx:latest一句话安装emqx
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析2 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析2](https://cms-pic.yhzz.com.cn/1682637821127.jpg)
安装就到这里。 下面介绍使用
node-red流
我们演示的流很简单,一个订阅,一个发布
下面详细介绍。
首先使用这个两个节点
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析4 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析4](https://cms-pic.yhzz.com.cn/1682637821213.jpg)
mqtt in 与 mqtt out 这两个节点一个是用于接受消息(mqtt in),一个是用于发布消息(mqtt out)
首先将 mqtt out 拖入编辑面板, 双击进行配置。
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析5 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析5](https://cms-pic.yhzz.com.cn/1682637821256.jpg)
点击服务端下编辑图标,进入mqtt 代理服务器的配置。这里也可以选择你已经配置好的服务端。
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析6 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析6](https://cms-pic.yhzz.com.cn/1682637821298.jpg)
点击编辑图标后
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析7 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析7](https://cms-pic.yhzz.com.cn/1682637821348.jpg)
输入服务端的地址,与端口。端口默认是1883, 我们emqx 服务的端口是8083
如果mqtt代理服务有账号密码,需要在安全的tab下设置。 此外可以在 消息的tab下设置
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析8 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析8](https://cms-pic.yhzz.com.cn/1682637821395.jpg)
链接, 断开,意外断开是的消息发送。
mqtt borker 配置好后,我们就可以在节点之前添加一个触发器。
使用 inject节点每一个消息都有一个话题 topic ,我们可以发送该话题的消息,其他客户端可以订阅该话题的消息。
![Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析9 Node-RED系列(二一):安装mqtt环境,简单使用案例,mqtt节点解析9](https://cms-pic.yhzz.com.cn/1682637821438.jpg)
这里就是简单的配置了。
这里只是 触发节点,订阅消息我们使用mqtt in 加 debug 节点来 打印消息的主题一个mqtt in 可以订阅多个话题的消息
topic 字符串
MQTT主题,使用/作为层次结构分隔符。qos 数值
QoS服务质量:0, 最多一次; 1, 最少一次; 2, 只一次。retain 布尔值
值为true时表示消息已保留且可能是旧的。使用
配合好节点后,一定要记得发布,要不然是不会生效的。
如果配置没有错误,那么在部署后,在mqtt 节点下,会有绿色的圆点和字体, 已链接
这就表示一切正常。使用截图
完整的数据流
[{“id”:”a3b91394.603b6″,”type”:”tab”,”label”:”流程 14″,”disabled”:false,”info”:””},{“id”:”789f6592.37cd1c”,”type”:”mqtt in”,”z”:”a3b91394.603b6″,”name”:”mqtt(发送)”,”topic”:”fizz”,”qos”:”0″,”datatype”:”auto”,”broker”:”b1c1c277.121e3″,”x”:620,”y”:520,”wires”:[[“e59322a2.34d3d”]]},{“id”:”e243e1e3.3ce5f”,”type”:”mqtt out”,”z”:”a3b91394.603b6″,”name”:”mqtt(输出)”,”topic”:”fizz”,”qos”:”1″,”retain”:””,”broker”:”b1c1c277.121e3″,”x”:630,”y”:380,”wires”:[]},{“id”:”eaa95ac7.892488″,”type”:”inject”,”z”:”a3b91394.603b6″,”name”:”fizz”,”props”:[{“p”:”payload”},{“p”:”topic”,”vt”:”str”}],”repeat”:””,”crontab”:””,”once”:false,”onceDelay”:0.1,”topic”:”fizz”,”payload”:”{\”name\”:\”pmc\”,\”age\”:12}”,”payloadType”:”json”,”x”:190,”y”:380,”wires”:[[“e243e1e3.3ce5f”]]},{“id”:”e59322a2.34d3d”,”type”:”debug”,”z”:”a3b91394.603b6″,”name”:””,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”false”,”statusVal”:””,”statusType”:”auto”,”x”:900,”y”:520,”wires”:[]},{“id”:”b1c1c277.121e3″,”type”:”mqtt-broker”,”name”:”鲲鹏mq”,”broker”:”210.22.22.150″,”port”:”1493″,”clientid”:””,”usetls”:false,”compatmode”:false,”keepalive”:”60″,”cleansession”:true,”birthTopic”:””,”birthQos”:”0″,”birthPayload”:””,”closeTopic”:””,”closeQos”:”0″,”closePayload”:””,”willTopic”:””,”willQos”:”0″,”willPayload”:””}]结语
mqtt 学好了,可以在物联行业横着走,手动狗头