23d1ce2ac61039427b25407d3806dece5aa0e9fe
Co-authored-by: Cursor <cursoragent@cursor.com>
CYD 温湿度仪表盘
ESP32 Cheap Yellow Display(ESP32-2432S028R)+ DHT11 + LVGL 温湿度仪表盘。
硬件
| 项目 | 说明 |
|---|---|
| 板子 | CYD ESP32-2432S028R(2.8" ILI9341) |
| 传感器 | DHT11 |
| DATA | GPIO22(CN1 / P3) |
| 供电 | USB 5V;电池需外接充电管理(板载 JST 多为供电口) |
接线: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 变体 |
3D 外壳
v1.1 圆角分体壳(前框 + 后盖 + 四侧悬臂卡扣 + 后盖 DHT 卡位),可直接打印:
- STL:
cad/export/front.stl、cad/export/back.stl、cad/export/snap_coupon.stl(试打卡扣) - 浏览器预览:
cad/viewer.html(需本地 HTTP,见下) - 参数与打印建议:
cad/README.md
# 浏览器查看
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 # 本文档
变更约定
每次功能或行为改动须:
- 更新本 README(及必要时的注释)
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/,附一键刷写脚本 |
Description
Languages
C++
36%
HTML
26.6%
Python
18.6%
PowerShell
10%
OpenSCAD
5.7%
Other
3.1%