smart-home/UART_RADAR_CONFIG.md

141 lines
3.8 KiB
Markdown
Raw Normal View History

2026-02-26 09:16:34 +08:00
# 雷达传感器UART完整配置指南
## 🎯 目标
启用完整的UART功能实现雷达传感器详细距离检测
**UART串口 → WiFi → APP**
## ✅ 已完成的配置修改
### 1. **控制台配置修改** (sdkconfig)
```
# 原配置 (UART0被控制台占用)
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
CONFIG_ESP_CONSOLE_UART_NUM=0
# 新配置 (控制台移至UART1)
CONFIG_ESP_CONSOLE_UART_CUSTOM=y
CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1=y
CONFIG_ESP_CONSOLE_UART_NUM=1
CONFIG_ESP_CONSOLE_UART_TX_GPIO=47
CONFIG_ESP_CONSOLE_UART_RX_GPIO=48
```
### 2. **雷达传感器配置** (RadarSensor.h/cpp)
```cpp
// UART配置常量 (专用UART0)
static constexpr uart_port_t UART_NUM = UART_NUM_0;
static constexpr int UART_BAUD_RATE = 256000; // 雷达传感器波特率
static constexpr int UART_TX_PIN = 1; // TXD0
static constexpr int UART_RX_PIN = 3; // RXD0
```
### 3. **硬件连接** (根据原理图)
```
雷达传感器 → ESP32
TXD_HLK → RXD0 (GPIO3)
RXD_HLK → TXD0 (GPIO1)
```
### 4. **UART初始化逻辑**
```cpp
// 完全控制UART0安装专用驱动
uart_driver_install(UART_NUM_0, UART_BUF_SIZE, UART_BUF_SIZE, 0, NULL, 0);
uart_param_config(UART_NUM_0, &uart_config);
uart_set_pin(UART_NUM_0, 1, 3, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
```
## 🔧 功能特性
### **双模式检测**
- **GPIO检测**: PIN_RADAR_DET (GPIO6) - 基础存在检测
- **UART通信**: UART0 (256000 bps) - 详细距离数据
### **距离分段**
```cpp
enum DistanceRange {
RANGE_NONE, // 无目标
RANGE_NEAR, // 近距离 (0-100cm)
RANGE_MEDIUM, // 中距离 (100-300cm)
RANGE_FAR // 远距离 (300cm+)
};
```
### **数据结构**
```cpp
struct RadarData {
bool detected; // GPIO检测结果
bool uart_available; // UART数据可用性
uint16_t moving_distance; // 运动目标距离(cm)
uint16_t static_distance; // 静止目标距离(cm)
uint8_t moving_energy; // 运动目标能量
uint8_t static_energy; // 静止目标能量
const char* distance_range; // 距离分段字符串
};
```
## 📡 HTTP API响应格式
### **WiFi → APP数据传输**
```json
{
"grid": [25.1, 25.2, ...],
"pir": 1,
"radar": {
"detected": true,
"uart_available": true,
"distance_range": "near",
"moving_distance": 85,
"static_distance": 0
}
}
```
### **距离分段值**
- `"none"`: 无目标检测
- `"near"`: 近距离 (0-100cm)
- `"medium"`: 中距离 (100-300cm)
- `"far"`: 远距离 (300cm+)
- `"unknown"`: UART不可用时的默认值
## 🚀 下一步操作
### **需要烧录新固件**
1. 连接ESP32设备
2. 烧录包含UART配置的新固件
3. 重启设备
### **验证步骤**
1. **控制台检查**: 确认控制台在UART1 (GPIO47/48)
2. **UART测试**: 验证UART0专用于雷达传感器
3. **API测试**: 检查HTTP API返回详细雷达数据
4. **距离测试**: 验证距离分段功能
## 📋 配置文件清单
### **修改的文件**
-`sdkconfig` - 控制台配置
-`RadarSensor.h` - UART配置常量
-`RadarSensor.cpp` - UART初始化逻辑
-`Board.h` - 引脚说明更新
-`ACRemoteAPI.cpp` - HTTP API响应
### **测试文件**
-`test_radar_distance.py` - 完整测试脚本
-`quick_radar_test.py` - 快速验证脚本
## 🎉 预期结果
烧录新固件后,系统将具备:
- **完整UART通信**: 256000 bps专用通信
- **详细距离数据**: 运动/静止目标距离和能量
- **智能分段**: near/medium/far距离分类
- **WiFi数据传输**: 实时传输到APP
- **向后兼容**: 保持所有原有功能
## ⚠️ 注意事项
1. **控制台访问**: 烧录后控制台将在UART1 (GPIO47/48)
2. **调试连接**: 如需调试连接UART1而非UART0
3. **硬件确认**: 确保雷达传感器正确连接到UART0引脚
4. **波特率匹配**: 雷达传感器必须配置为256000 bps