主要更改: 1. 新增使用手册: - AI算法更新指南 - HTPA60x40传感器升级指南 - 环境配置教程 2. 传感器模块优化: - HTPA60x40dR1L0.9传感器集成 - HTPAd32x32L1k7传感器更新 - 传感器配置文档完善 3. 项目文档整理: - 删除过期的433MHz使用指南 - 更新README文档结构 - 完善配置教程链接 目标:完善项目文档,优化传感器集成
15 KiB
15 KiB
智能家居火灾报警系统 - 项目运行指南
📋 项目概述
本项目是一个基于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. 硬件安装步骤
步骤1:ESP32基础连接
1. 将ESP32开发板固定在面包板或PCB上
2. 连接电源线:5V → VIN,GND → GND
3. 连接USB数据线到电脑(用于烧录和调试)
步骤2:传感器连接
# 温度传感器 (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:红外发射器连接
# 红外发射器模块
VCC → 3.3V
GND → GND
DATA → GPIO4
注意:红外发射器需要对准空调接收窗口,距离建议1-3米
步骤4:433MHz模块连接(可选)
# RTM300-433M模块
VCC → 3.3V
GND → GND
SDA → GPIO22
SCL → GPIO23
IRQ → GPIO25
注意:433MHz模块需要外接天线以提高通信距离
步骤5:指示器连接
# LED指示灯
正极 → GPIO2
负极 → GND (通过220Ω电阻)
# 蜂鸣器
正极 → GPIO5
负极 → GND
4. 硬件测试验证
基础功能测试:
1. 上电测试:LED应该闪烁,表示系统启动
2. WiFi测试:长按GPIO0按钮,进入配置模式
3. 传感器测试:用打火机测试烟雾传感器
4. 红外测试:对准空调测试遥控功能
💻 软件环境搭建
1. ESP32开发环境
安装ESP-IDF 5.5.2:
# 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
- 添加到PATH:D:\Espressif5.5.2\Espressif\tools\
# 验证安装
idf.py --version
ESP32项目配置:
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开发环境
安装要求:
- Android Studio 2023.1+
- JDK 11+
- Android SDK API 34
- Gradle 8.11.1
项目配置:
cd d:\XinJiaPo\Firefly_code\smart-home\Smarthome_android\Smarthome_android
# 同步项目
./gradlew sync
# 编译项目
./gradlew assembleDebug
3. Python测试环境
安装依赖:
pip install requests
pip install pyserial
pip install json
🚀 系统部署流程
1. ESP32固件烧录
编译固件:
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
烧录验证:
# 查看启动日志
I (0) cpu_start: Starting scheduler on APP CPU.
I (1000) MAIN: 🔥 智能火灾报警系统启动
I (1010) WIFI: WiFi初始化完成
I (1020) HTTP: HTTP服务器启动在端口80
2. Android应用安装
编译APK:
cd d:\XinJiaPo\Firefly_code\smart-home\Smarthome_android\Smarthome_android
# 编译Debug版本
./gradlew assembleDebug
# APK位置:
app/build/outputs/apk/debug/app-debug.apk
安装到设备:
# 通过ADB安装
adb install app/build/outputs/apk/debug/app-debug.apk
# 或者直接拷贝APK到手机安装
3. 系统配置
WiFi配置:
1. 长按ESP32的GPIO0按钮3秒
2. ESP32进入SoftAP模式,LED快速闪烁
3. 手机连接WiFi:ESP32-Config
4. 浏览器打开:192.168.4.1
5. 输入家庭WiFi信息并保存
6. ESP32重启后自动连接WiFi
设备配对:
1. 打开Android应用
2. 点击"添加设备"
3. 扫描局域网中的ESP32设备
4. 选择设备并完成配对
5. 测试空调控制功能
🔍 功能测试指南
1. 火灾报警测试
温度报警测试:
# 使用热风枪或打火机加热温度传感器
# 预期结果:
- 温度超过60°C时触发报警
- 蜂鸣器响起
- LED红灯闪烁
- Android应用收到报警推送
烟雾报警测试:
# 在烟雾传感器附近点燃纸张
# 预期结果:
- 检测到烟雾时触发报警
- 蜂鸣器响起
- LED红灯闪烁
- 云端收到报警数据
2. 红外控制测试
空调控制测试:
# 在Android应用中测试:
1. 点击"电源"按钮 → 空调开关
2. 点击"温度+"按钮 → 温度上升
3. 点击"温度-"按钮 → 温度下降
4. 点击"模式"按钮 → 制冷/制热/除湿循环
5. 点击"风量"按钮 → 风量调节
# 验证方法:
- 观察空调面板显示变化
- 检查ESP32日志输出
- 确认红外信号发送成功
3. 网络功能测试
WiFi连接测试:
# 检查ESP32日志:
I (5000) WIFI: WiFi连接成功
I (5010) WIFI: IP地址: 192.168.1.100
I (5020) HTTP: HTTP服务器启动成功
云端通信测试:
# 使用Python脚本测试:
cd d:\XinJiaPo\Firefly_code\smart-home\python_test
python test_cloud_alarm_integration.py
# 预期结果:
- 成功连接云端服务器
- 报警数据上传成功
- 收到服务器响应
🛠️ 故障排除
1. 硬件问题
ESP32无法启动:
问题:上电后无反应
解决:
1. 检查电源电压(应为5V/2A)
2. 检查USB线连接
3. 按下RST按钮重启
4. 检查GPIO0是否被误触发
传感器无读数:
问题:传感器数据为0或异常
解决:
1. 检查传感器供电(3.3V)
2. 检查信号线连接
3. 用万用表测试传感器输出
4. 更换传感器模块
红外控制无效:
问题:空调不响应红外信号
解决:
1. 检查红外发射器方向
2. 减少发射距离(1-2米)
3. 检查GPIO4连接
4. 重新配对空调遥控器
2. 软件问题
编译错误:
问题:ESP32编译失败
解决:
1. 检查ESP-IDF版本(需要5.5.2)
2. 清理构建:idf.py fullclean
3. 检查sdkconfig配置
4. 更新组件:idf.py update-dependencies
WiFi连接失败:
问题:无法连接WiFi
解决:
1. 检查WiFi密码正确性
2. 确认WiFi为2.4GHz频段
3. 重置WiFi配置:长按GPIO0按钮
4. 检查路由器MAC过滤设置
Android应用崩溃:
问题:应用启动崩溃
解决:
1. 检查Android版本兼容性
2. 清除应用数据和缓存
3. 重新安装APK
4. 查看logcat日志定位问题
3. 网络问题
设备发现失败:
问题:Android应用找不到ESP32设备
解决:
1. 确认手机和ESP32在同一WiFi网络
2. 检查路由器防火墙设置
3. 手动输入ESP32 IP地址
4. 重启路由器和设备
云端通信失败:
问题:无法上传报警数据
解决:
1. 检查网络连接
2. 验证云端服务器状态
3. 检查防火墙设置
4. 使用Python脚本测试API
📊 性能监控
1. 系统监控指标
ESP32性能监控:
# 内存使用情况
I (10000) HEAP: 剩余内存: 180KB/320KB
# CPU使用率
I (10010) CPU: CPU使用率: 45%
# WiFi信号强度
I (10020) WIFI: RSSI: -45dBm (信号良好)
# 传感器读取频率
I (10030) SENSOR: 传感器更新频率: 1Hz
网络性能监控:
# HTTP响应时间
平均响应时间: 50ms
最大响应时间: 200ms
# 数据上传成功率
上传成功率: 98.5%
重试次数: 平均1.2次
2. 日志分析
关键日志标识:
🔥 - 系统启动和关键事件
✅ - 操作成功
⚠️ - 警告信息
❌ - 错误信息
🎯 - 调试信息
日志文件位置:
ESP32日志:通过串口监控获取
Android日志:adb logcat | grep "Esp32JsBridge"
云端日志:服务器日志文件
📝 维护指南
1. 定期维护
每周检查:
1. 检查设备运行状态
2. 清理传感器灰尘
3. 检查网络连接稳定性
4. 测试报警功能
每月维护:
1. 更新固件版本
2. 备份配置数据
3. 检查硬件连接
4. 性能数据分析
2. 版本更新
ESP32固件更新:
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应用更新:
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或内部问题跟踪系统
常用命令速查
# 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配置
⚠️ 重要注意事项
-
安全警告:
- 火灾报警系统仅作为辅助设备,不能替代专业消防设备
- 定期测试系统功能,确保正常工作
- 传感器需要定期校准和清洁
-
电气安全:
- 使用合适的电源适配器(5V/2A)
- 避免短路和过载
- 在潮湿环境中注意防水
-
网络安全:
- 定期更新固件以修复安全漏洞
- 使用强密码保护WiFi网络
- 监控异常网络活动
-
数据隐私:
- 了解数据上传和存储政策
- 定期备份重要配置数据
- 注意个人隐私保护
📚 相关文档
本项目包含以下详细指南文档:
核心文档:
- 项目运行指南.md - 本文档,项目总体概述
- 硬件接线详细指南.md - 详细的硬件连接和电路图
- 软件配置详细指南.md - 开发环境和软件配置
- 故障排除与维护指南.md - 故障诊断和维护流程
专项文档:
- 433MHz_使用指南.md - 433MHz模块配置和使用
- WiFi省电测试指南.md - WiFi功耗管理
- ESP32编译烧录指南.md - 固件编译和烧录
技术文档:
- SDK_data_hex转红外脉冲算法详解.md - 红外信号处理算法
- diagnose_ir_system.md - 红外系统诊断
- 各种修复和优化文档 - 项目根目录下的其他.md文件
快速参考:
🚀 快速启动流程:
- 硬件连接 → 参考《硬件接线详细指南》
- 软件配置 → 参考《软件配置详细指南》
- 固件烧录 → 参考《ESP32编译烧录指南》
- 功能测试 → 参考本文档的测试章节
- 故障排除 → 参考《故障排除与维护指南》
📞 获取帮助:
- 硬件问题 → 查看硬件接线详细指南
- 软件问题 → 查看软件配置详细指南
- 网络问题 → 查看WiFi配置相关文档
- 功能异常 → 查看故障排除与维护指南
文档版本:v1.0
最后更新:2026年2月26日
适用版本:ESP32固件v2.1.0,Android应用v1.0.0
文档完整性检查:
- ✅ 项目运行指南.md
- ✅ 硬件接线详细指南.md
- ✅ 软件配置详细指南.md
- ✅ 故障排除与维护指南.md