快速开始指南
欢迎使用温室智能监控与自动化控制系统!本指南帮助你在 10 分钟内完成系统部署和首次使用。
项目简介
温室大棚智能监控与自动化控制系统(Greenhouse Ops)是一套完整的温室环境管理解决方案,集实时监控、历史分析、设备控制和自动化策略于一体。
核心功能
- 🌡️ 实时监控:采集温度、湿度、土壤湿度、光照、CO₂ 等核心指标,15秒级刷新
- 📊 历史分析:支持小时/天级数据聚合对比,趋势分析与数据导出
- 🎮 设备控制:风机、水泵、补光灯等设备的远程控制,支持手动与自动模式
- ⚙️ 自动策略:灵活配置环境阈值与联动规则,实现高效自动化管理
- 🚨 告警通知:异常检测与多渠道告警(前端展示、邮件、微信等)
系统架构
┌─────────────────┐
│ 传感器网络 │ 温度、湿度、土壤、光照、CO₂
└────────┬────────┘
│ MQTT
┌────────▼────────┐
│ MQTT Broker │ 消息总线
└────────┬────────┘
│
┌────┴────┐
│ │
┌───▼──┐ ┌───▼──┐
│后端 │ │前端 │ FastAPI + Vue 3
│服务 │ │应用 │
└───┬──┘ └─┬────┘
│ │ HTTP/WebSocket
┌───▼───┬──▼────┐
│SQLite │Influx │ 数据存储
│ │DB │
└───────┴───────┘开发环境快速启动
-### 前置要求
- Node.js 16+ 和 pnpm(用于前端与文档构建)
- Python 3.11+ 和 pip(后端,FastAPI)
- Docker 和 docker-compose
- MQTT Broker(可选,本地测试可使用内置)
- Docker 和 docker-compose
- MQTT Broker(可选,本地测试可使用内置)
方式一:Docker Compose(推荐)
bash
# 克隆项目
git clone <repo-url>
cd greenhouse-ops
# 启动所有服务
docker-compose -f docker-compose.yml up -d
# 访问应用
# 前端: http://localhost:3000
# 后端API: http://localhost:8000
# API文档: http://localhost:8000/docs方式二:本地开发模式
启动后端服务(仓库根目录):
bash
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
# 后端运行在 http://localhost:8000启动前端应用(新终端):
bash
cd frontend
pnpm install
pnpm dev
# 前端运行在 http://localhost:3000首次使用
1. 访问仪表盘
打开浏览器访问 http://localhost:3000,进入仪表盘主页,你将看到:
- 核心指标卡:实时温度、湿度、土壤湿度、光照值
- 系统状态:MQTT连接、API服务、在线设备数
- 趋势概览:近 24 小时的数据走势图
2. 实时监控
点击顶部导航的「实时监控」:
- 实时显示各项指标的当前值
- 温度/湿度火焰线图动态更新
- 可暂停/继续实时刷新
3. 设备控制
在「设备控制」页面:
- 查看所有已接入设备的状态
- 手动控制单个设备的开/关
- 切换自动/手动模式
- 支持批量操作(全部打开/关闭)
4. 历史数据分析
「历史数据」页面提供:
- 灵活的时间范围与指标筛选
- 数据表格显示与趋势对比
- 统计摘要(最小值、最大值、平均值)
- 便于导出与分析
5. 系统设置
在「系统设置」中配置:
- 环境阈值(温度、湿度、土壤、光照、CO₂ 的上下限)
- 告警策略与通知方式
- 设备与传感器参数
核心页面导航
| 页面 | 路由 | 功能 |
|---|---|---|
| 仪表盘 | /dashboard | 核心指标卡、系统状态、趋势概览 |
| 实时监控 | /monitor | 实时数据轮询、图表动态更新 |
| 历史数据 | /data | 时间范围筛选、趋势对比、数据导出 |
| 设备控制 | /control | 设备列表、开关控制、自动模式 |
| 系统设置 | /settings | 阈值配置、策略管理、通知设置 |
API 概览
获取实时传感器数据
bash
curl http://localhost:8000/api/sensors/current响应示例:
json
{
"timestamp": "2024-01-15T10:30:00Z",
"temperature": 25.3,
"humidity": 65.2,
"soil_moisture": 45.8,
"light_level": 550,
"co2": 420
}查询历史数据
bash
curl -X POST http://localhost:8000/api/sensors/history \
-H "Content-Type: application/json" \
-d '{
"start_time": "2024-01-15T00:00:00Z",
"end_time": "2024-01-15T23:59:59Z",
"metrics": ["temperature", "humidity"],
"interval": "1h"
}'控制设备
bash
# 打开设备
curl -X POST http://localhost:8000/api/devices/fan_1/control \
-H "Content-Type: application/json" \
-d '{"status": true}'
# 启用自动模式
curl -X POST http://localhost:8000/api/devices/fan_1/auto \
-H "Content-Type: application/json" \
-d '{"auto_mode": true}'获取系统健康状态
bash
curl http://localhost:8000/health/detailed常见问题
Q: 传感器数据为何不更新?
A: 检查以下项目:
- MQTT Broker 是否正常运行(
docker ps | grep mqtt) - 后端日志中是否有连接错误(
docker logs greenhouse_backend) - 传感器设备是否已连接到 MQTT 并发布数据
Q: 设备控制不响应怎么办?
A:
- 确认设备在线(设备列表中显示"在线"状态)
- 检查后端 API 日志获取具体错误
- 尝试手动 MQTT 发布指令进行测试
Q: 生产环境如何部署?
A:
- 使用
docker-compose.prod.yml配置 - 设置
.env.production中的关键参数(API 地址、MQTT 连接、数据库等) - 启用 HTTPS 和 MQTT 认证
- 配置反向代理(nginx)和备份策略
下一步
获取帮助
如有问题,请:
- 查阅本文档相关章节
- 检查项目 GitHub Issues
- 联系技术支持团队(见团队页面)
最后更新:2025年11月18日