This website requires JavaScript.
優惠券
寄往
部落格

把 ESP32-C3 做成智慧居家燈控

最初發布於 Aug 24, 2026, 更新於 Aug 24, 2026

2 分鐘

目錄
  • 把 ESP32-C3 做成智慧居家燈控
  • 🔌 供電我先拆開
  • PCB 和 3D 圖
  • 🟦 先自己做 MQTT 中控
  • 🏠 後來改試 Matter
  • 📹 實測影片
  • 兩種方式實際差在哪
  • 🔧 製作時卡住的地方
  • 🙂 我做這個專案時,想法怎麼變

作者: 泰瑞電電
Github: terry-eric
项目連結: https://github.com/terry-eric/home_WS2812_control_online/tree/main
社群平台: Instagram @terry_ee_labThreads @terry_ee_lab


把 ESP32-C3 做成智慧居家燈控

從 home_WS2812_control_online 到 TerryESP-Matter-Controller

💡 我下這片 PCB,是想把 ESP32-C3、USB 供電和 WS2812 的控制收進一塊小板,做成可以放在家裡用的智慧燈。

我原本就比較熟 ESP32,所以這次直接用 ESP32-C3FH4。板子是雙層板,尺寸約 16.764 x 30.121 mm。上面有 USB Type-C、穩壓器、晶振、天線區、BOOT 按鍵和燈條接頭。我只拉一個 GPIO 出來控 WS2812,因為 WS2812 本身就能一顆接一顆串下去,線路不用拉得很複雜。

我一開始的想法很單純:先把控制板做出來,接上燈條,讓它可以從網路控制。後來同一塊板子先跑 MQTT,再改做 Matter。燈條、電源和 GPIO 控制都沒換,變的是上面那一層到底要怎麼連、誰來管。

🔌 供電我先拆開

畫板的時候,我沒有讓燈條跟 ESP32 共用 LDO。USB 的 5 V 進來後,一路直接給 WS2812;另一路才經過 MG6228T3B-33,供應 ESP32-C3FH4 的 3.3 V。這樣後面燈條電流變大時,不用連 LDO 也跟著選大顆。

資料線則從 GPIO10 出來,先過 330 歐姆電阻,再送到 WS2812。整個控制板拉出去就是 5 V、GND 和資料線三條。

ESP32C3_WS2812_Controller_Schematic
原始原理圖
ESP32C3_WS2812_Power_Control_Flow
電源和控制關係

PCB 和 3D 圖

USB-C 在板子一端,ESP32-C3 和天線區在中間,另一端是 WS2812 的三針接頭;BOOT 按鍵也留在板上。這樣之後換不同的燈條時,不需要再重做控制端。

ESP32C3_WS2812_PCB_Layout
PCB 版圖
ESP32C3_WS2812_Controller_3D_Render
3D 圖

🟦 先自己做 MQTT 中控

我那時候連中控網頁也一起做了,專案名稱是 home_WS2812_control_online。網頁上可以切燈效、開關和選顏色;按下去後,資料會送到公開免費的 Broker,ESP32-C3 收到指定主題的訊息,就去改 WS2812。

我目前用的主題例如 example/ws2812/mode 是燈效模式;example/ws2812/color 是顏色。

展示頁: https://demo.terry878.org/home_WS2812_control_online/

WS2812_MQTT_Web_Control_Interface
MQTT 燈條控制中心

前面自己測的時候,我想加什麼功能就加什麼,沒有什麼問題。燈效想多一個就多一個,顏色想怎麼傳也可以自己改。等我開始想把它當成家裡會一直用的燈,才開始碰到後面的事:Broker 誰管、帳號怎麼給、遠端連線要怎麼弄。這些不是不能做,只是都要自己顧。

🏠 後來改試 Matter

Matter 的部分我另外做成 TerryESP-Matter-Controller。家裡原本就有 Google Nest,所以後來就想直接把這塊板子丟進 Google Home 試試看,不想再一直顧另一個控制頁。Matter 前面配對、加進家庭比較花時間;不過加進去之後,家裡的人就直接從 Google Home 用。

