CYD 温湿度仪表盘

ESP32 Cheap Yellow Display(默认 2.8" ESP32-2432S028R;可选 3.5" cyd_35r)+ DHT11 + LVGL 温湿度仪表盘。

跨板对照与避坑:上级目录 ../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。

pio run -e cyd_28r -t upload
pio device monitor -b 115200

预编译固件(随时刷,不必编译)

已归档到 firmware/cyd_28r/(含 bootloader / partitions / app):

cd firmware\cyd_28r
.\flash.ps1
# 或 .\flash.ps1 -Port COM3

说明见 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 卡位),可直接打印:

# 浏览器查看
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。

# 查看标签
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 对照)
Description
CYD project: temperature
Readme 689 KiB
Languages
C++ 36%
HTML 26.6%
Python 18.6%
PowerShell 10%
OpenSCAD 5.7%
Other 3.1%