一、准备工作
1.1 硬件清单
| 硬件 | 型号 | 价格 | 备注 |
|---|---|---|---|
| 树莓派 | 4B (4GB) | ¥300-400 | 推荐 4GB 版,2GB 也可 |
| 电源 | 5V/3A USB-C | ¥30 | 官方电源稳定性好 |
| microSD 卡 | 32GB Class 10 | ¥40 | 推荐闪迪/三星 |
| 散热片/风扇 | 被动散热即可 | ¥20 | 可选 |
总成本:¥400-500(不含外壳)
1.2 软件准备
- Raspberry Pi OS Lite(推荐)或 Ubuntu Server 22.04
- Docker + Docker Compose
- Git
二、树莓派系统配置
2.1 烧录系统
使用 Raspberry Pi Imager:
- 选择设备:Raspberry Pi 4
- 选择操作系统:Raspberry Pi OS Lite (64-bit)
- 点击齿轮图标,预配置:
- 开启 SSH
- 设置用户名/密码
- 配置 WiFi(可选)
2.2 首次启动
# 找到树莓派IP(从路由器管理页面查看)
ping raspberrypi.local
# SSH连接
ssh pi@192.168.1.xxx # 替换为实际IP
# 密码:你设置的密码
2.3 安装 Docker
# 一键安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将pi用户加入docker组(免sudo)
sudo usermod -aG docker pi
# 安装Docker Compose V2
sudo apt-get update
sudo apt-get install docker-compose-plugin
# 验证安装
docker --version
docker compose version
# 重启使组权限生效
sudo reboot
三、部署 EdgeLite Gateway
3.1 克隆代码
# 重新SSH连接后
git clone https://gitee.com/suoten/EdgeLiteGateway.git
cd EdgeLiteGateway
3.2 构建前端
# 安装Node.js(树莓派上首次需要)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 构建前端
cd web
npm install
npm run build
cd ..
⚠️ 注意:树莓派上 npm install 可能需要 3-5 分钟,请耐心等待。
3.3 一键启动
cd docker
docker compose up -d
3.4 查看状态
# 查看所有容器状态
docker compose ps
# 查看日志(如有问题)
docker compose logs -f edgelite
预期输出:
NAME STATUS PORTS
edgelite-edgelite-1 Up 2 minutes 0.0.0.0:8080->8080/tcp
edgelite-frontend-1 Up 2 minutes 0.0.0.0:3000->80/tcp
edgelite-influxdb-1 Up 2 minutes 0.0.0.0:8086->8086/tcp
edgelite-mosquitto-1 Up 2 minutes 0.0.0.0:1883->1883/tcp
四、访问管理界面
浏览器打开:http://树莓派IP:3000
| 登录信息 | 值 |
|---|---|
| 用户名 | admin |
| 密码 | admin123 |
图 2:登录后看到的仪表盘界面
五、实战:接入第一个设备
5.1 使用内置模拟器
EdgeLite Gateway 自带模拟器驱动,无需真实硬件即可体验。
步骤:
- 点击左侧菜单 设备管理
- 点击 创建设备 按钮
- 填写:
| 字段 | 值 |
|---|---|
| 设备名称 | 模拟温度传感器 |
| 驱动类型 | 模拟器 |
| 采集周期 | 1000(毫秒) |
- 点击 确定
图 3:创建设备表单
5.2 添加测点
设备创建成功后,点击 测点管理:
| 测点 ID | 名称 | 类型 | 模拟模式 | 参数 |
|---|---|---|---|---|
temp | 温度 | float | sine | 最小值 0,最大值 100 |
humidity | 湿度 | float | random_walk | 最小值 0,最大值 100 |
status | 状态 | bool | random | - |
图 4:测点配置界面
5.3 查看实时数据
返回设备列表,点击设备名称进入详情页:
- 实时值:每 1 秒自动刷新
- 时序图表:InfluxDB 查询展示
图 5:设备实时数据查看
六、实战:配置告警规则
6.1 创建规则
- 点击 规则管理 → 创建规则
- 填写:
| 字段 | 值 |
|---|---|
| 规则名称 | 高温告警 |
| 设备 | 模拟温度传感器 |
| 测点 | temp |
| 条件 | > |
| 阈值 | 80 |
| 持续时间 | 3000 毫秒 |
| 级别 | 严重 |
图 6:规则配置界面
6.2 配置通知渠道
在规则详情中,点击 通知配置:
| 渠道 | 配置示例 |
|---|---|
| 钉钉 | Webhook URL + 加签密钥 |
| 企业微信 | Webhook URL |
| 邮件 | SMTP 服务器配置 |
6.3 测试规则
在模拟器中将温度设为 85 度:
# 通过API写入测试值
curl -X POST http://树莓派IP:8080/api/v1/devices/{device_id}/points/temp \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"value": 85}'
3 秒后,钉钉/企业微信收到告警:
【EdgeLite告警】
设备: 模拟温度传感器
测点: temp
当前值: 85.0
阈值: > 80
级别: 严重
时间: 2024-01-15 14:32:18
图 7:告警中心收到的告警记录
七、实战:Web 组态大屏
7.1 新建组态项目
- 点击 可视化 → 组态编辑
- 点击 新建项目,命名
车间监控大屏
7.2 拖拽组件
从左侧组件库拖拽到画布:
| 组件 | 绑定数据 |
|---|---|
| 仪表盘 | 模拟温度传感器.temp |
| 趋势图 | 模拟温度传感器.temp(最近 1 小时) |
| 开关 | 模拟温度传感器.status |
| 文本 | 模拟温度传感器.humidity |
7.3 预览和保存
点击 预览 按钮,查看运行效果。
图 8:拖拽式组态编辑器
八、实战:对接 ThingsBoard 云平台
8.1 添加平台对接
- 点击 平台对接 → 添加平台
- 选择
ThingsBoard - 填写配置:
| 字段 | 值 |
|---|---|
| 主机 | thingsboard.cloud 或自建地址 |
| 端口 | 1883 |
| 设备 Token | 在 ThingsBoard 中生成的 token |
图 9:平台对接配置界面
8.2 选择上报测点
勾选需要上报的测点:temp、humidity、status
8.3 验证数据
登录 ThingsBoard,查看设备遥测数据。
九、性能监控
9.1 系统状态
点击 系统管理 → 系统状态:
*图 10:树莓派 CPU/内存/磁盘监控*
9.2 预期性能(树莓派 4B)
| 场景 | 设备数 | CPU | 内存 |
|---|---|---|---|
| 空载 | 0 | 2-3% | 150MB |
| 50 个模拟设备 | 50 | 25% | 220MB |
| 100 个模拟设备 | 100 | 45% | 280MB |
| 200 个模拟设备 | 200 | 75% | 380MB |
十、常见问题
Q1:树莓派上 npm install 很慢?
# 使用国内镜像源
npm install --registry https://registry.npmmirror.com
Q2:Docker Compose 启动后前端空白?
确保先构建前端再启动:
cd web && npm run build && cd ..
cd docker && docker compose up -d --build
Q3:InfluxDB 连接失败?
首次启动 InfluxDB 需要 30 秒初始化,等待 1 分钟后刷新页面。
# 查看InfluxDB日志
docker compose logs influxdb
Q4:树莓派重启后服务会自动启动吗?
使用 --restart=always 参数(docker-compose.yml 已配置),重启后自动恢复。
十一、总结
恭喜!你已经在树莓派上成功运行了 EdgeLite Gateway。
你已经学会了:
- ✅ 树莓派上部署 Docker 环境
- ✅ 一键启动 EdgeLite Gateway
- ✅ 创建模拟设备和测点
- ✅ 配置告警规则和钉钉通知
- ✅ 搭建 Web 组态大屏
- ✅ 对接 ThingsBoard 云平台
下一步:
- 接入真实 Modbus 设备
- 配置更多规则和告警
- 探索 3D 数字孪生功能
- 开发自定义协议驱动
十二、获取帮助
- 📖 完整文档:项目仓库
/docs目录 - 🐛 提交 Issue:gitee.com/suoten/Edge…
🔗 开源地址:
- Gitee(国内):gitee.com/suoten/Edge…
- GitHub:github.com/suoten/Edge…
- ⭐ 如果这个教程对你有帮助,请给项目一个 Star!