專案頁: https://github.com/terry-eric/TerryESP-Matter-Controller

TerryESP_Controller_Home_Rooms
TerryESP Controller 首頁,房間與裝置分組。
TerryESP_Unified_Lighting_Control
統一控制頁:電源、亮度與顏色。
TerryESP_Color_Temperature_Lighting_Effects
統一控制頁:色溫與內建燈效。
TerryESP_Custom_LED_Strip_Editor
自訂燈條:20 顆燈珠預覽、圖樣與逐顆顏色編輯。
TerryESP_Google_Home_Settings
設定頁:Google 帳號、TerryESP 家庭與 Google Home 授權。

📹 實測影片

以下兩支是這個專案的實測影片。

影片 1: https://www.instagram.com/p/DbtTByizAnA/?hl=zh-tw

影片 2: https://www.instagram.com/p/DcY-WFeTNiw/?hl=zh-tw

兩種方式實際差在哪

兩邊的板子沒有差,都是 ESP32-C3 收到資料後,從 GPIO 輸出到 WS2812。MQTT 的 Broker、控制頁和權限要自己想;Matter 就照 Google Home 的方式配對和管理。

兩邊都能把燈控制起來。差別在後面要花多少時間把它變成家裡真的能用的東西。MQTT 比較適合我自己做功能時用;如果是放在家裡,直接進 Google Home 比較方便。

🔧 製作時卡住的地方

這個專案一開始看起來就是一顆 ESP32-C3、一個 GPIO,再接一條 WS2812 燈條。但真的開始做板子,第一個卡住的反而不是燈,而是 USB 一直斷線重連。那時候燈條都還沒接,MQTT 和 Matter 也還沒開始跑,光是讓板子穩定連上電腦就花了一段時間。我當時從 USB D+/D-、Type-C 腳位、焊接和電腦端開始看,也把 MCU 是否重設、3.3 V 是否穩定、BOOT/EN 周邊一起列入檢查。最後用 Arduino IDE 燒入空白程式後,USB 就恢復正常。

燈條接的數量一多,電流就不會和 ESP32 一樣小,所以我把燈條的 5 V 和 ESP32 的 3.3 V 分開。燈條直接用 USB 的 5 V,LDO 只負責 ESP32。

MQTT 做完後,後台、安全、帳號和遠端連線的事情才慢慢浮出來。控制畫面可以自己寫、主題可以自己定;這些東西也都要自己顧。Matter 的配對和加入 Google Home 前面也要花時間,不過進去之後,日常控制就比較不用一直自己維護。

🙂 我做這個專案時,想法怎麼變

一開始我想得很簡單:做一塊小板,接上 WS2812,能從網路控制就好。結果板子一開始真正卡住的不是燈效,也不是 MQTT,而是 USB 一直斷線重連。那時候會覺得,明明後面的功能都還沒開始,怎麼先卡在最基本的連線。

USB 的問題卡住時,電源怎麼分、開機和 BOOT 周邊有沒有放對、USB 能不能穩定,這些都得一起看。做板子時,看起來最不起眼的地方,反而常常最花時間。

MQTT 中控做起來後,我其實很喜歡那種想改什麼就改什麼的感覺。燈效、顏色、控制頁,都是我自己決定。可是當我開始想像它不是我坐在電腦前測試,而是真的放在家裡讓人使用,想法就不一樣了。不是每個人都會去管 Broker、帳號或連線,這些事情最後還是會回到我身上。

家裡原本就有 Google Nest,所以我才會接著試 Matter。把自己做的板子加進 Google Home 以後,控制、家庭成員和其他裝置都放在同一個地方。我想把原本自己顧的事情減少一點,讓它跟家裡其他智慧裝置一起用。

MQTT 讓我把控制做得很自由;Matter 則讓這塊自己畫的板子可以直接放進 Google Home。這個專案從『我能不能把燈控制起來』一路做到『我會不會真的想把它留在家裡一直用』。

持續學習