Node-RED 是一个强大的工具,用于可视化编程和自动化,广泛用于连接硬件设备、API 和在线服务。本教程将逐步带领大家在Orange Pi Zero3上面完成Node-RED的安装以及部署,教大家如何使用Nodered以及介绍Nodered节点的两种方式安装。
Nodered使用如图1所示,该动画演示了如何新建一个流程以及部署调试流程。
图1 Nodered演示
Orange Pi Zero3(见图2)是一款单板计算机,通常用于嵌入式系统和物联网应用。它由全志(Allwinner)公司生产,基于 ARM Cortex-A53 四核处理器,具有低功耗和高性能的特点。Orange Pi Zero3 支持多种操作系统,包括 Linux 发行版,如 Armbian、Ubuntu 等,适合用于开发各种物联网设备和自动化项目。与树莓派相比其价格便宜性价比高,它们都属于ARM64架构,都有丰富的外设,树莓派可以做的,Orangepi也能做且成本更低。
图2 Orangepi zero3示意图
四核Cortex-A53处理器、WiFi、蓝牙
26Pin扩展功能口
HDMI音视频输出
USB2.0 X 3
GPIO、I2C、UART、SPI、PWM
Orangepi Zero3 Linux 6.1.31系统镜像(Orangepi官网下载)
Orangepi Zero3开发板(建议2G,内存过低会导致系统拓展性差)
一张SD卡(考虑可拓展性建议不低于16GB且为高速卡)
balenaEtcher镜像烧录工具
关于镜像的下载与烧录配置等不在本文讨论范围,大家可以在Orangepi官网下载查阅OrangePi_Zero3_H618用户手册进行相关学习。
在Orangepi官网将下载的镜像解压后使用balenaEtcher镜像烧录工具烧录到SD卡(见图3图4)
图3 烧录镜像
图4 烧录成功
将SD卡插入Orangepi Zero3接上网线与电源,然后路由器后台查看新增加的orangepizero3设备IP地址,使用SSH登录Orangepi Zero3。其中Orangepi Zero3默认的登录账号与密码分别是root与orangepi。登录效果见图5
图5 SSH登录
Nodered的使用依赖Node.js因此我们先安装Node.js,SSH命令行输入命令1安装Node.js
命令1
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
输入命令后回车出现图6所示界面
图6 安装nodejs
等待一段时间后安装成功出现图7所示画面,输入node --version
可以查看Node版本。
图7 查看Node版本
接下来输入sudo npm install -g --unsafe-perm node-red
安装Nodered如图8
图8 安装Nodered
等待几分钟后出现图9所示画面表示Nodered安装成功且其版本为3.1.11
图9 Nodered安装成功
Nodered安装成功后我们需要安装PM2,PM2 是一个流行的 Node.js 进程管理工具,用于帮助管理和保持 Node.js 应用程序的运行。它可以帮助您在生产环境中管理 Node.js 应用的启动、停止、重启,以及监控应用的运行状态和日志输出。PM2 还支持负载均衡、进程守护、自动重启等功能,使得管理 Node.js 应用变得更加简单和高效。输入命令sudo npm install -g pm2
安装PM2(见图10)
图10 安装PM2
等待几分钟后出现图11所示画面表示PM2安装成功
图11 PM2安装成功
接下来启用并配置PM2,启用与配置的命令分别是pm2 startup与sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u root --hp /home/root,启用与配置见图12图13
图12 启动PM2
图13 配置PM2
现在终于到了激动人心的时刻了,通过命令pm2 start node-red
启动Nodered(见图14)
图14 启动Nodered
启动Nodered成功后浏览器访问IP:1880访问Nodered,例如我Orange Pi Zero3的IP地址是192.168.2.26,那么我就需要访问192.168.2.26:1880,访问网址后进入Nodered主页(见图15)
图15 Nodered第一次启动
接下来我们开始第一条Nodered流程,按照图16步骤进行操作
图16 Nodered演示
Nodered本身拥有大量的节点可供使用,当现有节点无法满足我们使用时可以安装第三方节点,以节点node-red-contrib-image-output为例,安装该节点过程如图17所示
图17 安装节点
节点安装成功后我们可以在左侧看到新安装的节点同时右侧节点管理菜单能看到安装的节点(见图18)
图18 成功安装节点
对于上面的节点安装方法来说,我们安装的都是最新版本的节点,然而某些时候我们需要某些特定的版本,例如node-red-node-serialport这个节点,该节点用于Nodered串口通讯,如果用上面的方法安装我们会发现安装不上,因为该节点需要特定Node.js环境与依赖,这个时候我们就只能安装旧版本的节点。安装步骤如图19所示
图19 安装特定版本节点
具体步骤如下:
1、执行pm2 stop node-red
停止Nodered
2、执行cd /root/.node-red
进入Nodered安装目录
3、执行npm install node-red-node-serialport@1.0.4
安装node-red-node-serialport节点
4、执行pm2 start node-red
启用Nodered
5、执行pm2 save
设置开机自启Nodered
节点安装成功后浏览器访问Nodered将出现node-red-node-serialport节点如图20
图20 串口节点
Nodered拥有大量实用的第三方节点,下面将推荐一些实用节点
1、node-red-contrib-image-output该节点可以预览二进制或者base64格式图片
2、node-red-node-base64该节点可以将图片或者其他数据转换为base64格式
4、@mschaeffler/node-red-logic该节点可以执行逻辑运算
5、node-red-contrib-cron-plus该节点可以自定义时间触发事件
6、node-red-contrib-image-tools该节点可以识别条形码二维码同时可以对图像进行旋转添加水印等简单修改
7、npm install node-red-node-serialport@1.0.4该节点可以使用串口与Nodered交互
8、node-red-contrib-ip该节点可以获取当前主机的IP地址
9、node-red-dashboard该节点可以让Nodered进行简单UI交互
10、node-red-node-email该节点可以让Nodered发送邮件
本教程教大家使用Orangepi Zero3安装Nodered,该Nodered安装为系统级安装,使用时可以执行root用户的系统命令,教程中的方法适用于armbian与ubuntu等其他linux系统。Nodered就像一个万能胶水,它可以将各种物联网服务、协议与数据等进行连接并协同工作,它可以向流程图一样编程,使用它我们不需要过多的编程知识,只需要明确我们需要接收什么数据以及向下一节点发送什么数据即可,关于Nodered的更多使用教程,在后续的学习中我将与大家一同分享。
sudo npm install -g --unsafe-perm node-red这个命令会安装最新的Nodered版本,如果按照出现Unsupported version of Node.js: v14.21.3 Node-RED requires Node.js v18 or later表示新版Nodered,更新后不支持Node.js: v14,对于这种可以使用命令sudo npm install -g --unsafe-perm node-red@3.1.7安装特定的Nodered版本或者使用Docker安装