從零打造「智慧喝水管家」:ESP32-C3 硬體設計、3D 列印與全韌體開發實錄
3 分鐘
- 一、 專案發想與健康科學背景
- 二、 電路原理圖與 PCB 佈局
- 真正最終版目前檔案叫不出來…等 EasyEDA客服解決
- 三、 避坑血淚史:PCB 除錯
- 四、 3D 機構設計與 3D 列印實戰
- 五、 韌體開發與系統架構 (Firmware Development)
前言:
當我想把一個在麵包板上用杜邦線插得像蜘蛛網一樣的原型,變成一個能實用半年的智慧健康穿戴裝置時,會遇到多少坑?感謝全球領先的 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
作者:
Kevin Chen
原始網站:
Stonez56創客工坊
原文連結:
https://www.stonez56.com/archives/1239
持續學習
讓 AI Agent 參與 PCB 設計:MAX-M10S GNSS 四層板從 KiCad 到 JLCPCB SMT 的實作紀錄
專案資訊 作者:John 專案:MAX-M10S GNSS 驗證板 工作流程與範例檔:GitHub 公開專案 本次 PCB 製造與 SMT 組裝由 JLCPCB 合作支持;文中的 JLCPCB 連結為作者的合作推廣連結。 圖 1:MAX-M10S GNSS 驗證板 Rev C 成品。頂面 17 顆元件由 JLCPCB SMT 貼裝;兩側的 2.54 mm 排針孔留給使用者自行焊接。 這篇文章記錄一塊小板子的完整過程:用 Claude Code 和 Codex 兩個 AI Agent 協助 KiCad 設計,經過 ERC/DRC 與交叉審查,送到 JLCPCB 做四層板和 SMT 組裝,到貨後實際上電、收衛星、定位。 做完的感想是:Agent 幫得上的地方比我預期多,查原廠資料、寫驗證腳本、輸出製造檔都省了不少時間;但它也算錯過阻抗、寫錯過設計規則,還對證據不足的問題下過結論。後來的做法是每一步都要留下能重跑的證據,付款、送單和功能取捨則一律由我決定。 一、為什麼要做這塊板 我之後的幾個專案都會用到 GNSS 定位。與其直接把 GNSS 塞進一塊功能更多的板子,我想先用一塊獨立的小板確認幾件事: u......
KeyNest 四鍵小鍵盤製作紀錄|ESP32-S3、RGB、快捷鍵與網頁設定
KeyNest 四鍵小鍵盤製作紀錄 哈嘍各位,這次分享的是 KeyNest,一個四鍵的小鍵盤。四顆鍵可以各自設定快捷鍵,也有 RGB 燈和按鍵音。設定從網頁透過 USB 傳進板子,存好之後就可以關掉網頁繼續使用。 目前最直接的用法,就是把常用操作放到這四顆鍵上。像是把一顆設成複製,按下去就送出 Ctrl+C。也可以把 Ctrl 和 A 分在兩顆鍵,按住 Ctrl 再按 A。換一組快捷鍵,在網頁改好再存進去就可以,不用重燒程式。 圖 1:左為外殼 3D 模型,右為實機操作畫面。 四顆鍵排在前面 外殼前面是一整排按鍵,下方各有一個燈光視窗。喇叭的長條開孔放在上蓋後方,USB 從後側接進來。手放在前排操作時,線就留在後面。 這個專案是我先講想要什麼,再和 Codex 來回修改程式、網頁和功能整合。我負責看哪裡不對,再拿到實機上試。原本講出來的功能,慢慢變成桌上能按的東西,這個過程蠻有趣的。 外殼跟著 PCB 配 把模型拆開來看,依序是鍵帽、上蓋、PCB 和底座。四顆開關直接排在 PCB 上,上蓋留出整排按鍵的空間,前面的四個視窗再對到 RGB。底座則用固定柱支撐板子。 圖 2:機構展開的 3D 模型,非......
自製 USB 2.0 HUB:三個 USB-A、雙 Type-C 與 3D 外殼設計紀錄
自己做一個 USB 2.0 HUB 哈嘍各位,這次分享我做的 USB 2.0 HUB。 圖 1:實機照片。 做這個 HUB,我想把接口和外觀一起整理好。三個 USB-A 放在同一側,兩端再各留一個 Type-C,外殼的開口也跟著這個配置走。希望接起來能靈活、實用,線材和外觀也保持整潔、輕巧。這一版用的是 SL2.1A,外殼則交給 JLC 的 3D 代工製作。 這一版已做過基本連線和檔案傳輸測試。目前還是第一版原型,電源和 Type-C 的設計也有要注意的地方,後面會一起說明。 三個 USB A 放一起 兩端留 Type C 板上看得到五個插座,不過規劃上是一個上游、四個下游。標示 USB C IN 的 Type-C 接主機,另外三個 USB-A 和標示 USB C OUT 的 Type-C 則是下游接口。 當初也想把下游的 Type-C 接到下一個 HUB,讓線可以沿著兩端接下去。這是接口安排時的想法,串接的供電和相容性還沒有完整驗證。 圖 2:PCB 佈局。三個 USB-A 排在同一側,兩端各留一個 Type-C。 HUB 的電路 圖 3:依原理圖整理的資料通道關係。箭頭表示雙向資料傳輸,不是供......
從零打造「智慧喝水管家」:ESP32-C3 硬體設計、3D 列印與全韌體開發實錄
前言: 當我想把一個在麵包板上用杜邦線插得像蜘蛛網一樣的原型,變成一個能實用半年的智慧健康穿戴裝置時,會遇到多少坑?感謝全球領先的 PCB 製造與 PCBA 代工廠 JLCPCB 的贊助邀請,讓我有機會記錄下這個專案從初期的靈感發想、電路原理圖繪製、PCB 佈局優化、JLCPCB 工廠打樣/SMT 貼片,到 3D 機構外殼與 ESP32-C3 低功耗韌體的全流程開發記錄。 歡迎透過以下連結註冊 JLCPCB 繁體中文站並進行下單! https://jlcpcb.com/hk?from=Stonez56 一、 專案發想與健康科學背景 1.1 為什麼需要一個「智慧喝水管家」? 許多人日常工作中常遇到的問題是:工作一忙起來就忘記喝水,或者直到劇烈口渴才一次暴飲暴食般地灌水。在預防醫學與生理學中,大腦脫水 就會引發專注力下滑與認知下降,而人體腎臟每小時處理水分也有其上限。為了實現「少量多次」的科學補水,我需要一個能夠非侵入式感測喝水動作、定時溫和提醒、且具備超長續航力的智慧貼合裝置。 1.2 產品原型與形態演進 • 原型階段 (Breadboard Prototype): 使用 ESP32-C3 Supe......
設計精密 72 顆 LED 可穿戴手錶:使用 JLCPCB SMT 組裝製作 40 mm 圓形 PCB
重點摘要 本案例研究介紹一款採用精密 40 mm 圓形 PCB 製作的 72 顆 LED 可穿戴手錶。你將了解 JLCPCB SMT 組裝如何省去 70 多顆 0603 LED 的手工焊接、ENIG 表面處理如何確保可穿戴應用的可靠性,以及透過鼠咬孔分離耳實現圓形電路板自動組裝的巧妙拼板策略。整個專案涵蓋從 EasyEDA 原理圖繪製、韌體優化,到商用級不鏽鋼外殼整合的完整流程。 簡介與設計動機 製作客製可穿戴硬件,是現代電子領域中最具成就感、同時也最具挑戰性的工作之一。市面上的智能手錶通常依賴複雜 OLED 顯示器和耗電量較高的處理器,而開源專案創作者 Taifur 則希望製作一款極簡、具工業級質感的時計:LED 圓形手錶。 核心構想簡單,但在技術上要求很高:使用由 72 顆獨立 SMD LED 組成的環形顯示器,以 ATmega328P 微控制器和高精度 DS3231 實時時鐘(RTC)驅動。 然而,要將 72 顆 LED 的放射狀電路轉化為可穿戴產品,會遇到多項重大工程挑戰: 機械限制:PCB 直徑不能超過 40 mm,才能放入市售手錶外殼。 組裝複雜度:在 40 mm 電路板上,手工焊接 ......
Athena:打造高效能 6 層火箭航電 PCB
重點摘要 Athena 是一款開源飛行電腦,採用三 MCU 架構、冗餘感測器及多個通訊介面,整合於緊湊的 6 層 PCB 上。 這塊 80 × 140 mm 的電路板整合三個 STM32 MCU、三個 IMU、氣壓計、GNSS、LoRa、Bluetooth、CAN、USB、快閃記憶體、SD 卡及電源管理功能。 6 層 PCB 為這項複雜設計提供充足的佈線容量、有組織的電源分配、清晰的訊號規劃及緊湊的功能整合。 這個專案展示開源硬件如何透過專業 PCB 製造及組裝服務,由設計落地為實體硬件。 先進火箭技術需要飛行電腦在緊湊而可靠的硬件平台上整合運算、感測、通訊、電源管理及控制功能。NotARoomba 的開源飛行電腦專案 Athena 透過三 MCU 架構、冗餘感測、多個通訊介面、專用控制通道及 6 層 PCB,滿足這些要求。 Athena 電路板尺寸為 80 × 140 mm,整合三個 STM32 MCU、三個 IMU、氣壓計、GNSS、LoRa、Bluetooth、CAN、USB、快閃記憶體、SD 卡介面及多項電源管理功能。專案使用 EasyEDA 設計,並由 JLCPCB 負責 PCB 製造及......