node-red 安装和使用实例

Node-RED是一个可视化物联网编排工具,可基于浏览器的流程编辑器连接设备、服务器和 API 应用。

本文介绍在Ubuntu18.04 上的安装和使用。

详细的官方文档可以查看https://nodered.org/docs/

1 安装

1.1安装nodejs

$sudo apt-get install nodejs

1.2 安装cnpm

Npm资源在国外,比较慢,所以安装cnpm并使用taobao镜像

$npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm安装完成后,默认会放在/local/npm/bin/cnpm -> ../lib/node_modules/cnpm/bin/cnpm

直接运行cnpm会报找不到命令,这时需要在/usr/bin/目录下创建一个软连接,运行:

$ sudo ln -s /local/npm/lib/node_modules/cnpm/bin/cnpm /usr/bin/cnpm

这时就可以运行cnpm了。

1.3安装node-red

$cnpm install -g node-red

安装完成后,默认也会放在/local/npm/bin/ 下,直接运行会报错。所以需要创建软连接:

$sudo ln -s /local/npm/lib/node_modules/node-red/red.js /usr/bin/node-red

$sudo ln -s /local/npm/lib/node_modules/node-red/bin/node-red-pi /usr/bin/node-red-pi

这样就可以启动node-red 了

运行: $node-red

默认会监听1880端口

在浏览器输入http://127.0.0.1:1880就可以使用了,界面如下图所示:

2 使用

2.1 例子1:创建一个Flow

使用Inject node,Debug node, Function node 创建一个简单的数据流,功能时将时间信息输出到debug里。

1 从左侧栏里拖动一个inject node到工作区

2 拖动一个debug node到工作区

3 拖动一个function node 到工作区

4 将三个node连接起来

5 双击function node

会弹出如下的编辑框,在代码栏里粘贴如下的代码,然后点击“Done”button。

// Create a Date object from the payload
var date = new Date(msg.payload);
// Change the payload to be a formatted Date string
msg.payload = date.toString();
// Return the message so it can be sent on
return msg;

 

6 deploy

首先点击”Deploy” 按钮,应用此flow。然后点“Debug”来显示debug 的信息。

最后点击Inject node的按钮,每点击一次,就会在右侧的debug栏输出一条信息。

2.2 导入/导出Flow

一个Flow创建好之后,可以将其导出,格式为json文件。这样,别人就可以使用了。

2.2.1导出Flow

1 首先点击功能栏,在弹出的列表中点击“Export”,如下图所示。

 

2 点击“export”后,会弹出如下窗口

点击“Download”按钮就可以将配置文件保存本地。

 

2.2.2 导入Flow

如果别人保存好的flow配置文件可以直接导入到node red中使用。

1首先点击功能栏,在弹出的列表中点击“Import”,如下图所示。

 2 点击“Import”后会弹出对话框,如下图:

3 然后点击“select a file to import”选择想要导入的json文件,最后点击“import”就完成了导入操作

4 最后点击主页面的“Deploy”就可以使用了。

2.3 例子2: 从website获取CSV文件并解析

这个例子比较复杂一些:从一个网站获取CSV文件,进行解析,根据数据做一些处理。

需要用到Inject node,  Http request node, csv node, switch node, change node 和debug node.

 

1 添加一个Inject node

双击node,repeat改为interval, 值改为2 minutes,如下图。

这样,每2分钟会触发一次操作。

 

2 添加一个http request node

双击node,将URL改为:

https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_month.csv

然后点击“done”

3 添加CSV node

双击此node, 勾选 ‘First row contains column names’,其他选项保持不动。

 

4 添加debug node

添加完debug node之后,将上面四个node按照如下图所示的顺序连接起来。

 

5 添加switch node

双击此node,配置msg.payload.mag属性,设置条件为 “>=” ,选择类型为“number”, 值可以填任何值,这里填了6.7,意思是如果上一个node 来的值>=6.7的话,会满足此switch node条件,然后会被传到下一个node。

 

6 添加一个change node

双击此node,设置msg.payload的string内容为“TooHighValue”

 

7 再添加一个debug node

将switch node, change node和debug node 按如下图的顺序连接起来。

 

8 Deploy

Deploy之后,在debug输出中如果从URL取得的值大于6.7,则会输出TooHighValue字符串。

 

 

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node-RED是工业网物联网的重要组成部分,我最开始接触Node-RED,也算是一个偶然的机会吧,上班后领导安排我的第一个任务就是调研一下Node-RED,我之后上网查了一下,那个时候网上相对于Node-RED的资料也比较少,只知道它是IBM公司的一个开源项目。直到最近,发现许多大公司的产品都支持Node-RED,比如西门子公司的IoT2000,研华公司的WISE PaaS 网关,美国OPTO 22等设备中都安装Node-RED,表明它在工业物联网和控制中已经广泛应用了。 那么工业物联网为什么要用它?它又处于工业物联网那个层次?它具有哪些特性?它帮助物联网解决了什么问题?为什么说它是柔性动态可重构的解决方案呢? ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 本门课程,老师将带领你从Node-RED的发展,工业物联网定位开始讲解,并带领着大家进行手把手安装Node-RED,实际操作演练Node-RED,并搭建一个物联网小平台,给大家带来更好的学习效果。  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 为了能够让小伙伴们快速了解本门课程的结构,本门课程从以下几个方面展开:Node-RED入门Node-RED安装与配置Node-RED教学实战Node-RED的优势与不足Node-RED能为我们带来什么Node-RED总结与展望
Node-RED是一个开源的流程编程工具,使用JavaScript进行编写。在Node-RED中,可以使用全局变量(global context)来在不同的流程节点之间共享数据。 要使用Node-RED的全局变量,需要以下几个步骤: 1. 在Node-RED的工作空间中找到右上角的"菜单按钮",点击后选择"Manage palette"。 2. 在"Manage palette"页面中,选择"Install"选项卡,然后搜索"node-red-contrib-contextbrowser"插件并点击"Install"按钮进行安装。 3. 安装完毕后,在左侧的工具箱中可以找到名为"context browser"的节点,将此节点拖动到工作区中。 4. 在工作区中,将context browser节点连接到需要使用全局变量的节点上(例如:inject节点)。 5. 双击context browser节点,该节点会显示当前工作区中定义的所有全局变量。 6. 在节点的配置属性中,可以设置全局变量的名称和默认值。 7. 在输入节点或其他需要使用全局变量的节点中,可以使用"msg.global"来访问全局变量的值。 例如:在一个Function节点中,可以通过msg.global.variable_name来访问全局变量的值,并进行相应的处理。 需要注意的是,全局变量是在整个Node-RED实例中共享的,因此可以在不同的流程中使用相同的全局变量。但是需要谨慎使用全局变量,避免不必要的复杂性和混乱。同时,建议在使用全局变量时进行正确的命名和初始化,以避免因为变量名冲突或未定义而引发问题。 总结来说,使用Node-RED的全局变量可以通过安装插件、配置节点和访问变量的方式来实现。全局变量的使用可以方便数据在不同的节点之间进行共享和传递,提高流程的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值