本项目是一套基于Quectel Pi H1智能主控板构建的Node-RED边缘网关。
以Quectel Pi H1作为边缘侧计算与协议汇聚节点,在本地局域网内完成端侧设备接入、数据采集汇聚、规则编排与可视化展示,并将数据落地存储至本地数据库,实现“采集—处理—存储—展示”的闭环架构,适用于对实时性、可靠性与本地化部署要求较高的工业现场与边缘计算场景。
本项目是一套基于Quectel Pi H1智能主控板构建的Node-RED边缘网关。
以Quectel Pi H1作为边缘侧计算与协议汇聚节点,在本地局域网内完成端侧设备接入、数据采集汇聚、规则编排与可视化展示,并将数据落地存储至本地数据库,实现“采集—处理—存储—展示”的闭环架构,适用于对实时性、可靠性与本地化部署要求较高的工业现场与边缘计算场景。
开发配件只是作为参考,不同的开发环境可能会有所差异,比如通过SSH远程连接进行开发,可以不使用USB拓展板,显示屏也可以根据需要进行替换。
| 配件名称 | 数量 | 规格参数 |
|---|---|---|
| Quectel Pi H1智能主控板 | 2 块 | Quectel Pi H1智能主控板 |
| 环境传感器拓展板 | 1 块 | 环境传感器扩展板 |
| USB摄像头模块 | 1 个 | OV5693 USB摄像头模块 |
| 电源适配器 | 1 个 | 27 W USB Type-C接口充电器 1.2 米线长中规电源PD电源 适用于树莓派 5 代 |
| CPU散热风扇 | 1 个 | 树莓派 5 代官方原装散热器带导热贴 |
| HDMI线 | 1 根 | 规格:HDMI 2.0;线长:1 m;接口:HDMI-A(公头)-HDMI-D(公头) |
| 网线 | 1 根 | 线长:1 m;传输速率:千兆 |
| 显示屏 | 1 个 | 24 英寸HDMI显示器 |

Quectel Pi H1智能主控板出厂默认搭载Debian 13系统镜像,因此无需再次烧录镜像,仅需按照如下步骤操作即可。
1.显示连接
将HDMI线一端接入智能主控板的HDMI接口,另一端接入显示器的HDMI接口。

2.输入设备连接
将USB键盘、鼠标接入智能主控板的两个USB-A接口上,若用无线输入设备,将接收器插入USB口即可。

3.网络连接
将网线一端接入智能主控板的千兆网口,另一端接入路由器的网口。
平替方案:Wi-Fi连接同一局域网网络。

4.跳线帽连接
智能主控板左上角标有AUTO_POWER_ON丝印的排针,确保已经用跳线帽短接。

5.供电连接
将USB-A电源线的USB-A端接入电源适配器,USB-C端接入智能主控板的电源口(标注POWER IN)。

6.连接完成参考

1.网络连接
将网线一端接入智能主控板的千兆网口,另一端接入路由器的网口。
平替方案:使用WiFi连接同一局域网网络。

2.跳线帽连接
智能主控板左上角标有AUTO_POWER_ON丝印的排针,确保已经用跳线帽短接。

3.环境传感器扩展板连接
将环境传感器扩展板与Quectel Pi H1 40Pin引脚相接。

4.摄像头连接
USB摄像头连接上USB-A接口即可。

5.供电连接
将USB-A电源线的USB-A端接入电源适配器,USB-C端接入智能主控板的电源口(标注POWER IN)。

6.连接完成参考

本节按“网关端 / 采集端”拆分,便于部署。
1.更新软件源
2.安装Node-RED
sudo apt install build-essential git curl
bash <(curl -sL https://github.com/node-red/linux-installers/releases/latest/download/update-nodejs-and-nodered-deb)
设置开机时自启动:
要禁用该服务,请运行以下命令:
设置开机自启动。
创建并编辑 Mosquitto 的配置。
配置如下,CTRL+O,Enter,CTRL+X保存退出。
重启服务。
4.初始化SQLite数据库
Node-RED SQLite节点使用的数据库路径为:/home/pi/edge_db/edge.db。
请先创建目录并初始化表结构:
mkdir -p ~/edge_db
sqlite3 ~/edge_db/edge.db << 'SQL'
CREATE TABLE IF NOT EXISTS telemetry ( id INTEGER PRIMARY KEY AUTOINCREMENT, deviceId TEXT NOT NULL, ts INTEGER, gatewayTs INTEGER, temperature REAL, humidity REAL, pressure REAL );
?CREATE INDEX IF NOT EXISTS idx_telemetry_device_ts ON telemetry(deviceId, ts); SQL
Node-RED 写库字段为?(deviceId, ts, gatewayTs, temperature, humidity, pressure),并通过解析主题?edge/v1/<deviceId>/telemetry 获取deviceId。
5.访问Dashboard
在从另一台机器浏览时,使用该智能主控板的主机名或IP地址:可通过在智能主控板上运行hostname -I来找到IP地址。http://<hostname>:1880
网页界面显示如下图:

安装必要节点:
进入编辑器后,依次点击右上角、Settings、Palette、?Install进入到节点安装界面,搜索下面节点安装。
?

6.导入 Node-RED 流程
1.将flow.json文件放置在.node-red/lib/flows/下。
2.在编辑器界面依次点击右上角,Import?、Local、然后选择flow.json、Import。
3.将流程导入后点击Deploy使流程生效。
?

采集端使用Python + paho-mqtt + smbus2,并调用mjpg-streamer输出MJPEG:
1.安装基础组件
2.安装mjpg-streamer(用于输出MJPEG视频流)
安装编译依赖:
拉取源码并编译:
3.获取代码和创建Python虚拟环境
代码文件夹(edge_h1_sensor)放置于用户目录/home/pi下,
4.更新pip并安装OpenCV与paho-mqtt
5.配置40Pin接口配置文件
使能40Pin的I2C,在终端输入sudo qpi-config 40pin set,之后重启Quectel Pi H1智能主控板使配置生效。
6.启动程序
回到项目代码目录下启动Python虚拟环境运行程序:
注:需要修改代码,将网关端IP改成实际IP地址。
Node-RED编辑器界面:http://<hostname>:1880

Node-RED UI界面:http://<hostname>:1880/ui
本项目网关端将遥测数据写入SQLite数据库,默认路径为:
??数据库文件:/home/pi/edge_db/edge.db
??数据表:telemetry
??字段:deviceId, ts, gatewayTs, temperature, humidity, pressure
将h1-sensecam-001替换为实际设备ID:
ts为毫秒
