node-red教程2 第一条数据流

2.1 Node-RED的结构框架

  Node-Red由两部分组成。一部分是用户可见的数据流的编辑界面,另一部分是数据流的执行。刚刚在PowerShell中打开node-red时,我们已经见过了数据流的执行提示;打开浏览器访问http://localhost:1880,就可以看到Node-Red的编辑界面。
这里写图片描述
  数据流的编辑界面由四部分组成。最左边是已定义的各种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.2 hello world

  所有与编程相关的教程总是喜欢从hello world开始,node-red也不例外。作为可视化的编程工具,nod-red的hello world与其它编程语言有些不一样。

2.2.1 拖拽输入与输出节点

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

2.2.2 修改节点的配置

  双击“时间戳”,在屏幕的右侧会弹出如下窗口
这里写图片描述
  点击“内容”选项后边的小三角,在下拉菜单选择文字列,并在输入框内输入“hello world”,然后点击完成。
这里写图片描述
  可以观察到,工作区中的“时间戳”变成了“hello world”。
这里写图片描述
  输出节点暂时不修改。

2.2.3 连接输入与输出节点

  在node-red中用“flow”来表示数据的流向,中文意思是“数据流”。这其实是一个很生动的翻译,这个“流”与小溪流的“流”是同一个含义,只不过前者流淌的是数据,而后者流淌的是水。数据要从输入节点到达输出节点,如何连接呢?
很简单,用一条线连接。
  Node-red总是默认数据从左流向右,所以输入节点都有一个特点:数据接口在右侧,见下图标记1;输出节点也有一个特点,数据的接口在左侧,见2;还有一些节点是特殊的,既有输入又有输出,那么左右两侧都有数据的接口,见3。
这里写图片描述
  注意,这里的输入与输出都是相对于“整个数据流”来说的。其实单单对于输入节点来说,它负责向外输出一个数据,比如“hello world”。那么为什么把它叫做输入节点呢?因为对于整个数据流来说,输入节点为数据流输入了一个“hello world”信息,所以称之为输入节点。
  使用鼠标按住左键,从上图接口1连接到接口2,即可完成输入输出的节点连接。用一条线连接输入输出节点,大概是最简单最直观的构建数据流的方式了。
这里写图片描述

2.2.4 部署

  我们发现节点的右上角有一个蓝色的圆点,这个圆点的意思是,此节点还没有部署和保存。部署按钮位于工具栏,在浏览器的右上角。虽然名字叫做部署,但其实有部署和保存两种功能。保存的含义相信大家都能理解,部署对于没接触过的人可能就比较陌生了。部署通俗来说就是“让它们工作”,我们在工作区放置了一些节点,通过部署按钮,可以让它们工作起来。
  其下拉菜单中还有一些别的选项如下。
这里写图片描述
  点击部署按钮,如果数据流与节点都没有问题,会有“部署成功”的弹窗提示。节点上蓝色的圆点也消失了。
这里写图片描述

2.2.5 调试

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

  点击按钮1,屏幕上方会提示:“成功注入:hello world”
  在屏幕右侧有调试窗口,窗口内可以看到一条消息,且内容正好是输入节点的信息:“hello world”
这里写图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学习Node-RED对于零基础小白来说可能是一项挑战,但是只要按照步骤逐渐学习,对于第一条数据流来说并不复杂。 首先,我们需要了解Node-RED的基本概念和界面结构。在Node-RED中,每个数据流都由一个或多个称为“节点”的功能模块组成,节点之间通过连接线(线性)来传递数据流。我们可以理解节点是执行特定任务的小工具。 要创建第一个数据流,首先打开Node-RED的编辑界面。在界面左侧的面板中选择一个适当的节点作为起始节点,例如“Inject”节点。将该节点拖放到主编辑区,并通过点击连接到其他节点的输入端口来创建连接线。 接下来,选择一个目标节点,例如“Debug”节点,该节点用于在调试过程中显示数据。同样,将该节点拖放到主编辑区,并使用连接线将其与起始节点连接起来。 然后,点击起始节点,可以在右侧面板中设置该节点的功能,例如选择需要发送的消息和发送时间间隔等。 最后,点击编辑界面右上方的“部署”按钮,以保存并部署我们的第一条数据流。在底部状态栏中,我们可以看到数据流的当前状态和任何错误信息。 当我们部署数据流后,起始节点将会按照预设的时间间隔发送消息到目标节点,并显示在Debug节点的输出栏中。 学习Node-RED需要一定的时间和经验积累,建议学习者通过参考官方文档、教程和示例来更深入地了解该技术。同时,多动手实践,通过尝试构建不同的数据流,逐渐熟悉Node-RED的各种功能和节点。 总之,零基础小白学习Node-RED第一条数据流并不复杂,关键是要有耐心和坚持,不断积累经验和知识,才能在Node-RED中发挥出更大的创造力和效益。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值