diff --git a/README.md b/README.md
index cc598c2..62e0c73 100644
--- a/README.md
+++ b/README.md
@@ -64,3 +64,4 @@ README.md
| 日期 | 说明 |
|------|------|
| 2026-10-20 | 初版:参考 temperature/sgp30test,GY30(BH1750) SDA=GPIO22 / SCL=GPIO27,LUX/LEVEL 双表盘、场景条、趋势图 |
+| 2026-10-20 | 增加 `meta.json` 与 `media/preview.html`,供 cydweb 本地目录展示 |
diff --git a/firmware/cyd_28r/media/preview.html b/firmware/cyd_28r/media/preview.html
new file mode 100644
index 0000000..c0d0a6e
--- /dev/null
+++ b/firmware/cyd_28r/media/preview.html
@@ -0,0 +1,58 @@
+
+
+
+
+LIGHT
+
+
+
+
+
LIGHTup 02:18
+ OK
+
+
+
INDOOR
+
GY30 BH1750
SDA22 · SCL27
+
+
+
+
+
diff --git a/firmware/cyd_28r/meta.json b/firmware/cyd_28r/meta.json
new file mode 100644
index 0000000..c2e4fa1
--- /dev/null
+++ b/firmware/cyd_28r/meta.json
@@ -0,0 +1,10 @@
+{
+ "boardId": "esp32-2432s028",
+ "name": "CYD GY30 light dashboard",
+ "summary": "Lux & perceived-level gauges with scene bar and chart",
+ "description": "GY30 / BH1750 on SDA=GPIO22 / SCL=GPIO27. Dual arcs for LUX / LEVEL%, scene label, EV, live sparkline. Tap cycles backlight; hold resets min/max.",
+ "tags": ["light", "gy30", "bh1750", "lux"],
+ "media": {
+ "preview": "media/preview.html"
+ }
+}