# CYD LD2420 雷达仪表盘 ESP32 Cheap Yellow Display(ESP32-2432S028R)+ HLK-LD2420 24GHz 毫米波雷达 + LVGL 仪表盘。 ## 硬件 | 项目 | 说明 | |------|------| | 板子 | CYD ESP32-2432S028R(2.8" ILI9341) | | 传感器 | HLK-LD2420 | | OT1 | **GPIO22**(模块串口 TX → ESP RX,固件 ≥ v1.5.3) | | RX | **GPIO27**(模块串口 RX → ESP TX) | | 供电 | 3.3V / GND(与 CYD 共地) | 接线(固件 ≥ v1.5.3): ``` LD2420 3V3 → CYD 3.3V LD2420 GND → CYD GND LD2420 OT1 → GPIO22 LD2420 RX → GPIO27 ``` > 旧固件(< v1.5.3)串口 TX 在 OT2,且默认波特率多为 **256000**。本工程会依次探测 115200 / 256000。 ## 功能 - 横屏网格:距离圆弧 + 存在圆弧;底部左信息 / 右趋势图 - **显示 LD2420 固件版本**(启动时进入配置模式读取 `CMD 0x0000`) - **存在逻辑**:移动或静止检到 → 保持 ON;离开约 **10s** 后才 OFF(ESPHome 同款超时/门限) - 检测门默认 1–12(约 0.7–8.4 m),出厂静止门限(能坐着不动也保持有人) - 短按切换背光;长按 ≥0.7s 重置 min/max ## 构建与烧录 依赖 [PlatformIO](https://platformio.org/)。 ```bash pio run -e cyd_28r -t upload pio device monitor -b 115200 ``` ### 预编译固件(随时刷,不必编译) 已归档到 [`firmware/cyd_28r/`](firmware/cyd_28r/)(含 bootloader / partitions / app): ```powershell cd firmware\cyd_28r .\flash.ps1 # 或 .\flash.ps1 -Port COM3 ``` 说明见 [`firmware/README.md`](firmware/README.md)。源码更新后重新打包:`.\firmware\export_from_build.ps1`。 ### 环境选择 | 环境 | 适用 | |------|------| | `cyd_28r` | 标准 ILI9341 CYD(默认) | | `cyd_28r_inv` | 颜色反相 / 发白 | | `cyd_28_st7789` | USB-C 双口 / ST7789 变体 | ## 项目结构 ``` platformio.ini # 板级与库依赖 include/lv_conf.h # LVGL 配置 src/main.cpp # 仪表盘 + LD2420 驱动 scripts/exclude_lvgl_asm.py # 排除 ESP32 不兼容的 LVGL ASM firmware/ # 预编译固件(可离线刷写) .cursor/rules/ # Cursor 协作规则 README.md # 本文档 ``` ## 变更约定 每次功能或行为改动须: 1. 更新本 README(及必要时的注释) 2. 刷新 `firmware/cyd_28r/`(`.\firmware\export_from_build.ps1`) 3. `git add` + `git commit` 提交 详见 `.cursor/rules/git-and-docs.mdc`。 ## 变更记录 | 日期 | 说明 | |------|------| | 2026-10-18 | 初版:CYD + LD2420 LVGL 仪表盘;OT1→GPIO22、RX→GPIO27;显示固件版本 | | 2026-10-18 | 存在逻辑改为 ESPHome 出厂门限 + 10s 离开保持(动/静均保持 ON) | | 2026-10-18 | 归档预编译固件到 `firmware/cyd_28r/`,附一键刷写;初始化本地 Git | ## 串口日志示例 ``` CYD LVGL LD2420 Radar Dashboard LD2420 probe @ 115200 baud RX=22 TX=27 FW=v1.6.1 mode=simple set gates 1..12 to=10s (OK) ``` 界面左下角会显示 `FW v1.6.1` 与波特率(后缀 `S`=Simple)。