smart-home/WiFi省电测试指南.md
2026-02-26 09:16:34 +08:00

249 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📡 WiFi省电管理器测试指南
## 🎯 功能概述
WiFi省电管理器实现了ESP32的智能WiFi功耗管理根据专业IoT省电建议设计
### ✅ 核心特性
- **事件驱动WiFi**:平时省电模式,重要事件时自动唤醒
- **WIFI_PS_MAX_MODEM + Light Sleep**深度省电功耗2-8mA
- **高响应模式**用户监控时切换到WIFI_PS_NONE功耗150-200mA
- **自动超时管理**5分钟无操作自动恢复省电
- **HTTP + JSON通信**完全替代UDP符合现代IoT标准
## 🔧 ESP32端实现
### 1. WiFi省电模式
```cpp
// 省电模式 (2-8mA)
esp_wifi_set_ps(WIFI_PS_MAX_MODEM);
esp_wifi_set_max_tx_power(8); // 8dBm最低功率
esp_sleep_enable_wifi_wakeup();
// 高响应模式 (150-200mA)
esp_wifi_set_ps(WIFI_PS_NONE);
esp_wifi_set_max_tx_power(20); // 20dBm最大功率
```
### 2. HTTP API接口
- `POST /api/kitchen/monitor` - 厨房监控控制
- `POST /api/kitchen/alarm` - 硬件报警数据
- `GET /api/kitchen/data` - 获取厨房数据
### 3. 事件驱动逻辑
```cpp
// 重要事件自动唤醒WiFi
if (fireDetected || temperature > 60.0f || (temperature > 45.0f && !personDetected)) {
setFullPowerMode(); // 立即切换高响应模式
// 上报事件到云端
// 30秒后自动恢复省电除非用户正在监控
}
```
## 📱 APP端集成
### 1. 智能省电管理器
```javascript
import { smartPowerManager } from '@/utils/wifiPowerClient.js'
// 进入厨房监控页面时
await smartPowerManager.enterKitchenMonitor()
// 离开厨房监控页面时
await smartPowerManager.exitKitchenMonitor()
```
### 2. API调用示例
```javascript
// 启动厨房监控
await startKitchenMonitor({
commMode: 'local', // 本地模式
timeout: 300 // 5分钟超时
})
// 停止厨房监控
await stopKitchenMonitor()
```
## 🧪 测试步骤
### 第一步ESP32设备测试
1. **烧录固件**
```bash
cd d:\XinJiaPo\Firefly_code\smart-home\firefly_esp32
idf.py -p COM7 flash monitor
```
2. **观察启动日志**
```
I (xxx) WiFiPowerMgr: ✅ WiFi深度省电模式设置成功 (MAX_MODEM + Light Sleep)
I (xxx) WiFiPowerMgr: 📉 预期功耗: 2-8 mA
I (xxx) main: WiFi省电管理器初始化成功
I (xxx) main: 厨房监控API: http://192.168.1.3:80/api/kitchen/monitor
```
3. **测试省电模式切换**
- 默认启动后应该是省电模式
- 发送HTTP请求测试API响应
### 第二步APP测试
1. **打开WiFi省电测试页面**
- 在APP中导航到 `/pages/test/wifi-power`
- 或在厨房设置页面添加测试入口
2. **测试连接状态**
- 点击"🔍 测试连接"按钮
- 观察连接状态和响应时间
3. **测试手动控制**
- 点击"📈 启动厨房监控" - 应该切换到高响应模式
- 点击"📉 停止厨房监控" - 应该恢复省电模式
- 观察ESP32日志确认模式切换
4. **测试自动管理**
- 进入厨房监控页面 (`/pages/kitchen/monitor`)
- 观察ESP32日志应该看到
```
I (xxx) WiFiPowerMgr: 📈 事件触发切换到WiFi高响应模式
```
- 退出页面,应该看到:
```
I (xxx) WiFiPowerMgr: 📉 恢复WiFi省电模式
```
### 第三步:功耗测试
1. **测量省电模式功耗**
- 使用万用表测量ESP32电流
- 省电模式应该在2-8mA范围内
2. **测量高响应模式功耗**
- 启动厨房监控后测量电流
- 高响应模式应该在150-200mA范围内
3. **测量切换响应时间**
- 记录从省电模式到高响应模式的切换时间
- 应该在几百毫秒内完成
## 🔍 测试用例
### 用例1基本功能测试
```bash
# 测试启动厨房监控
curl -X POST http://192.168.1.3:80/api/kitchen/monitor \
-H "Content-Type: application/json" \
-d '{"cmd":"KITCHEN_MONITOR","action":"ON","comm_mode":"local","timeout":300}'
# 预期结果ESP32切换到高响应模式
```
### 用例2超时自动恢复测试
```bash
# 启动监控后等待5分钟
# 预期结果ESP32自动恢复省电模式
```
### 用例3事件驱动测试
```cpp
// 在ESP32代码中模拟高温事件
WiFiPowerManager::getInstance()->handleImportantEvent("HIGH_TEMP", "85.5°C");
// 预期结果:自动切换到高响应模式并上报事件
```
## 📊 性能指标
### 功耗对比
| 模式 | 功耗 | 响应时间 | 适用场景 |
|------|------|----------|----------|
| 省电模式 | 2-8mA | 较慢 | 平时待机 |
| 高响应模式 | 150-200mA | <100ms | 用户监控/紧急事件 |
### 网络性能
| 指标 | 省电模式 | 高响应模式 |
|------|----------|------------|
| WiFi发射功率 | 8dBm | 20dBm |
| 连接稳定性 | 中等 | 优秀 |
| 数据传输速度 | 较慢 | 快速 |
## 🐛 故障排除
### 常见问题
1. **编译错误esp_sleep_enable_wifi_wakeup未声明**
- 解决添加 `#include <esp_sleep.h>`
2. **APP连接失败**
- 检查ESP32 IP地址是否正确 (192.168.1.3)
- 确认WiFi连接正常
- 检查HTTP服务器是否启动
3. **省电模式不生效**
- 检查ESP32日志确认省电模式设置成功
- 使用万用表测量实际功耗
4. **自动超时不工作**
- 检查定时器是否正确启动
- 确认processTasks()在主循环中被调用
### 调试技巧
1. **启用详细日志**
```cpp
esp_log_level_set("WiFiPowerMgr", ESP_LOG_DEBUG);
```
2. **监控WiFi状态**
```cpp
wifi_ps_type_t ps_type;
esp_wifi_get_ps(&ps_type);
ESP_LOGI(TAG, "当前WiFi省电模式: %d", ps_type);
```
3. **测试API响应**
```bash
curl -v http://192.168.1.3:80/api/kitchen/monitor
```
## 🎉 成功标准
**基本功能**
- ESP32成功编译和烧录
- WiFi省电管理器正常初始化
- HTTP API正常响应
**省电效果**
- 省电模式功耗 < 10mA
- 高响应模式功耗 > 100mA
- 模式切换时间 < 1秒
**用户体验**
- APP进入厨房监控页面自动唤醒WiFi
- 退出页面自动恢复省电
- 5分钟超时自动恢复省电
**稳定性**
- 长时间运行无崩溃
- 模式切换无异常
- 网络连接稳定
## 📈 后续优化建议
1. **云端中转配置**
- 实现30-60秒轮询窗口
- 减少直连依赖
2. **更智能的省电策略**
- 根据时间段调整策略
- 学习用户使用习惯
3. **功耗进一步优化**
- 考虑Deep Sleep模式
- 优化唤醒频率
---
**🔥 萤火虫ESP32智能家居系统 - WiFi省电管理器**
*让您的智能家居既智能又节能!*