前言:
當我想把一個在麵包板上用杜邦線插得像蜘蛛網一樣的原型,變成一個能實用半年的智慧健康穿戴裝置時,會遇到多少坑?感謝全球領先的 PCB 製造與 PCBA 代工廠 JLCPCB 的贊助邀請,讓我有機會記錄下這個專案從初期的靈感發想、電路原理圖繪製、PCB 佈局優化、 JLCPCB 工廠打樣/SMT 貼片,到 3D 機構外殼與 ESP32-C3 低功耗韌體的全流程開發記錄。| 歡迎透過以下連結註冊 JLCPCB 繁體中文站並進行下單 https://jlcpcb.com/hk?from=Stonez56 |
一、 專案發想與健康科學背景
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 代工規範。 由於這是我第一次畫電路板, 所以錯誤很多...哈...過程中也學習了很多!

第一版的原理圖...錯誤很多~~😂
2.1 核心模組選型與 LCSC 編號綁定
為了能直接讓 JLCPCB 進行 SMT (自動貼片焊接),我們在 EasyEDA 的原理圖中,所有關鍵被動元件與主晶片均綁定了 LCSC 零件編號 (Part Number),實現一鍵報價與自動比對庫存:
2.2 電源路徑管理 (Load Sharing) 的工程血淚與 AI 現實
在可攜式裝置中,電源路徑管理(Load Sharing)一直是一大難關。最初我試圖完全依賴 AI 輔助生成的電源切換電路,但在實際測試中發現:直接將 TP4056 輸出端與系統負載併聯,會導致 TP4056 無法正確判斷「充滿截止電流 (C/10)」,進而引發過熱甚至電池膨脹;當插拔 USB 瞬間,系統也會因為電壓突波而反覆重啟。
這驗證了一個事實:AI 在程式碼編寫與概念發想上非常高效,但在複雜的類比電路、電源管理與硬體細節上,目前依然無法完全取代專業工程師的經驗。(如果你有成功使用AI完成這一塊, 請和大家分享)
為了讓這個產品順利落地,我最終花了不少錢😅,在 Fiverr 上聘請了一位經驗豐富的電子工程師 (EE Freelancer) 幫我重構電源切換電路。
最終工程師協助落實了單向二極體防護與無縫切換機制:
單向二極體防護: 採用 SS14 蕭特基二極體 (D1)。陽極接電池開關 (VBAT_SW),陰極接系統主電源 (V_SYS / 5V)。
無縫電源切換:
插上 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 走線筆記
電源走線 (Power Traces):
3.3V、VBAT 與 V_SYS 的走線寬度特別加粗至 0.65 mm (25 mil),確保 ESP32-C3 在 Wi-Fi/藍牙突發發射電流時不掉壓。
訊號線 (Signal Traces):
I2C 訊號線 (SDA/SCL) 設定為 0.2 mm (8 mil),保持等長平行,避開高頻開關電源迴路。
RF 天線淨空區 (Antenna Keep-out Area):
ESP32-C3 板載陶瓷天線的正下方與周圍,不論 Top Layer 或 Bottom Layer 均劃定禁止鋪銅區 (Keepout Zone),禁止任何走線與銅箔,確保無線訊號穿透力。
地平面大面積鋪銅 (GND Copper Pour):
上下層全板鋪銅,打上記號打孔 (Vias) 連結頂層與底層接地,減少迴路阻抗,提供良好散熱與抗干擾能力。
| 藍色的箭頭處即為電源走線,使用較粗的電路 0.65mm |
2.5 下單 JLCPCB 與 SMT 貼片
| JLCPCB 可即時看到 PCB 的排列(layout)線路 |
在 EasyEDA Pro 中完成所有設計後:
DRC (Design Rule Check) 點檢: 執行系統 DRC,確保最小線寬/線距符合 JLCPCB 的製造規範 (> 6 mil),且無未連線網路。
導出 Gerber 與 BOM/CPL 檔案:
快捷鍵 Shift + M 一鍵導出 Gerber 壓縮檔。
導出 BOM (物料清單) 與 CPL (組裝座標檔/Pick and Place)。
JLCPCB 官網一鍵下單:
上傳 Gerber 檔,選定 紫色 或 經典黑 高質感 PCB 板色。
勾選 SMT Assembly,上傳 BOM 與 CPL 檔。
系統會自動比對 LCSC 零件庫存,連 0603 被動元件與 JST 端子都能精準對位,預覽 SMT 貼片成果! (有機會一定要試試看...太方便了)
三、 避坑血淚史:PCB 除錯
在研發過程中,我們並非一帆風順。以下記錄幾次關鍵的「踩坑與復盤」:
| 請高手幫我檢查, 並以跳線方式讓PCB通電 |
最重大的錯誤: ESP32-C3 根本就放反了~~ 5V, GND, 3V3 是在對面啦... .OMG?!🥲
D1 二極體極性顛倒地雷:
錯誤: 初版將 SS14 的陰極對準了電池端,導致 USB 輸入的 5V 電壓無法通過二極體進入 V_SYS,開機瞬間系統直接死鎖。
解法: 在原理圖中確認箭頭指向 V_SYS,讓 USB 電壓順利進入系統,同時阻斷電池電流逆流。
3D 模型的「航空母艦」縮放危機:
錯誤: 嘗試更換 5mm 矮排母時,在 3D 管理器中輸入高度,軟體因預設開啟「等比例縮放 (Uniform Scaling)」,導致整顆排母膨脹成覆蓋全板的「航空母艦」。
解法: 手動解開 X/Y/Z 軸連動鎖定,獨立輸入 Z 軸尺寸。
四、 3D 機構設計與 3D 列印實戰
4.1 從 3D Preview 到 STEP 骨架導出
在 EasyEDA Pro 中完成 PCB 佈局後,點擊「文件 -> 匯出 -> 3D 模型 (STEP)」。我們將獲得一個包含所有元件真實尺寸的 3D STEP 檔案,並直接匯入 Fusion 中進行外殼建模。
| 把 STEP 檔在 Fusion 裡開啟 |
4.2 貼合曲面膠囊外殼與機構細節
外殼造型: 採用背弧化膠囊設計,完美貼合直徑 60-85 mm 的圓柱形水壺。
避讓公差:
Type-C 充電口開孔預留 1.2 mm 的插頭外殼沉頭空間,防止因壁厚過厚導致 USB 線無法插到底。
OLED 螢幕開孔留有 0.5 mm 微小間隙,並搭配 1.2 mm 厚度的亞克力透明面板防塵。
高彈性矽膠帶固定: 外殼上的細長溝糟帶,搭配高彈性矽膠束帶或是髮帶,可快速拆卸轉移至不同水壺上。
| 上下蓋合體 |
五、 韌體開發與系統架構 (Firmware Development)
我們的韌體採用 Arduino IDE / ESP-IDF 開發,結合了語音/視覺互動與極低功耗機制。
5.1 MPU6050 姿態辨識與 EMA 濾波
為了辨識使用者是「拿起水壺喝水」還是「攜帶水壺走路晃動」,我們導入了指數移動平均濾波 (EMA Filter) 與向量內積角度演算法:
| EMA_t = alpha * X_t + (1 - alpha) * EMA_(t-1) |
透過計算重力加速度向量與水壺中心軸的夾角,精準判定仰角 > 35度 且持續超過 1.5秒 的動作為有效「飲水行為」。
裝置上的 OLED 顯示出不同時期及表情, 快速知道喝水狀態~
| 很棒...有持續喝水的好習慣~ |
5.2 狀態機與 Deep Sleep 低功耗架構
為了讓 300mAh 鋰電池能維持長效續航,系統實作了狀態機管理:
Deep Sleep 進入條件: 無動作超過 10 秒後,ESP32-C3 關閉 OLED 電源,進入 Deep Sleep,靜態電流降至約 5uA。
Wake-on-Motion (WoM) 喚醒: MPU6050 保持低功耗加速度監測,當偵測到震動時,INT 中斷腳(連至 ESP32-C3 GPIO0/D0)拉低電位,瞬間喚醒主控。
5.3 離線與 Wi-Fi/NTP 時間同步雙重機制
配網介面: 開機後啟動 SoftAP 模式提供網頁配網。
Dual-Bypass 容錯: 若無 Wi-Fi 訊號,使用者可點擊網頁「Cancel」或長按實體按鈕跳過配網。系統自動切換至內建 millis() 計算的「累積運作計時器」,維持計時與飲水提醒功能不中斷~
六、 成品展示與 JLCPCB 打樣體驗總結
6.1 最終成品寫真
經過近四個月的研發,這款「智慧喝水管家」最終呈現在我們眼前:
體積輕薄: 雙層板卡結合 3D 列印外殼,總厚度僅 18 mm。
質感優雅: 3D 列印加上高質感紫色 PCB,搭配高對比 OLED 顯示畫面,徹底甩開了傳統創客套件「裸露麵包板與杜邦線」的廉價感。
6.2 JLCPCB 服務評測心得
極致性價比: 打樣 5 片高品質 PCB 僅需數美元,SMT 貼片服務更是大幅減少了手工焊接 0603 貼片零件的崩潰感。
EasyEDA Pro 無縫整合: 從設計、查看 3D 模型,到直接匯出下單,流程極其順暢。
交期迅速: 從上傳 Gerber 檔到拿到實體打樣板,僅需短短數個工作天,這對於需要快速迭代的 Maker 專案來說是無可替代的優勢!
結語
從原理圖的一條線,到拿在手上沉甸甸、能精準提醒喝水的智慧產品,這次與 JLCPCB 合作的專案經驗讓我深刻體會到「把想法實體化」的無限魅力。如果你也正在規劃自己的下一個物聯網專案,不妨打開 EasyEDA,讓 JLCPCB 幫你把心中的藍圖變成真實的硬體吧! 歡迎透過以下連結註冊 JLCPCB 繁體中文站並進行下單 https://jlcpcb.com/hk?from=Stonez56