物联网产品视野:你不了解的node-red

node-red是什么?

封面的图片是官网nodered.org/ 上的介绍。

从用户角度看,它就是个专门用于接入设备的可视化编程的工具
从技术的角度看,就是基于nodejs开发的事件驱动的低代码编程的规则引擎。

它有哪些优势?

  1. 快。快到5分钟可以接入一款设备。
  2. 使用简单。拖拽连线就能完成流程的编排。
  3. 实时生效。编辑完流程,点击部署按钮,立马就能生效。
  4. 内置协议多。支持HTTP/HTTPS/TCP/MQTT/WEBSOCKET协议。
  5. 支持扩展。如果内置组件不满足,可以从组件库中下载,如果还不够,支持自定义开发组件。

什么情况下我推荐使用?

这个工具我从19年就开始使用,那时候他们刚发布半年。我总结了只讲最需要的场景,大家可以考虑使用。如果大家在其他场景也使用到了,欢迎在评论区告诉我,谢谢!

  1. 在构建智慧城市物联网平台或应用的时候。

为什么在智慧城市物联网平台或应用的时候特别有用呢?

原因是因为在智慧城市构建物联网平台时,两种对接方式都需要平台适配,而不是接入方适配。 这两种对接方式分别是

  • 设备对接平台。
  • 平台对接平台。

为什么都是我们建设的物联网平台去适配对方呢?原因只有一个,那就是我们是后来建设,没有办法要求别人去适配我们,他们是要改平台的代码甚至要改设备的代码,凭啥改呢?之前项目给了钱可没有包括这一项。能把数据推送过来就很不错了。

既然改变不了那就接受吧。在这种情况下,高效接入各种设备或平台推送过来的数据并转换成我们的标准协议就非常重要了。这个时候你将node-red集成到平台里面,就可以快速解决这个问题。

这个时候有人就问了,我自己开发一个规则引擎不行么?当然可以了。但是如果你想拿来就用,推荐node-red。

为什么模拟http接口或websocket接口也用得到呢?

原因就是快。只需要三步就可以模拟一个接口。这个由于篇幅原因,下面看完本文的两个例子可以自己摸索一下。

那么怎么使用呢?

下面我们通过两个示例来讲解一下怎么使用。这个过程其实非常简单。你们一看就会。

  1. 例子1: 实现将输入的number变量*10并打印日志。
  2. 例子2: 模拟路灯设备上报随机亮度并将超过90%的亮度的打印日志。

实现将输入的number变量*10并打印日志

下面图是效果图。跟着本文一步步操作既可以实现。

image.png

部署可以有两种方式

  • 本地安装

本地安装可以参考一下官网。这里就不多说。推荐docker安装。 nodered.org/docs/gettin…

  • docker安装

确定你的docker是启动的情况下。打开终端,输入下面命令。由于我的是macbook,所以可以直接打开终端。

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

复制代码

命令执行。

image.png

image.png

当你看到打印上图显示的日志时就意味着你已经成本部署好node-red了。

本地访问

默认地址是 http://127.0.0.1:1880 打开之后你可以看到下面这个图。原本还有个英文的注释框。但是我已经删掉了。大家不要在意,不影响。

image.png

开始编辑流程

跟着下面的gif操作。

202203262251.gif

  1. 将inject组件拖进来,并将触发时的报文修改为
{"number":10}
复制代码
  1. 将funciton组件拖进来,并双击打开写下js脚本
msg.payload.number=msg.payload.number*10
return msg
复制代码
  1. 将debug组件拖进来,修改名称为打印日志。
  2. 将组件连线。
  3. 点击右上角部署按钮。
  4. 点击inject组件的前方的小按钮就能触发。

到这里就完成了第一个例子。

模拟路灯设备上报随机亮度并将超过90%的亮度的打印日志

跟着下面的gif操作。

Screen-2022-03-27-001745.gif

  1. 将inject组件拖进来,并将触发时的报文的key写入payload.brightness,value类型选择为表达式并填入$random()*100。表示随机生成100以内的数字。

  2. 将switch组件拖进来,并双击打开,将在属性里面payload后面增加.brightness,并将条件设置为> 60

  3. 将debug组件拖进来,修改名称为亮度过高日志。

  4. 点击右上角部署按钮。

  5. 部署成功后,点击inject组件的前方的小按钮就能触发。要多点几次,等到数字>60后就可以看到日志打印在右侧控制台。

至此完成。

总结

当在智慧城市领域的物联网平台或应用的项目中,推荐使用node-red进行集成来解决快速接入多源异构设备的问题。

物联网视野Logo.png

猜你喜欢

转载自juejin.im/post/7079449350534856711