141 lines
3.8 KiB
Markdown
141 lines
3.8 KiB
Markdown
|
|
# 雷达传感器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
|