從零打造「智慧喝水管家」:ESP32-C3 硬體設計、3D 列印與全韌體開發實錄
3 分鐘
- 一、 專案發想與健康科學背景
- 二、 電路原理圖與 PCB 佈局
- 真正最終版目前檔案叫不出來…等 EasyEDA客服解決
- 三、 避坑血淚史:PCB 除錯
- 四、 3D 機構設計與 3D 列印實戰
- 五、 韌體開發與系統架構 (Firmware Development)
作者:
Kevin Chen
原始網站:
Stonez56創客工坊
原文連結:
https://www.stonez56.com/archives/1239
前言:
當我想把一個在麵包板上用杜邦線插得像蜘蛛網一樣的原型,變成一個能實用半年的智慧健康穿戴裝置時,會遇到多少坑?感謝全球領先的 PCB 製造與 PCBA 代工廠 JLCPCB 的贊助邀請,讓我有機會記錄下這個專案從初期的靈感發想、電路原理圖繪製、PCB 佈局優化、JLCPCB 工廠打樣/SMT 貼片,到 3D 機構外殼與 ESP32-C3 低功耗韌體的全流程開發記錄。
一、 專案發想與健康科學背景
1.1 為什麼需要一個「智慧喝水管家」?
許多人日常工作中常遇到的問題是:工作一忙起來就忘記喝水,或者直到劇烈口渴才一次暴飲暴食般地灌水。在預防醫學與生理學中,大腦脫水 就會引發專注力下滑與認知下降,而人體腎臟每小時處理水分也有其上限。為了實現「少量多次」的科學補水,我需要一個能夠非侵入式感測喝水動作、定時溫和提醒、且具備超長續航力的智慧貼合裝置。
1.2 產品原型與形態演進
• 原型階段 (Breadboard Prototype): 使用 ESP32-C3 SuperMini 開發板 + MPU6050 六軸感測器 + 0.96 吋 SSD1306 OLED 螢幕,搭上外接 TP4056 充電模組與鋰電池。
• 痛點 : 杜邦線易鬆脫、體積龐大、電源路徑衝突(拔掉 USB 就斷電,或是充電時電池過熱)。
• 終極目標 : 將所有核心元件整合進一片 的微型雙層 PCB 上,並結合 3D 列印弧形膠囊外殼與高彈性矽膠帶,輕鬆安裝於任何日常水壺上。
二、 電路原理圖與 PCB 佈局
我使用 EasyEDA Pro (嘉立創 EDA Pro) 進行設計,它可以免費使用之外, 也可以一鍵送出圖檔並下單, 完美對接 JLCPCB 的生產與 SMT 代工規範。
由於這是我第一次畫電路板, 所以錯誤很多…哈…過程中也學習了很多!
真正最終版目前檔案叫不出來…等 EasyEDA客服解決
2.1 核心模組選型與 LCSC 編號綁定
為了能直接讓
JLCPCB 進行 SMT (自動貼片焊接)
,我們在 EasyEDA 的原理圖中,所有關鍵被動元件與主晶片均綁定了
LCSC 零件編號 (Part Number)
,實現一鍵報價與自動比對庫存:
| 零件名稱 | 規格與封裝 | LCSC 訂購編號 | 設計功能與眉角 |
| ESP32-C3 插座 | 1×7 2.54mm 排母 (x2) | C22550 | 保持 15.24 mm (600 mil) 標準跨距,方便插拔模組 |
| 充電設定電阻 (R1) | 3.3k ohm ±1% (0603) | C22978 | TP4056 PROG 腳電阻,設定充電電流為 364 mA,安全保護鋰電池 |
| 防倒灌二極體 (D1) | SS14 蕭特基二極體 (SMA) | C14998 | 低壓降 (0.2V),防止 USB 5V 與電池電壓倒灌的單向防護閘門 |
| I2C 上拉電阻 | 4.7k ohm x2 (0603) | C25900 | 強化 SDA (GPIO9) / SCL (GPIO8) 總線訊號品質,防止螢幕黑屏 |
| 分壓檢測電阻 | 100k ohm ±1% (0603) | C25891 | 精密分壓路徑,降低微安培級靜態洩漏電流 |
| 濾波瓷片電容 | 100nF (0603) | C14663 | 並聯於 ADC 腳位與 GND 之間,吸收高頻雜訊維持電量讀數穩定 |
| 側按式輕觸開關 | 2-pin SMD 帶固定耳 | C2906288 | 承受水平側按推力,連接至 GPIO1 作為選單互動鍵 |
| 電池連接插座 | JST-PH-2.0mm 2P | C173752 | 標準化防呆插座 (Pin 1=GND, Pin 2=BAT),避免正負極接反燒毀 |
2.2 電源路徑管理 (Load Sharing) 的工程血淚與 AI 現實
在可攜式裝置中,電源路徑管理(Load Sharing)一直是一大難關。最初我試圖完全依賴 AI 輔助生成的電源切換電路,但在實際測試中發現:直接將 TP4056 輸出端與系統負載併聯,會導致 TP4056 無法正確判斷「充滿截止電流 (C/10)」,進而引發過熱甚至電池膨脹;當插拔 USB 瞬間,系統也會因為電壓突波而反覆重啟。
這驗證了一個事實: AI 在程式碼編寫與概念發想上非常高效,但在複雜的類比電路、電源管理與硬體細節上,目前依然無法完全取代專業工程師的經驗。 (如果你有成功使用AI完成這一塊, 請和大家分享)
為了讓這個產品順利落地,我最終花了不少錢😅,在 Fiverr 上聘請了一位經驗豐富的電子工程師 (EE Freelancer) 幫我重構電源切換電路。
最終工程師協助落實了 單向二極體防護與無縫切換機制 :
1. 單向二極體防護: 採用 SS14 蕭特基二極體 (D1)。陽極接電池開關 (VBAT_SW),陰極接系統主電源 (V_SYS / 5V)。
2. 無縫電源切換:
◦ 插上 USB 時: 外部 5V 直接為 V_SYS 供電,使二極體反向偏壓截止,電池專心接收 TP4056 充電。
◦ 拔除 USB 時: 二極體瞬間導通,電池電壓穿過 SS14 (極低壓降 0.2V) 為系統供電,ESP32-C3 不會發生重啟。
2.3 電池電量監測 (High-Impedance Voltage Divider)
為了讓 ESP32-C3 即時讀取 300mAh 鋰電池電壓:
• 設計一組由 100k ohm 與 100k ohm 精密金屬膜電阻分壓的迴路連至 GPIO3 (ADC1_CH3) 。
• 並聯一顆 100nF MLCC 陶瓷電容濾除高頻雜訊。
• 採用 100k ohm 大阻值將靜態洩漏電流控制在 (4.2V / 200k ohm) 約等於 21uA,完全不影響睡眠續航。
2.4 PCB Layout 走線筆記
1. 電源走線 (Power Traces): 3.3V、VBAT 與 V_SYS 的走線寬度特別加粗至 0.65 mm (25 mil),確保 ESP32-C3 在 Wi-Fi/藍牙突發發射電流時不掉壓。
2. 訊號線 (Signal Traces):I2C 訊號線 (SDA/SCL) 設定為 0.2 mm (8 mil),保持等長平行,避開高頻開關電源迴路。
3. RF 天線淨空區 (Antenna Keep-out Area): ESP32-C3 板載陶瓷天線的正下方與周圍,不論 Top Layer 或 Bottom Layer 均劃定禁止鋪銅區 (Keepout Zone),禁止任何走線與銅箔,確保無線訊號穿透力。
4. 地平面大面積鋪銅 (GND Copper Pour):上下層全板鋪銅,打上記號打孔 (Vias) 連結頂層與底層接地,減少迴路阻抗,提供良好散熱與抗干擾能力。
2.5 下單 JLCPCB 與 SMT 貼片
在 EasyEDA Pro 中完成所有設計後:
1. DRC (Design Rule Check) 點檢: 執行系統 DRC,確保最小線寬/線距符合 JLCPCB 的製造規範 (> 6 mil),且無未連線網路。
2. 導出 Gerber 與 BOM/CPL 檔案:
◦ 快捷鍵 Shift + M 一鍵導出 Gerber 壓縮檔。
◦ 導出 BOM (物料清單) 與 CPL (組裝座標檔/Pick and Place)。
3. JLCPCB 官網一鍵下單:
◦ 上傳 Gerber 檔,選定 紫色 或 經典黑 高質感 PCB 板色。
◦ 勾選 SMT Assembly,上傳 BOM 與 CPL 檔。
◦ 系統會自動比對 LCSC 零件庫存,連 0603 被動元件與 JST 端子都能精準對位,預覽 SMT 貼片成果! (有機會一定要試試看…太方便了)
三、 避坑血淚史:PCB 除錯
在研發過程中,我們並非一帆風順。以下記錄幾次關鍵的踩坑:
1. 最重大的錯誤: ESP32-C3 根本就放反了~~ 5V, GND, 3V3 是在對面啦. .. .OMG?!🥲
2. D1 二極體極性顛倒地雷:
◦ 錯誤: 初版將 SS14 的陰極對準了電池端,導致 USB 輸入的 5V 電壓無法通過二極體進入 V_SYS,開機瞬間系統直接死鎖。
◦ 解法: 在原理圖中確認箭頭指向 V_SYS,讓 USB 電壓順利進入系統,同時阻斷電池電流逆流。
3. 3D 模型的「航空母艦」縮放危機:
◦ 錯誤: 嘗試更換 5mm 矮排母時,在 3D 管理器中輸入高度,軟體因預設開啟「等比例縮放 (Uniform Scaling)」,導致整顆排母膨脹成覆蓋全板的「航空母艦」。
◦ 解法: 手動解開 X/Y/Z 軸連動鎖定,獨立輸入 Z 軸尺寸。
4. 不計其數….😅
四、 3D 機構設計與 3D 列印實戰
4.1 從 3D Preview 到 STEP 骨架導出
在 EasyEDA Pro 中完成 PCB 佈局後,點擊「文件 -> 匯出 -> 3D 模型 (STEP)」。
將獲得一個包含所有元件真實尺寸的 3D STEP 檔案,並直接匯入 Fusion 中進行外殼建模。
4.2 貼合曲面膠囊外殼與機構細節
1. 外殼造型: 採用背弧化膠囊設計,完美貼合直徑 60-85 mm 的圓柱形水壺。
2. 避讓公差:
◦ Type-C 充電口開孔預留 1.2 mm 的插頭外殼沉頭空間,防止因壁厚過厚導致 USB 線無法插到底。
◦ OLED 螢幕開孔留有 0.5 mm 微小間隙,並搭配 1.2 mm 厚度的亞克力透明面板防塵。
3. 高彈性矽膠帶固定: 外殼上的細長溝糟帶,搭配高彈性矽膠束帶或是髮帶,可快速拆卸轉移至不同水壺上。
真的有效呢!
五、 韌體開發與系統架構 (Firmware Development)
我們的韌體採用 Arduino IDE / ESP-IDF 開發,結合了語音/視覺互動與極低功耗機制。
5.1 MPU6050 姿態辨識與 EMA 濾波
為了辨識使用者是「拿起水壺喝水」還是「攜帶水壺走路晃動」,我們導入了 指數移動平均濾波 (EMA Filter) 與 向量內積角度演算法 :
• 透過計算重力加速度向量與水壺中心軸的夾角,精準判定仰角 > 35度 且持續超過 1.5秒 的動作為有效「飲水行為」。
裝置上的 OLED 顯示出不同時期及表情, 快速知道喝水狀態~
5.2 狀態機與 Deep Sleep 低功耗架構
為了讓 300mAh 鋰電池能維持長效續航,系統實作了 狀態機管理 :
1. Deep Sleep 進入條件: 無動作超過 10 秒後,ESP32-C3 關閉 OLED 電源,進入 Deep Sleep,靜態電流降至約 5uA。
2. Wake-on-Motion (WoM) 喚醒: MPU6050 保持低功耗加速度監測,當偵測到震動時,INT 中斷腳(連至 ESP32-C3 GPIO0/D0)拉低電位,瞬間喚醒主控。
5.3 離線與 Wi-Fi/NTP 時間同步雙重機制
• 配網介面: 開機後啟動 SoftAP 模式提供網頁配網。
• Dual-Bypass 容錯: 若無 Wi-Fi 訊號,使用者可點擊網頁「Cancel」或長按實體按鈕跳過配網。系統自動切換至內建 millis() 計算的「累積運作計時器」,維持計時與飲水提醒功能不中斷~
6.1 成品展示與 JLCPCB 打樣體驗總結
經過近四個月的研發,這款「智慧喝水管家」最終呈現在我們眼前:
• 體積輕薄: 雙層板卡結合 3D 列印外殼,總厚度僅 18 mm。
• 質感優雅: 3D 列印加上高質感紫色 PCB,搭配高對比 OLED 顯示畫面,徹底甩開了傳統創客套件「裸露麵包板與杜邦線」的廉價感。
6.2 JLCPCB 服務評測心得
1. 極致性價比: 打樣 5 片高品質 PCB 僅需數美元,SMT 貼片服務更是大幅減少了手工焊接 0603 貼片零件的崩潰感。
2. EasyEDA Pro 無縫整合: 從設計、查看 3D 模型,到直接匯出下單,流程極其順暢。
3. 交期迅速: 從上傳 Gerber 檔到拿到實體打樣板,僅需短短數個工作天,這對於需要快速迭代的 Maker 專案來說是無可替代的優勢!
結語
從原理圖的一條線,到拿在手上沉甸甸、能精準提醒喝水的智慧產品,這次與 JLCPCB 合作的專案經驗讓我深刻體會到「把想法實體化」的無限魅力。如果你也正在規劃自己的下一個物聯網專案,不妨打開 EasyEDA,讓 JLCPCB 幫你把心中的藍圖變成真實的硬體吧!
歡迎透過以下連結註冊 JLCPCB 繁體中文站並進行下單
https://jlcpcb.com/hk?from=Stonez56
持續學習
從零打造「智慧喝水管家」:ESP32-C3 硬體設計、3D 列印與全韌體開發實錄
作者: Kevin Chen 原始網站: Stonez56創客工坊 原文連結: https://www.stonez56.com/archives/1239 前言: 當我想把一個在麵包板上用杜邦線插得像蜘蛛網一樣的原型,變成一個能實用半年的智慧健康穿戴裝置時,會遇到多少坑?感謝全球領先的 PCB 製造與 PCBA 代工廠 JLCPCB 的贊助邀請,讓我有機會記錄下這個專案從初期的靈感發想、電路原理圖繪製、PCB 佈局優化、JLCPCB 工廠打樣/SMT 貼片,到 3D 機構外殼與 ESP32-C3 低功耗韌體的全流程開發記錄。 歡迎透過以下連結註冊 JLCPCB 繁體中文站並進行下單! https://jlcpcb.com/hk?from=Stonez56 一、 專案發想與健康科學背景 1.1 為什麼需要一個「智慧喝水管家」? 許多人日常工作中常遇到的問題是:工作一忙起來就忘記喝水,或者直到劇烈口渴才一次暴飲暴食般地灌水。在預防醫學與生理學中,大腦脫水 就會引發專注力下滑與認知下降,而人體腎臟每小時處理水分也有其上限。為了實現「少量多次」的科學補水,我需要一個能夠非侵入式感測喝水動作、定時溫和提醒......
PiBrick Pocket-CM5:使用 JLCPCB 打造的緊湊型 Raspberry Pi CM5 掌上型電腦
重點摘要 piBrick Pocket-CM5 是一款功能完整、智慧型手機大小的 Raspberry Pi CM5 掌上型電腦,配備實體 QWERTY 鍵盤、AMOLED 顯示器與 M.2 NVMe SSD 此專案採用 JLCPCB 的 4 層 PCB 製造與阻抗控制,包含 USB 的 90 歐姆阻抗,以及 PCIe/MIPI DSI 的 100 歐姆阻抗,以維持訊號完整性 該專案使用 EasyEDA 設計並由 JLCPCB 製造,並提交至 EasyEDA Spark 計畫,成功取得零件與材料贊助以支援開發 JLCPCB 的自動化 SMT 組裝服務,可處理具挑戰性的 0.4mm 間距板對板連接器,流程包含雷射切割鋼網、視覺導引取放與 AOI 品質檢查 JLCPCB 的軟性印刷電路板可在緊湊外殼內實現複雜內部走線,同時透過聚醯亞胺補強片維持連接器穩定性 整體元件採購透過 LCSC Parts Library 串接完成,減少採購延誤與組裝成本 開源硬體社群近年明顯轉向高度整合、可攜式運算裝置。在這個領域中,piBrick Pocket-CM5 是一個突出的專案,由硬體開發者 Ahmad Amarull......
再進化!輝光管時鐘第二代|硬體設計、KiCad Layout 與 JLCPCB 打樣實錄
作者: Habonroof 原始網站: Habonroof Playground 原文連結: https://www.habonroof-playground.com/2026/08/nixie-clock-design-and-debug.html 延續上一篇文章 再進化!輝光管時鐘第二代 | 設計動機與前言 我延續模組化設計把整個作品分成顯示板與控制板,並讓顯示板可以依照個人喜好選用IN-4或者IN-14的輝光管。 本文將介紹第一版樣品的各項功能、實際測試結果,以及評估後決定保留或移除的設計。同時也會說明如何使用 KiCad 完成 PCB Layout,並透過 JLCPCB 製作電路板及進行 SMT 組裝。 目錄 1. 第二代輝光管時鐘架構 2. 顯示板 3. 控制板 4. KiCad PCB Layout 5. 製造檔案輸出 6. JLCPCB 下單與 SMT 組裝 7. 結論 8. 參考資料 第二代輝光管時鐘架構 在第二代輝光管時鐘的設計,我延續模組化堆疊的方式,利用低價穩固的板載連接器將顯示板與控制板結合在一起。 顯示板 整個專案分成上下兩塊板子,上層為顯示板,可依照個人喜好搭配 IN-......
遙控模型用 ESP32 智慧控制板|JLCPCB
重點摘要 本專案展示如何透過 JLCPCB 製造及組裝設計完善的客製化 PCB,讓更多模型玩家也能使用進階電子技術。主要經驗包括: 在遵循可製造性設計(DFM)規則的前提下,優先採用精巧的高密度佈局。 複雜電路板應善用專業 SMT 組裝服務。 透過清楚標示及模組化設計提升使用便利性。 選擇製造能力符合專案需求的合作夥伴,以獲得穩定一致的成果。 專案概述:將專業自動化技術帶入業餘遙控模型 在充滿活力的遙控模型世界中,玩家不斷尋找方法,希望將簡單的玩具級載具升級為更具沉浸感及真實感的體驗。熱門 YouTube 頻道 Arduino Para Modelismo 的創作者 Aldeir Moreira 開發了 ESP32 智慧控制板。這款超精巧且功能豐富的控制方案,可為遙控卡車、汽車、船舶及工程機具提供精準動作控制、動態燈光效果,以及同步的擬真音效。 在充滿活力的遙控模型世界中,玩家不斷尋找方法,希望將簡單的玩具級載具升級為更具沉浸感及真實感的體驗。熱門 YouTube 頻道 Arduino Para Modelismo 的創作者 Aldeir Moreira 開發了 ESP32 智慧控制板。這款超精巧......
使用 JLCPCB 打造專業 8x8 RGB LED 矩陣
在 DIY 電子領域,想做出一塊乾淨可靠的 8×8 RGB LED 矩陣,過去得花上好幾個小時辛苦手焊——64 顆 WS2812B LED 加上 64 顆去耦電容。這一切因為創客 Lucas Fernando 從零設計了一塊全客製 PCB,並在第一次嘗試就交由 JLCPCB 專業代工,而徹底改觀。 結果?五塊完美完工、可直接使用的 8×8 可定址 LED 矩陣,看起來就像市售商品。更棒的是,整個專案 100% 開源。你可以從 GitHub 下載 Gerber 檔、BOM、CPL、電路圖與測試程式,幾分鐘內就能在 JLCPCB 下單。專案檔案(可直接上傳 JLCPCB): GitHub 儲存庫 – Gerber 壓縮檔、BOM.csv、CPL.csv、電路圖 PDF 與程式碼 專案概覽 這款模組化 8×8 RGB LED 矩陣使用 64 顆可獨立定址的 WS2812B LED,排列成完美網格。每顆 LED 旁都搭配一顆 100nF 陶瓷電容確保電源穩定,板子還附帶方便的 4 針直角連接器(5V / GND / DIN / DOUT),讓多片級聯變得毫不費力。 「今天我想分享一個讓我由衷自豪的專案:一......
PIC16F877A 主控學習板:由 JLCPCB 支援的全方位學習工具
在嵌入式系統培訓與快速原型開發領域,一塊紮實的訓練板是掌握微控制器技能與硬體整合的關鍵。本文聚焦於「PIC16F877A 大師訓練板專案」的誕生——一塊以 Microchip 經典 8 位元微控制器為核心的多功能板卡。PIC16F877A 隸屬 Microchip 中階系列,自 1990 年代末問世以來一直是電子教育的常客,在效能、成本與易用性之間取得平衡,無論初學者或專業人士都能快速上手。藉由 JLCPCB 先進的 PCB 生產與組裝能力,本專案在短週期內即交付高品質成果,讓教育與 Maker 應用得以無縫迭代與部署。 設計簡介 PIC16F877A 大師訓練板是一套完整的開發環境,核心採用 PIC16F877A 微控制器,具備 RISC 架構、8 KB 快閃程式記憶體、368 B RAM 與 256 B 內建 EEPROM。周邊包含 10 位元 8 通道 ADC、多組計時器、擷取/比較/PWM 模組,以及 USART、SSP(I²C/SPI)與並列從埠等通訊介面,應用範圍從 LED 閃爍到複雜感測器資料擷取皆能勝任。 板載多元周邊,方便實務教學與測試: 核心晶片:PIC16F877A 採 40......
