学无先后,达者为师

网站首页 编程语言 正文

Node-Red 初始编写第一条数据流Hello world

作者:程序猿——小白菜 更新时间: 2022-05-20 编程语言

1.简述

数据流的编辑界面由四部分组成。最左边是已定义的各种node的列表,我们称之为控件区;中间是一个工作区,用户可以拖放node到工作区来创建node的实例,Node-Red为每个node实例赋予了唯一的ID,通过双击node实例来编辑单个实例,通过连接node的in和out创建数据流,node实例会记录out口连线的信息,每条线会记录目标node实例的信息;最右边是debug node的输出区及node的帮助信息显示区。右上角有‘Deploy’(或者“部署”)按钮,用来把编写的程序保存到本地并执行。
  数据流的执行:通过读取用户编辑的数据流信息,可以知道node的类型及可编辑部分的值,据此来创建node的可执行实例;通过读取编辑时连线的信息,可以得到可执行实例间的数据关系,实例间的数据发送和接受是利用Node.js的event模块实现的。
  注意:在Node-Red的根目录下,可以通过执行‘node red.js’运行Node-RED。Node-Red编辑完成的数据流默认保存在flows_.json,可以通过执行‘node red.js flows_.json’,在不启动浏览器的情况下执行已经编辑完成的程序,这个在实际部署的时候非常有用。
  注意,关闭浏览器并不会导致已经部署好的数据流停止执行。在windows系统中,需要停止node-red中的批处理命令,可以输入ctrl+c。在树莓派中,可以命令行中输入node-red-stop。

2.拖拽输入输出的节点

如下图所示
在这里插入图片描述
注意:完成拖拽之后你会发现“inject”变成了“时间戳”,“debug”变成了“msg.payload”,这是正常现象。如果你的计算机或是树莓派运行在英文环境下,理所当然,工作区内的节点的名字会变成英文。原因在于,节点位于控件区的时候,表明它是“某种”节点,这种节点叫做“inject”或是“debug”。拖到工作区以后,它就是“某个”节点,具体到某个节点,当然就是有名字的。前者是抽象的,后者是具体的。为了方便表述,前者可以称之为控件,后者可以称之为节点。如果有面向对象的编程经验,可以很轻松的理解,“inject”与 “时间戳”的关系,其实很像类与对象的关系。

3.修改节点配置

双击时间戳右侧出现如图配置列表
在这里插入图片描述
点击“内容”选项后边的小三角,在下拉菜单选择文字列,并在输入框内输入“hello world”,然后点击完成。如下图所示
在这里插入图片描述
输出节点暂时不修改。

4.连接输入节点和输出节点

在node-red中用“flow”来表示数据的流向,中文意思是“数据流”。这其实是一个很生动的翻译,这个“流”与小溪流的“流”是同一个含义,只不过前者流淌的是数据,而后者流淌的是水。数据要从输入节点到达输出节点,如何连接呢?
很简单,用一条线连接。
  Node-red总是默认数据从左流向右,所以输入节点都有一个特点:数据接口在右侧,见下图标记1;输出节点也有一个特点,数据的接口在左侧,见2;还有一些节点是特殊的,既有输入又有输出,那么左右两侧都有数据的接口,如下图所示
 在这里插入图片描述

5.部署

在这里插入图片描述

6.调试

“inject”节点可以手动输入消息,节点左侧有一个小按钮,点击按钮可以手动注入消息,见按钮1。在点击inject节点的按钮之前,必须确保debug节点是可用的,即按钮必须是“伸出来”的,如按钮2,而不是像按钮3一样“缩回去”,按钮“缩回去”的debug节点不工作。点击按钮可以切换节点是否工作。

原文链接:https://blog.csdn.net/A_awen/article/details/121953605

栏目分类
最近更新