项目架构概览
项目架构概览
本节介绍工厂环境监测系统的整体架构设计。学习完成后,您将能够:
- 理解工厂环境监测系统的完整架构和数据流
- 掌握各组件在整个系统中的角色和作用
- 清晰解释方案的部署架构
- 快速评估环境监测需求的技术可行性
在开始本节之前,请确保:
- 已完成 ESP32 开发基础
- 理解 MQTT 协议的基本概念
- 了解 Docker 和 Node-RED 的基本功能
- 已搭建完整的软件栈环境(Mosquitto + Node-RED + InfluxDB + Grafana)
Use Case Overview
Section titled “Use Case Overview”Business Scenario
Section titled “Business Scenario”工厂环境监测是 IoT 领域最常见的应用场景之一。对于阿里巴巴国际站的买家来说,典型的场景包括:
海外采购商场景:
- 远程监控代工厂的生产车间环境(温度、湿度、光照)
- 确保产品质量符合标准要求(例如电子元件的温湿度存储条件)
- 获取生产环境数据用于合规报告和审计
- 及时发现环境异常并采取预防措施
工厂管理者场景:
- 实时监测车间各区域的环境参数
- 记录和分析环境数据以优化生产条件
- 配置告警规则,异常时自动通知相关人员
- 通过数据积累进行生产环境趋势分析
System Requirements
Section titled “System Requirements”| 需求项 | 说明 | 优先级 |
|---|---|---|
| 温度监测 | 测量范围 0-50°C,精度 ±0.5°C | 高 |
| 湿度监测 | 测量范围 0-100%RH,精度 ±3% | 高 |
| 光照监测 | 测量范围 0-65535 lux | 中 |
| 数据可视化 | 实时图表显示,历史数据查询 | 高 |
| 远程访问 | 支持通过互联网查看数据 | 高 |
| 告警通知 | 温湿度超阈值告警 | 中 |
| 历史存储 | 数据留存至少 30 天 | 中 |
System Architecture
Section titled “System Architecture”Architecture Diagram
Section titled “Architecture Diagram”┌──────────────────────────────────────────────────────────┐│ Grafana Dashboard ││ (数据可视化、实时监控、告警) │├──────────────────────────────────────────────────────────┤│ InfluxDB 时序数据库 ││ (数据存储、查询、聚合) │├──────────────────────────────────────────────────────────┤│ Node-RED 处理层 ││ (MQTT 接收 → JSON 解析 → 数据转换 → 写入 InfluxDB) │├──────────────────────────────────────────────────────────┤│ Mosquitto MQTT Broker ││ (消息路由、Topic 管理、QoS) │├──────────────────────────────────────────────────────────┤│ ESP32 数据采集节点 ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││ │ 温度传感器 │ │ 湿度传感器 │ │ 光照传感器 │ ││ │ (DHT22) │ │ (DHT22) │ │ (BH1750) │ ││ └──────────┘ └──────────┘ └──────────┘ │└──────────────────────────────────────────────────────────┘Component Roles
Section titled “Component Roles”ESP32 采集端:
- 通过 GPIO 接口连接温湿度和光照传感器
- 定时采集传感器数据(默认每 3 秒一次)
- 将数据封装为 JSON 格式
- 通过 MQTT 协议发布到 Broker
- 支持接收 MQTT 命令(如控制风扇)
Mosquitto Broker:
- 接收 ESP32 发布的传感器数据消息
- 将消息路由到所有订阅者(Node-RED)
- 管理 Topic 结构,支持通配符订阅
- 提供 QoS 保障确保消息可靠传递
Node-RED 处理层:
- 订阅 MQTT Topic 接收原始数据
- 解析 JSON 格式的数据负载
- 进行数据清洗和格式转换
- 将处理后的数据写入 InfluxDB
- 实现业务逻辑(如迟滞控制算法)
- 触发告警通知(超阈值时)
InfluxDB 存储:
- 以时序方式存储环境数据
- 支持高频率数据写入
- 自动数据保留策略
- 提供 Flux 查询语言
Grafana 展示:
- 实时数据显示图表
- 历史趋势分析
- 多维度数据关联展示
- 告警规则配置和通知
Data Flow
Section titled “Data Flow”End-to-End Data Flow
Section titled “End-to-End Data Flow”步骤 1: [ESP32] DHT22 读取温度 = 26.5°C, 湿度 = 62%步骤 2: [ESP32] BH1750 读取光照 = 450 lux步骤 3: [ESP32] 构建 JSON: {"temperature":26.5,"humidity":62,"lux":450}步骤 4: [ESP32] 发布 MQTT → Topic: "factory/zone1/environment"步骤 5: [Mosquitto] 接收消息并路由给订阅者步骤 6: [Node-RED] 订阅 Topic 接收数据步骤 7: [Node-RED] 解析 JSON, 数据格式转换步骤 8: [Node-RED] 检查是否超过告警阈值步骤 9: [Node-RED] 写入 InfluxDB (measurement: "environment")步骤 10: [Grafana] 每 5 秒查询 InfluxDB 更新仪表板步骤 11: [Grafana] 温度超过 30°C 触发告警通知从传感器数据采集到仪表板显示,完整链路耗时通常在 1-2 秒以内。
Message Format
Section titled “Message Format”MQTT Topic 设计
Section titled “MQTT Topic 设计”factory/{zone}/{sensor_type}
实际示例:factory/zone1/environment # 包含所有环境数据factory/zone1/temperature # 单独温度数据factory/zone1/humidity # 单独湿度数据factory/zone1/light # 单独光照数据factory/control/fan # 风扇控制命令JSON 数据格式
Section titled “JSON 数据格式”{ "device_id": "esp32_001", "timestamp": 1697123456, "temperature": 26.5, "humidity": 62.0, "lux": 450, "unit": { "temperature": "celsius", "humidity": "percent", "lux": "lux" }}Hardware Architecture
Section titled “Hardware Architecture”Components List
Section titled “Components List”| 组件 | 型号 | 数量 | 成本估算 |
|---|---|---|---|
| 微控制器 | ESP32 DevKit | 1 | $5-8 |
| 温湿度传感器 | DHT22 或 BME280 | 1 | $3-5 |
| 光照传感器 | BH1750 | 1 | $2-3 |
| 面包板 | 830 孔 | 1 | $2 |
| 杜邦线 | 公对母/公对公 | 若干 | $1 |
| 电源 | USB 5V/1A | 1 | $3-5 |
| 总计 | $16-24 |
售前提示:以上成本为原型搭建单价。批量采购时,ESP32 可降至 $3-4,传感器每颗 $1-2。完整套件(不含服务器)的成本约 $10-15/节点。
Pre-sales Key Points
Section titled “Pre-sales Key Points”方案价值总结
Section titled “方案价值总结”| 价值维度 | 说明 | 沟通要点 |
|---|---|---|
| 成本效益 | 单节点硬件成本 < $25 | ”全开源方案,无软件授权费” |
| 快速部署 | 1 天完成原型搭建 | ”从零到仪表板只需数小时” |
| 扩展灵活 | 从 1 节点到 100+ 节点 | ”可逐步扩展,无需更换架构” |
| 远程监控 | 支持互联网远程访问 | ”买家可通过网页实时查看工厂环境” |
| 数据留存 | 自动数据存储和备份 | ”历史数据可用于合规审计” |
常见买家问题
Section titled “常见买家问题”Q1: 这个方案能监测多大范围的车间? A: 单个 ESP32 节点的 WiFi 覆盖范围约 50 米(室内)。大型车间需要部署多个节点,每个节点负责一个区域,数据汇总到同一平台。
Q2: 传感器的精度够用吗? A: DHT22 精度 ±0.5°C、±2%RH,适用于一般工厂环境监测。如果需要更高精度(如实验室环境),可以升级到 BME280(±0.3°C、±1%RH)或工业级传感器。
Q3: 数据安全如何保障? A: 基础方案在局域网内运行。远程访问时可通过 TLS 加密 + VPN 保障数据传输安全。
Summary
Section titled “Summary”本节介绍了工厂环境监测系统的整体架构:
- 系统分五层:设备层、通信层、处理层、存储层、展示层
- 核心数据流:ESP32 采集 → MQTT 传输 → Node-RED 处理 → InfluxDB 存储 → Grafana 展示
- 硬件成本低:单节点硬件成本约 $16-24,批量更低
- 售前价值点:成本效益、快速部署、灵活扩展、远程监控