树莓派3B搭建NODE-RED运行环境并构建数据流

树莓派搭建Node-RED环境

树莓派自2015年开始是默认就带NODE-RED的,但是如今已是2018年:)自带的版本已经很老了,可通过下面的命令进行自动升级NODE.JS和NODE-RED

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
# 如果出现失败请多尝试几次 # 之后进入如下界面,展示更新进度
Stop Node-RED
Remove old version of Node-RED
Remove old version of Node.js
Install Node.js
Clean npm cache
Install Node-RED core
Move global nodes to local
Install extra Pi nodes
Npm rebuild existing nodes
Add menu shortcut
Update systemd script
Update update script Any errors will be logged to /var/log/nodered-install.log

一段时间过后,升级完毕:

All done.
You can now start Node-RED with the command node-red-start
or using the icon under Menu / Programming / Node-RED
Then point your browser to localhost:1880 or http://{your_pi_ip-address}:1880

根据提示我么可以知道,通过如下的命令启用NODE-RED服务,并且访问树莓派地址并加上1880端口访问WEB下的NODE-RED:

$ node-red-start
Start Node-RED Once Node-RED has started, point a browser at http://192.168.2.7:1880 # 这里是树莓派分配到IP地址
On Pi Node-RED works better with the Firefox or Chrome browser Use node-red-stop to stop Node-RED
Use node-red-start to start Node-RED again
Use node-red-log to view the recent log output
Use sudo systemctl enable nodered.service to autostart Node-RED at every boot
Use sudo systemctl disable nodered.service to disable autostart on boot To find more nodes and example flows - go to http://flows.nodered.org Starting as a systemd service.
Started Node-RED graphical event wiring tool..
12 Apr 04:33:27 - [info]
Welcome to Node-RED

然后我们打开浏览器访问web网页,能够看到如下的界面:



Node-RED UI——显示节点选择板(左)、流的编辑界面(中心)和输出窗格(右)

左侧里面全是node-red包含的节点,而节点就是node-red的基本单位,它包含了生成数据的节点、处理数据的节点以及最终输出的节点。

中间是我们的工作区,在该区域内,我们按照正确的形式构建节点,来形成一套数据流生成、处理过程。

右侧是输出窗格可以切换信息和调试选项卡等。选择信息后,将显示所选节点的文档。当调试被选中时,它将显示调试节点的信息、错误和警告。

作为Node-red最基本的单位:节点。在Node-red中主要分为3类:

1、输入节点(例如inject)

2、处理节点(例如function)

3、输出节点(例如debug)

输入节点

输入节点允许数据输入到整个流工作空间中。它们至少有一个输出(端点由右边的小灰色方块表示)。同时也可以将其他服务数据连接到输入节点,例如TCP、WebSockets、UDP等节点,或利用手动输入数据到一个流之中。

处理节点

处理节点主要功能是处理数据。它们有一个输入端点和一个或多个输出端点。我们通常使用function节点来处理收到的数据。当然它页可以转换数据类型(例如:JSON、CSV、XML)节点。

输出节点

输出节点允许在Node-RED的流之外发送数据。它们的左侧有一个输入端点。使用输出节点将数据发送到其他服务,TCP等或者使用调试节点输出到调试窗进行观察。

而对于各种数据来说,其本质的最简单的数据结构如下:

msg={
payload:”负载数据”
}

即每一条数据都会有其本身的负载数据。

讲完了基础的知识,我们来通过动手实践来更加直观的了解node-red

构建时间戳流

这个例子十分简单,我们不需要任何的处理节点,只需要一个输入和一个输出就可以了:

我们首先从左侧拉取一个inject输入节点,放置到工作空间中,它会自动变为默认的时间戳节点,单击这个时间戳节点,查看右侧信息栏,我们能看到这个节点的描述:这个时间戳节点能够生成自1970年1月1号以来的所过的毫秒数



通过双击该节点我们还可以看到更加具体的细节:

接下来我们拉取一个debug节点到工作空间中,它会自动转变为msg.payload节点,这个节点就是会将数据直接输出:



接下来我们连接两个节点,同时可以看到每个节点上面都有一个小蓝点,意味着我们的节点只放置到了工作空间中,但是并没有部署:



点击右上角的部署之后,我们发现小蓝点消失了。接下来我们让时间戳节点产生时间数据并输出查看。首先点击右侧的调试窗口,然后点击时间戳节点左侧的蓝色矩形按钮:



点击过程中我们可以看到提示我们注入成功,并且在右侧的还能看到输出的数据:



此外,当我们双击debug节点,然后在输出那一栏选择“完整消息”,我们发现输出节点变成了“msg”即整个msg消息体,同时再次部署并点击时间戳产生数据,我们发现输出的信息变得更加完整:

最后,让我们产生编程界的经典输出:Hello, World!

