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”
这里写图片描述

yummy说电子 CSDN认证博客专家 单片机 arm开发 驱动开发
我开通公众号了,yummy说电子,以后多数的创作会在公众号更新,写的会更加随意逗比一点,看看能不能靠流量挣个奶茶钱,欢迎关注,ღ( ´・ᴗ・` )比心
<p> 本课程通过一步步的实践演示,带领大家在开源项目的基础上,搭建随心所欲的物联网与智能家居平台。在过程实践中,大家会学习与应用到linux、python、云服务、图像识别、智能语音、单片机、数据库、前端开发等多方面的知识,帮助大家成为IT的全栈工程师。以实战为导向结合物联网各类知识要点学习经典框架进行项目实战,快速掌握智能家居、家庭自动化、物联网等必备基础与实战技巧。带你从零玩转智能家居,了解物联网的整体格局,将零散的知识点通过项目快速串联提升自身成就感 </p> <p> 【更新规则】<br />  视频与参考文档内容,随时更新,与最新的软件版本/云服务环境匹配。 </p> <p> <br /> </p> <p> 【课程特色】<br /> 1.通俗易懂,快速入门<br /> 对物联网、智能家居学习经典实践项目结合技术推导进行形象解释,实例演示。<br /> 2. Python主导,实用高效<br /> 使用物联网领域最主流语言Python及其homeassistant 开源家庭自动化框架作为课程核心工具。<br /> 3. 案例为师,实战护航<br /> 基于真实操作展示,从零开始结合homeassistant与python自创组件、树莓派或者nas完成整个案例实战。<br /> 4. 持续更新,一劳永逸<br /> 会伴随homeassistant的更新与DIY实战项目课程会支持更新下去,逐步加入更多算法与案例。 </p> <p> <br /> </p> <p> 【联系我们】<br /> 官方网站:https://www.hachina.io<br /> QQ学习讨论群(仅限学员加入):741140729 </p> <p> <img src="https://img-bss.csdn.net/201907040403375571.jpg" alt="" /> </p> <p> <br /> </p>
相关推荐
<p> <span style="color:#313d54;font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;font-size:16px;background-color:#ffffff;">Node-RED是工业网物联网的重要组成部分,我最开始接触Node-RED,也算是一个偶然的机会吧,上班后领导安排我的第一个任务就是调研一下Node-RED,我之后上网查了一下,那个时候网上相对于Node-RED的资料也比较少,只知道它是IBM公司的一个开源项目。直到最近,发现许多大公司的产品都支持Node-RED,比如西门子公司的IoT2000,研华公司的WISE PaaS 网关,美国OPTO 22等设备中都安装了Node-RED,表明它在工业物联网和控制中已经广泛应用了。</span> </p> <p> <img src="https://img-bss.csdnimg.cn/202010200935441926.png" alt="" width="1316" height="524" /> </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> 那么工业物联网为什么要用它?它又处于工业物联网那个层次?它具有哪些特性?它帮助物联网解决了什么问题?为什么说它是柔性动态可重构的解决方案呢? </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> 本门课程,老师将带领你从Node-RED的发展,工业物联网定位开始讲解,并带领着大家进行手把手安装Node-RED,实际操作演练Node-RED,并搭建一个物联网小平台,给大家带来更好的学习效果。 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> <img src="https://img-bss.csdnimg.cn/202010200936289051.png" alt="" width="1841" height="948" /> </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> <img src="https://img-bss.csdnimg.cn/202010200936561564.png" alt="" width="1920" height="977" /> </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> 为了能够让小伙伴们快速了解本门课程的结构,本门课程从以下几个方面展开: </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED入门 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED安装与配置 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED教学实战 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED的优势与不足 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED能为我们带来什么 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED总结与展望 </p>
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页