# CYD 温湿度仪表盘 ESP32 Cheap Yellow Display(默认 2.8" ESP32-2432S028R;可选 3.5" `cyd_35r`)+ DHT11 + LVGL 温湿度仪表盘。 跨板对照与避坑:上级目录 [`../CYD_PROJECT_GUIDE.md`](../CYD_PROJECT_GUIDE.md) **§A**(2.8 vs 3.5:触控 / 背光 / 外设脚)。 ## 硬件 | 项目 | 2.8"(默认 `cyd_28r`) | 3.5C(`cyd_35r`) | |------|------------------------|-------------------| | 板子 | ESP32-2432S028R · ILI9341 | ESP32-3248S035C · ST7796 | | 触控 | XPT2046 SoftSPI | GT911 I2C | | 背光 | GPIO21 | GPIO27 | | DHT11 DATA | **GPIO22**(CN1 空闲脚之一;2.8 另一常用空闲脚为 **27**) | **GPIO22**(3.5 上 27=背光,勿接 DHT) | | 供电 | USB 5V | 同左 | 接线(两板 DHT):`VCC→3.3V`,`GND→GND`,`DATA→GPIO22`。 ## 功能 - 横屏网格布局:双圆弧仪表 + 底部左信息 / 右趋势图(分区不重叠) - EMA 平滑、min/max、舒适度条、体感 / 露点分行显示 - 圆弧与舒适度条缓动动画;趋势折线 SHIFT 更新 - 短按切换背光(4 档,顶部提示);长按 ≥0.7s 重置 min/max - 偶发 DHT 读失败容错(连续失败才报错) - 常亮运行(无自动熄屏 / 休眠) ## 构建与烧录 依赖 [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 变体 | | `cyd_35r` | 3.5" ESP32-3248S035(ST7796 + GT911) | ## 3D 外壳 v1.1 圆角分体壳(前框 + 后盖 + 四侧悬臂卡扣 + 后盖 DHT 卡位),可直接打印: - STL:[`cad/export/front.stl`](cad/export/front.stl)、[`cad/export/back.stl`](cad/export/back.stl)、[`cad/export/snap_coupon.stl`](cad/export/snap_coupon.stl)(试打卡扣) - 浏览器预览:[`cad/viewer.html`](cad/viewer.html)(需本地 HTTP,见下) - 参数与打印建议:[`cad/README.md`](cad/README.md) ```bash # 浏览器查看 python -m http.server 8765 --directory cad # 打开 http://localhost:8765/viewer.html # 重新导出 STL pip install trimesh manifold3d numpy shapely python cad/generate_stl.py ``` 合盖以卡扣为主、止口对齐;四角 `M3×10` 可选。建议 PETG;DHT11 装后盖背面卡位,线接 CN1。 ## 项目结构 ``` platformio.ini # 板级与库依赖 include/lv_conf.h # LVGL 配置 src/main.cpp # 仪表盘主程序 scripts/exclude_lvgl_asm.py # 排除 ESP32 不兼容的 LVGL ASM firmware/ # 预编译固件(可离线刷写) cad/ # 3D 外壳(OpenSCAD + STL) .cursor/rules/ # Cursor 协作规则 README.md # 本文档 ``` ## 变更约定 每次功能或行为改动须: 1. 更新本 README(及必要时的注释) 2. `git add` + `git commit` 提交 详见 `.cursor/rules/git-and-docs.mdc`。 ## 稳定版快照(可随时切回) | 标签 | 提交 | 内容 | |------|------|------| | **`v1.1-case-snaps`**(当前推荐) | `892e9d0` | 圆角 R3.5、四侧悬臂卡扣、定位柱、后盖 DHT 卡位、`snap_coupon` | | `v1.0-case-closed` | `646cf45` | 仅止口合盖 + DHT 后盖微突出,无卡扣、无旁侧格子 | 本地分支备份:`keep/v1.1-case-snaps`、`keep/v1.0-case-closed`。 ```bash # 查看标签 git tag -l # 临时查看当前稳定版(只读) git switch --detach v1.1-case-snaps # 基于该版开新分支继续改 git switch -c restore/v1.1-case-snaps v1.1-case-snaps # 切回旧无卡扣版 git switch --detach v1.0-case-closed # 整库硬切回(会丢弃之后未提交改动,慎用) git reset --hard v1.1-case-snaps ``` ## 变更记录 | 日期 | 说明 | |------|------| | 2026-10-17 | 初版:LVGL 仪表盘 + DHT11(GPIO22),平滑/舒适度/趋势/背光 | | 2026-10-17 | 曾加入 ECO 熄屏休眠,后改回常亮正常版 | | 2026-10-17 | 初始化 Git,补充 README 与提交约定 | | 2026-10-17 | 新增 CYD+DHT11 桌面斜立 3D 外壳(OpenSCAD / STL) | | 2026-10-17 | 增加浏览器 Three.js STL 预览页 `cad/viewer.html` | | 2026-10-17 | 预览增强:合盖/开盖、分解、装配动画、剖切/线框等 | | 2026-10-17 | 外壳改定:DHT11 后盖卡位微突出;前后盖止口合盖 | | 2026-10-17 | 去掉旁侧多余凸块;修复合盖对齐;DHT 改为后盖平面卡位 | | 2026-10-17 | 打标签 `v1.0-case-closed` 作为可回滚稳定版 | | 2026-10-17 | 外壳 v1.1:外圆角 R3.5、四侧悬臂卡扣、定位柱、卡扣试打样件 | | 2026-10-17 | 打标签 `v1.1-case-snaps`(及分支 `keep/v1.1-case-snaps`)作为可回滚稳定版 | | 2026-10-17 | UI 重排:修文字压图表;表盘/底栏分区;动画与短按/长按交互 | | 2026-10-17 | 顶栏改单行,避免 up 文案被表盘面板盖住 | | 2026-10-17 | 归档预编译固件到 `firmware/cyd_28r/`,附一键刷写脚本 | | 2026-10-25 | 3.5" 表盘读数:数值+单位整体居中,数值变宽后不再盖住单位 | | 2026-10-25 | 修复 3.5" 黑屏:背光改回 GPIO27(GPIO21 为 GT911 INT) | | 2026-10-25 | README 链到上级 `CYD_PROJECT_GUIDE.md` §A(2.8/3.5 对照) |