1. 什么是边缘计算?
简单来讲,边缘计算就是一种去中心化的计算模型,它具有两个最大的特性:
- 去中心化:相较于传统的云计算模型,边缘计算将计算任务(编程+处理)推向了边缘网络,即靠近数据源或终端设备的位置(如传感器、智能手机、工业设备或本地服务器),这种靠近终端的计算模型能更快响应更快处理终端数据。
- 一站式应用:边缘计算的计算逻辑完全取决于用户需求,是一种100%的自定义程序,例如传感器数据上报/下发、PLC数据上报/下发。除此之外边缘计算在优化成为一种可视化编程体系(Node-RED)后开发成本极低,用低代码开发逻辑成就了不少分布式工业应用场景,成为了众多工业场景中必不可少的核心环节。
2. 什么是Node-RED?
Node-RED 是一个基于可视化编程的低代码开发工具,它的开发语言主要由JS构成,本身由流(flow)和拖拽式节点编程两部分构成:
- 流:简单理解就是数据流向,数据由输入到输出的整个过程就是一种流。
- 节点:Node-RED中功能的最小单元,例如UDP节点负责传输UDP数据、MQTT节点负责传输MQTT数据、debug节点用于调试打印等,这种带有明确功能性的最小单元就是节点。
- 拖拽式节点编程:作为一种可视化编程工具,Node-RED的所有节点都能通过拖拽+部署达到“即拖即用”的目的,这些节点既是最小的功能性单元也是Node-RED的最小组件,各种各样的节点构建起了Node-RED边缘计算这个庞大的体系。
3. Node-RED界面长什么样子,我该怎么搭建环境?
上图是Node-RED的界面展示,可以看到在界面的最左侧有很多椭圆形方块,每个椭圆形方块都是一个Node-RED节点,每个节点都代表了一个或者一类功能,这些节点有的是默认就有(搭建了Node-RED就有,不用下载安装),有的需要从Node-RED中心下载,有的则是个人私有,这些私有节点是边缘计算终端用户为了完成某一个或者某一类功能独自研发的节点,这种私有节点在终端用户没开放上传前无法从Node-RED中心下载获取。
关于搭建Node-RED环境,博主建议用Ubuntu系统,版本需要>=Ubuntu 20.04,以下是搭建步骤:
1. 安装 Node.js 和 npm
Node-RED 基于 Node.js,因此需要先安装运行环境:
# 更新软件包列表
sudo apt update
# 安装 Node.js 和 npm(推荐使用 LTS 版本)
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
# 验证安装
node -v # 应输出 v18.x 或更高
npm -v # 应输出 9.x 或更高
2. 安装 Node-RED
通过 npm 全局安装:
sudo npm install -g --unsafe-perm node-red
-g
:全局安装,确保命令行可直接运行。--unsafe-perm
:避免权限问题(尤其在树莓派等设备上)。
3. 运行 Node-RED
启动服务:
node-red
- 默认监听端口:
1880
。 - 访问 Web 界面:
http://<Ubuntu_IP>:1880
(本地可直接http://localhost:1880
)。
4. (可选)设置开机自启
使用 systemd
管理 Node-RED 服务:
# 创建服务文件
sudo vim /etc/systemd/system/nodered.service
粘贴以下内容:
[Unit]
Description=Node-RED
After=syslog.target network.target
[Service]
User=$USER # 替换为你的用户名
ExecStart=/usr/bin/node-red
Restart=on-failure
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable nodered
sudo systemctl start nodered
检查状态:
systemctl status nodered
4. 总结
在本章中,我们对Node-RED有了基础的认识和了解,知道了它是用来做什么的,能完成什么样的任务以及做成什么样的应用场景,如果对Node-RED感兴趣的伙伴可以留下评论,我会发一些基础节点的使用方式和进阶的使用建议,如果对Node-RED应用场景拿捏不准,不清楚能不能用Node-RED来实现也可以评论留言,我会为大家解答关于Node-RED 的相关问题。
下一章节我会对Node-RED私有节点开发做详细的教学,有兴趣的伙伴可以来看看。