首先双击“注入节点”,我们不选时间戳类型了,而是替换为文字列:



再次部署并点击消息注入按钮(就是蓝色矩形)

得到如下的结果:

至此,我们成功的使用Node-RED构建了我们的第一条简单的流。

树莓派3B搭建NODE-RED运行环境并构建数据流的更多相关文章

  1. Docker搭建Java Web运行环境

    1. 前提条件 安装了Docker的64位Linux 操作系统 Linux操作系统镜像 Linux版本的JDK压缩包 Linux版本的Tomcat压缩包 2. 启动容器 容器是在镜像的基础上来运行的, ...

  2. 搭建ASP JSP运行环境

    搭建JSP 服务器 Java + HTML 的运行环境 服务端搭建ASP.NET运行环境

  3. 快速搭建 Node.js 开发环境以及加速 npm

    如何快速搭建 node 开发环境 npm 超慢 github 无法打开的问题 于是我觉得应该写一篇文章解答所有这些起步问题,让新同学也能顺顺利利入门. 快速搭建 Node.js 开发环境 如果你想长期 ...

  4. 使用 Docker 搭建 Java Web 运行环境

    黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...

  5. 转:使用 Docker 搭建 Java Web 运行环境

    原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...

  6. windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)

    推荐几款一键快速搭建PHP本地运行环境的好工具(含php7.0及apache,nigix,mysql) 首推phpstudy2016和wampServer3.0.6     理由支持php7.0 目前 ...

  7. [scrapy]使用Anaconda来搭建scrapy的运行环境。官方推荐方法。

    1.官方文档推荐. 2.一般情况下多数人使用框架的时候使用的是,安装pywin32,和openssl来搭建scrapy的运行环境.但是由于,在这样搭建环境中会遇到各种各样的问题,诸如:下载的版本有问题 ...

  8. 【转】使用nvm快速搭建 Node.js 开发环境

    原文链接:http://www.cnblogs.com/shuoer/p/7802891.html 快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本 ...

  9. linux(ubuntu) 搭建java程序运行环境

    一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...

随机推荐

  1. 简析时序数据库 InfluxDB

    时序数据基础 时序数据特点 时序数据TimeSeries是一连串随时间推移而发生变化的相关事件. 以下图的 CPU 监控数据为例,同个 IP 的相关监控数据组成了一条时序数据,不相关数据则分布在不同的 ...

  2. vue3.0入门(一)

    前言 最近在b站上学习了飞哥的vue教程 学习案例已上传,下载地址 使用方式 使用在线cdn 下载js文件并自托管,引入到项目后使用 使用npm安装后,用cli来构建项目 声明式渲染 Vue2需引入v ...

  3. C# - 习题06_从键盘输入半径r,求出圆的面积

    时间:2017-08-24 整理:byzqy 题目:编写一个程序,定义常量 Pi = 3.14159265 , 从键盘上输入半径 r ,求出圆的面积. 代码如下: 1 using System; 2 ...

  4. 微信小游戏 Three.js UI 2D text 简单方案

    在微信小游戏中使用 THREE.js 引擎,没有合适的 UI 库可用,只能自己动手.图片啥的都还好,text 不好弄.text 要计算 width 和 height,不然事件响应范围不对. funct ...

  5. 记一次 .NET 某机械臂智能机器人控制系统MRS CPU爆高分析

    一:背景 1. 讲故事 这是6月中旬一位朋友加wx求助dump的故事,他的程序 cpu爆高UI卡死,问如何解决,截图如下: 在拿到这个dump后,我发现这是一个关于机械臂的MRS程序,哈哈,在机械臂这 ...

  6. Django+Ansible构建任务中心思路

    Ansible作为老牌的自动化运维工具,由Python开发,应用广泛,但其默认只提供了命令行下的使用方式,好在提供有完善的API支持二次开发,可以很方便的集成到我们的自动化运维系统中 最近一个朋友跳槽 ...

  7. set类型数据的操作指令

    集合无序,无下标. 1. 也可以在集合上继续添加元素. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

  8. 单片机学习(十二)1-Wire通信协议和DS18B20温度传感器

    目录 一.DS18B20 1. DS18B20简介 2. 电路原理图 3. 内部结构 内部完整结构框图 存储器结构 二.单总线(1-Wire BUS) 1. 单总线简介 2. 电路规范 3. 单总线的 ...

  9. noip模拟21

    开题发现这场考过,定睛一看,发现是省选前最后一场,没改过呀--但是还是讲武德的赛时没提交 A. Median 神奇之处在于 \(1e7\) 个质数居然能线性筛出来~ 那么 \(S2\) 可以直接筛出来 ...

  10. QT开发实战一:图片显示

    测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 QT版本:Qt-4.7.3 Tslib版本:tslib-1 ...