smart-home/UART_RADAR_CONFIG.md
2026-02-26 09:16:34 +08:00

3.8 KiB
Raw Blame History

雷达传感器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)

// 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初始化逻辑

// 完全控制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) - 详细距离数据

距离分段

enum DistanceRange {
    RANGE_NONE,    // 无目标
    RANGE_NEAR,    // 近距离 (0-100cm)
    RANGE_MEDIUM,  // 中距离 (100-300cm)
    RANGE_FAR      // 远距离 (300cm+)
};

数据结构

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数据传输

{
  "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