smart-home/使用手册/手册指南/项目运行指南.md

637 lines
15 KiB
Markdown
Raw Normal View History

# 智能家居火灾报警系统 - 项目运行指南
## 📋 项目概述
本项目是一个基于ESP32的智能火灾报警系统包含以下核心功能
- **火灾检测**:温度传感器、烟雾传感器、人体移动检测
- **红外控制**:空调遥控器功能,支持开关、温度、模式控制
- **433MHz通信**RTM300-433M模块支持
- **WiFi连接**支持SoftAP配置和云端数据上报
- **Android应用**:完整的移动端控制界面
## 🏗️ 项目结构
```
smart-home/
├── firefly_esp32/ # ESP32固件代码
│ ├── main/ # 主程序代码
│ ├── managed_components/ # ESP-IDF组件
│ └── sdkconfig # ESP32配置文件
├── Smarthome_android/ # Android应用代码
│ └── app/ # Android应用主代码
├── cloud-backend-jdk8/ # 云端后台服务
├── python_test/ # Python测试脚本
└── ziyuan/ # SDK和资源文件
```
---
## 🔧 硬件运行指南
### 1. 硬件清单
#### 必需硬件:
- **ESP32开发板** (推荐ESP32-WROOM-32)
- **红外发射模块** (连接GPIO4)
- **温度传感器** (DS18B20或类似)
- **烟雾传感器** (MQ-2或类似)
- **人体红外传感器** (PIR)
- **蜂鸣器** (报警提示)
- **LED指示灯** (状态显示)
- **电源适配器** (5V/2A)
#### 可选硬件:
- **433MHz模块** (RTM300-433M)
- **雷达传感器** (距离检测)
- **外部天线** (提高WiFi信号)
### 2. 硬件连接图
```
ESP32 引脚连接:
┌─────────────────┬─────────────────┬─────────────────┐
│ ESP32 GPIO │ 连接设备 │ 功能说明 │
├─────────────────┼─────────────────┼─────────────────┤
│ GPIO4 │ 红外发射器 │ 空调控制信号 │
│ GPIO2 │ LED指示灯 │ 状态显示 │
│ GPIO5 │ 蜂鸣器 │ 报警提示 │
│ GPIO18 │ 温度传感器 │ 火灾检测 │
│ GPIO19 │ 烟雾传感器 │ 烟雾检测 │
│ GPIO21 │ PIR传感器 │ 人体移动检测 │
│ GPIO22 │ 433MHz模块(SDA) │ 无线通信 │
│ GPIO23 │ 433MHz模块(SCL) │ 无线通信 │
│ GPIO0 │ 配置按钮 │ WiFi配置模式 │
│ 3.3V │ 传感器电源 │ 供电 │
│ GND │ 公共地线 │ 接地 │
└─────────────────┴─────────────────┴─────────────────┘
```
### 3. 硬件安装步骤
#### 步骤1ESP32基础连接
```bash
1. 将ESP32开发板固定在面包板或PCB上
2. 连接电源线5V → VINGND → GND
3. 连接USB数据线到电脑用于烧录和调试
```
#### 步骤2传感器连接
```bash
# 温度传感器 (DS18B20)
VCC → 3.3V
GND → GND
DATA → GPIO18
# 烟雾传感器 (MQ-2)
VCC → 3.3V
GND → GND
AOUT → GPIO19
# PIR人体传感器
VCC → 3.3V
GND → GND
OUT → GPIO21
```
#### 步骤3红外发射器连接
```bash
# 红外发射器模块
VCC → 3.3V
GND → GND
DATA → GPIO4
注意红外发射器需要对准空调接收窗口距离建议1-3米
```
#### 步骤4433MHz模块连接可选
```bash
# RTM300-433M模块
VCC → 3.3V
GND → GND
SDA → GPIO22
SCL → GPIO23
IRQ → GPIO25
注意433MHz模块需要外接天线以提高通信距离
```
#### 步骤5指示器连接
```bash
# LED指示灯
正极 → GPIO2
负极 → GND (通过220Ω电阻)
# 蜂鸣器
正极 → GPIO5
负极 → GND
```
### 4. 硬件测试验证
#### 基础功能测试:
```bash
1. 上电测试LED应该闪烁表示系统启动
2. WiFi测试长按GPIO0按钮进入配置模式
3. 传感器测试:用打火机测试烟雾传感器
4. 红外测试:对准空调测试遥控功能
```
---
## 💻 软件环境搭建
### 1. ESP32开发环境
#### 安装ESP-IDF 5.5.2
```bash
# Windows环境
1. 下载ESP-IDF 5.5.2安装包
2. 安装到D:\Espressif5.5.2\
3. 配置环境变量:
- IDF_PATH=D:\Espressif5.5.2\Espressif\frameworks\esp-idf-v5.5.2
- 添加到PATHD:\Espressif5.5.2\Espressif\tools\
# 验证安装
idf.py --version
```
#### ESP32项目配置
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\firefly_esp32
# 配置项目
idf.py menuconfig
# 重要配置项:
- Component config → ESP32-specific → CPU frequency → 240 MHz
- Component config → FreeRTOS → Tick rate → 1000 Hz
- Component config → Wi-Fi → WiFi Task Core ID → Core 1
- Partition Table → Custom partition table CSV → partitions.csv
```
### 2. Android开发环境
#### 安装要求:
```bash
- Android Studio 2023.1+
- JDK 11+
- Android SDK API 34
- Gradle 8.11.1
```
#### 项目配置:
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\Smarthome_android\Smarthome_android
# 同步项目
./gradlew sync
# 编译项目
./gradlew assembleDebug
```
### 3. Python测试环境
#### 安装依赖:
```bash
pip install requests
pip install pyserial
pip install json
```
---
## 🚀 系统部署流程
### 1. ESP32固件烧录
#### 编译固件:
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\firefly_esp32
# 清理构建
idf.py fullclean
# 编译固件
idf.py build
# 烧录固件
idf.py -p COM3 flash
# 监控日志
idf.py -p COM3 monitor
```
#### 烧录验证:
```bash
# 查看启动日志
I (0) cpu_start: Starting scheduler on APP CPU.
I (1000) MAIN: 🔥 智能火灾报警系统启动
I (1010) WIFI: WiFi初始化完成
I (1020) HTTP: HTTP服务器启动在端口80
```
### 2. Android应用安装
#### 编译APK
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\Smarthome_android\Smarthome_android
# 编译Debug版本
./gradlew assembleDebug
# APK位置
app/build/outputs/apk/debug/app-debug.apk
```
#### 安装到设备:
```bash
# 通过ADB安装
adb install app/build/outputs/apk/debug/app-debug.apk
# 或者直接拷贝APK到手机安装
```
### 3. 系统配置
#### WiFi配置
```bash
1. 长按ESP32的GPIO0按钮3秒
2. ESP32进入SoftAP模式LED快速闪烁
3. 手机连接WiFiESP32-Config
4. 浏览器打开192.168.4.1
5. 输入家庭WiFi信息并保存
6. ESP32重启后自动连接WiFi
```
#### 设备配对:
```bash
1. 打开Android应用
2. 点击"添加设备"
3. 扫描局域网中的ESP32设备
4. 选择设备并完成配对
5. 测试空调控制功能
```
---
## 🔍 功能测试指南
### 1. 火灾报警测试
#### 温度报警测试:
```bash
# 使用热风枪或打火机加热温度传感器
# 预期结果:
- 温度超过60°C时触发报警
- 蜂鸣器响起
- LED红灯闪烁
- Android应用收到报警推送
```
#### 烟雾报警测试:
```bash
# 在烟雾传感器附近点燃纸张
# 预期结果:
- 检测到烟雾时触发报警
- 蜂鸣器响起
- LED红灯闪烁
- 云端收到报警数据
```
### 2. 红外控制测试
#### 空调控制测试:
```bash
# 在Android应用中测试
1. 点击"电源"按钮 → 空调开关
2. 点击"温度+"按钮 → 温度上升
3. 点击"温度-"按钮 → 温度下降
4. 点击"模式"按钮 → 制冷/制热/除湿循环
5. 点击"风量"按钮 → 风量调节
# 验证方法:
- 观察空调面板显示变化
- 检查ESP32日志输出
- 确认红外信号发送成功
```
### 3. 网络功能测试
#### WiFi连接测试
```bash
# 检查ESP32日志
I (5000) WIFI: WiFi连接成功
I (5010) WIFI: IP地址: 192.168.1.100
I (5020) HTTP: HTTP服务器启动成功
```
#### 云端通信测试:
```bash
# 使用Python脚本测试
cd d:\XinJiaPo\Firefly_code\smart-home\python_test
python test_cloud_alarm_integration.py
# 预期结果:
- 成功连接云端服务器
- 报警数据上传成功
- 收到服务器响应
```
---
## 🛠️ 故障排除
### 1. 硬件问题
#### ESP32无法启动
```bash
问题:上电后无反应
解决:
1. 检查电源电压应为5V/2A
2. 检查USB线连接
3. 按下RST按钮重启
4. 检查GPIO0是否被误触发
```
#### 传感器无读数:
```bash
问题传感器数据为0或异常
解决:
1. 检查传感器供电3.3V
2. 检查信号线连接
3. 用万用表测试传感器输出
4. 更换传感器模块
```
#### 红外控制无效:
```bash
问题:空调不响应红外信号
解决:
1. 检查红外发射器方向
2. 减少发射距离1-2米
3. 检查GPIO4连接
4. 重新配对空调遥控器
```
### 2. 软件问题
#### 编译错误:
```bash
问题ESP32编译失败
解决:
1. 检查ESP-IDF版本需要5.5.2
2. 清理构建idf.py fullclean
3. 检查sdkconfig配置
4. 更新组件idf.py update-dependencies
```
#### WiFi连接失败
```bash
问题无法连接WiFi
解决:
1. 检查WiFi密码正确性
2. 确认WiFi为2.4GHz频段
3. 重置WiFi配置长按GPIO0按钮
4. 检查路由器MAC过滤设置
```
#### Android应用崩溃
```bash
问题:应用启动崩溃
解决:
1. 检查Android版本兼容性
2. 清除应用数据和缓存
3. 重新安装APK
4. 查看logcat日志定位问题
```
### 3. 网络问题
#### 设备发现失败:
```bash
问题Android应用找不到ESP32设备
解决:
1. 确认手机和ESP32在同一WiFi网络
2. 检查路由器防火墙设置
3. 手动输入ESP32 IP地址
4. 重启路由器和设备
```
#### 云端通信失败:
```bash
问题:无法上传报警数据
解决:
1. 检查网络连接
2. 验证云端服务器状态
3. 检查防火墙设置
4. 使用Python脚本测试API
```
---
## 📊 性能监控
### 1. 系统监控指标
#### ESP32性能监控
```bash
# 内存使用情况
I (10000) HEAP: 剩余内存: 180KB/320KB
# CPU使用率
I (10010) CPU: CPU使用率: 45%
# WiFi信号强度
I (10020) WIFI: RSSI: -45dBm (信号良好)
# 传感器读取频率
I (10030) SENSOR: 传感器更新频率: 1Hz
```
#### 网络性能监控:
```bash
# HTTP响应时间
平均响应时间: 50ms
最大响应时间: 200ms
# 数据上传成功率
上传成功率: 98.5%
重试次数: 平均1.2次
```
### 2. 日志分析
#### 关键日志标识:
```bash
🔥 - 系统启动和关键事件
✅ - 操作成功
⚠️ - 警告信息
❌ - 错误信息
🎯 - 调试信息
```
#### 日志文件位置:
```bash
ESP32日志通过串口监控获取
Android日志adb logcat | grep "Esp32JsBridge"
云端日志:服务器日志文件
```
---
## 📝 维护指南
### 1. 定期维护
#### 每周检查:
```bash
1. 检查设备运行状态
2. 清理传感器灰尘
3. 检查网络连接稳定性
4. 测试报警功能
```
#### 每月维护:
```bash
1. 更新固件版本
2. 备份配置数据
3. 检查硬件连接
4. 性能数据分析
```
### 2. 版本更新
#### ESP32固件更新
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\firefly_esp32
# 拉取最新代码
git pull origin main
# 编译新固件
idf.py build
# OTA更新推荐
python simple_ota.ps1
# 或串口更新
idf.py -p COM3 flash
```
#### Android应用更新
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\Smarthome_android\Smarthome_android
# 更新版本号
# 编辑 app/build.gradle.kts
versionCode = 2
versionName = "1.1.0"
# 编译新版本
./gradlew assembleRelease
```
---
## 📞 技术支持
### 联系信息
- **项目负责人**[原开发者姓名]
- **技术文档**:项目根目录下的各种.md文件
- **代码仓库**Git仓库地址
- **问题反馈**GitHub Issues或内部问题跟踪系统
### 常用命令速查
```bash
# ESP32相关
idf.py build # 编译固件
idf.py -p COM3 flash # 烧录固件
idf.py -p COM3 monitor # 监控日志
idf.py menuconfig # 配置项目
# Android相关
./gradlew assembleDebug # 编译Debug版本
./gradlew assembleRelease # 编译Release版本
adb install app-debug.apk # 安装APK
adb logcat # 查看日志
# Python测试
python test_cloud_alarm_integration.py # 云端测试
python test_ir_control.py # 红外测试
python wifi_config_simple.py # WiFi配置
```
---
## ⚠️ 重要注意事项
1. **安全警告**
- 火灾报警系统仅作为辅助设备,不能替代专业消防设备
- 定期测试系统功能,确保正常工作
- 传感器需要定期校准和清洁
2. **电气安全**
- 使用合适的电源适配器5V/2A
- 避免短路和过载
- 在潮湿环境中注意防水
3. **网络安全**
- 定期更新固件以修复安全漏洞
- 使用强密码保护WiFi网络
- 监控异常网络活动
4. **数据隐私**
- 了解数据上传和存储政策
- 定期备份重要配置数据
- 注意个人隐私保护
---
## 📚 相关文档
本项目包含以下详细指南文档:
### 核心文档:
- **[项目运行指南.md](./项目运行指南.md)** - 本文档,项目总体概述
- **[硬件接线详细指南.md](./硬件接线详细指南.md)** - 详细的硬件连接和电路图
- **[软件配置详细指南.md](./软件配置详细指南.md)** - 开发环境和软件配置
- **[故障排除与维护指南.md](./故障排除与维护指南.md)** - 故障诊断和维护流程
### 专项文档:
- **[433MHz_使用指南.md](./433MHz_使用指南.md)** - 433MHz模块配置和使用
- **[WiFi省电测试指南.md](./WiFi省电测试指南.md)** - WiFi功耗管理
- **[ESP32编译烧录指南.md](./ESP32编译烧录指南.md)** - 固件编译和烧录
### 技术文档:
- **[SDK_data_hex转红外脉冲算法详解.md](./SDK_data_hex转红外脉冲算法详解.md)** - 红外信号处理算法
- **[diagnose_ir_system.md](./diagnose_ir_system.md)** - 红外系统诊断
- **各种修复和优化文档** - 项目根目录下的其他.md文件
### 快速参考:
#### 🚀 快速启动流程:
1. **硬件连接** → 参考《硬件接线详细指南》
2. **软件配置** → 参考《软件配置详细指南》
3. **固件烧录** → 参考《ESP32编译烧录指南》
4. **功能测试** → 参考本文档的测试章节
5. **故障排除** → 参考《故障排除与维护指南》
#### 📞 获取帮助:
- **硬件问题** → 查看硬件接线详细指南
- **软件问题** → 查看软件配置详细指南
- **网络问题** → 查看WiFi配置相关文档
- **功能异常** → 查看故障排除与维护指南
---
**文档版本**v1.0
**最后更新**2026年2月26日
**适用版本**ESP32固件v2.1.0Android应用v1.0.0
**文档完整性检查**
- ✅ 项目运行指南.md
- ✅ 硬件接线详细指南.md
- ✅ 软件配置详细指南.md
- ✅ 故障排除与维护指南.md