node-red是什么?
封面的图片是官网nodered.org/ 上的介绍。
从用户视点看,它便是个专门用于接入设备的可视化编程的东西。
从技能的视点看,便是基于nodejs开发的事件驱动的低代码编程的规则引擎。
它有哪些优势?
- 快。快到5分钟能够接入一款设备。
- 运用简略。拖拽连线就能完结流程的编列。
- 实时收效。修正完流程,点击布置按钮,立马就能收效。
- 内置协议多。支持HTTP/HTTPS/TCP/MQTT/WEBSOCKET协议。
- 支持扩展。假如内置组件不满足,能够从组件库中下载,假如还不够,支持自定义开发组件。
什么情况下我引荐运用?
这个东西我从19年就开始运用,那时分他们刚发布半年。我总结了只讲最需要的场景,咱们能够考虑运用。假如咱们在其他场景也运用到了,欢迎在评论区告诉我,谢谢!
- 在构建才智城市物联网渠道或运用的时分。
为什么在才智城市物联网渠道或运用的时分特别有用呢?
原因是因为在才智城市构建物联网渠道时,两种对接方法都需要渠道适配,而不是接入方适配。 这两种对接方法分别是
- 设备对接渠道。
- 渠道对接渠道。 为什么都是咱们建造的物联网渠道去适配对方呢?原因只有一个,那便是咱们是后来建造,没有办法要求别人去适配咱们,他们是要改渠道的代码甚至要改设备的代码,凭啥改呢?之前项目给了钱可没有包括这一项。能把数据推送过来就很不错了。
既然改变不了那就接受吧。在这种情况下,高效接入各种设备或渠道推送过来的数据并转换成咱们的标准协议就十分重要了。这个时分你将node-red集成到渠道里边,就能够快速解决这个问题。
这个时分有人就问了,我自己开发一个规则引擎不行么?当然能够了。可是假如你想拿来就用,引荐node-red。
为什么模仿http接口或websocket接口也用得到呢?
原因便是快。只需要三步就能够模仿一个接口。这个因为篇幅原因,下面看完本文的两个比如能够自己摸索一下。
那么怎么运用呢?
下面咱们通过两个示例来讲解一下怎么运用。这个进程其实十分简略。你们一看就会。
- 比如1: 完结将输入的number变量*10并打印日志。
- 比如2: 模仿路灯设备上报随机亮度并将超越90%的亮度的打印日志。
完结将输入的number变量*10并打印日志
下面图是效果图。跟着本文一步步操作既能够完结。
布置能够有两种方法
-
本地装置 本地装置能够参阅一下官网。这里就不多说。引荐docker装置。 nodered.org/docs/gettin…
-
docker装置
确认你的docker是发动的情况下。翻开终端,输入下面指令。因为我的是macbook,所以能够直接翻开终端。
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
指令执行。
当你看到打印上图显现的日志时就意味着你现已成本布置好node-red
了。
本地访问
默认地址是 http://127.0.0.1:1880 翻开之后你能够看到下面这个图。本来还有个英文的注释框。可是我现已删掉了。咱们不要介意,不影响。
开始修正流程
跟着下面的gif操作。
- 将inject组件拖进来,并将触发时的报文修正为
{"number":10}
- 将funciton组件拖进来,并双击翻开写下js脚本
msg.payload.number=msg.payload.number*10
return msg
- 将debug组件拖进来,修正名称为打印日志。
- 将组件连线。
- 点击右上角布置按钮。
- 点击inject组件的前方的小按钮就能触发。
到这里就完结了第一个比如。
模仿路灯设备上报随机亮度并将超越90%的亮度的打印日志
跟着下面的gif操作。
-
将inject组件拖进来,并将触发时的报文的key写入
payload.brightness
,value类型选择为表达式并填入$random()*100
。表明随机生成100以内的数字。 -
将switch组件拖进来,并双击翻开,将在属性里边
payload
后面添加.brightness
,并将条件设置为> 60
。 -
将debug组件拖进来,修正名称为亮度过高日志。
-
点击右上角布置按钮。
-
布置成功后,点击inject组件的前方的小按钮就能触发。要多点几次,比及数字>60后就能够看到日志打印在右侧控制台。
至此完结。
总结
当在才智城市领域的物联网渠道或运用的项目中,引荐运用node-red
进行集成来解决快速接入多源异构设备的问题。