找回密碼
 立即註冊
    查看: 210|回覆: 0

    ESP32 + 電子紙資訊看板:從買零件做到掛上牆(含中文字與耗電實算)

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 13:14:33 | 顯示全部樓層 |閱讀模式
    做完這篇,你牆上會有一塊 4.2 吋的電子紙,顯示室內溫濕度、室外天氣、下一個行事曆事件,每 15 分鐘自己更新一次。

    每一步都有「你會看到什麼」。第三步做完能自己確認第三步成功了,才走第四步。

    做完這篇,你牆上會有一塊 4.2 吋的電子紙,顯示室內溫濕度、室外天氣、下一個行事曆事件,每 15 分鐘自己更新一次。

    先把一件事講清楚:省電的是螢幕,不是那台 ESP32

    電子紙最常被講的賣點是「超省電、電池撐幾個月」。這句話只對面板成立:電子紙靠雙穩態的電泳粒子顯示,畫面定住之後不耗電,只有更新的那一兩秒才吃電。

    但整台裝置的耗電是 ESP32 決定的,不是面板。而一般開發板在深度睡眠時的實際電流,跟晶片規格書上的數字差了三個數量級:


    • ESP32 模組本身(只有晶片 + 天線):深度睡眠約 10~20 µA
    • 一般 ESP32 DevKit 開發板:深度睡眠 5~20 mA


    差距來自板上那三顆「跟你的程式無關」的零件:


    • AMS1117 線性穩壓器 —— 靜態電流約 5 mA,睡不睡都在吃
    • CP2102N / CH340 這顆 USB 轉序列埠晶片 —— 約 1.3 mA
    • 板上的電源 LED —— 2~5 mA


    換算成天數(電池 2000 mAh):


    • 睡眠 8 mA:2000 ÷ 8 = 250 小時 = 大約 10 天
    • 睡眠 20 µA、每 30 分鐘醒來 15 秒(醒著約 80 mA):
        每天 48 次 × 15 秒 × 80 mA ≈ 16 mAh,加上睡眠 0.48 mAh,合計約 16.5 mAh/天
        → 2000 ÷ 16.5 ≈ 120 天


    同一份程式、同一塊面板,差別只在板子,結果是 10 天跟 4 個月。而且電池版失敗的時候完全沒有症狀 —— 它就是某天安靜地停在最後一個畫面上,電子紙沒電還是看得到字,你會以為它還在跑。

    所以這篇分成兩條路:


    • USB 供電版(步驟 1~7)—— 一定做得成,掛在有插座的地方,這是多數人真正要的
    • 電池版(步驟 8)—— 要換板子,而且要自己量,不能照抄規格書


    ---

    步驟 1:買零件

    USB 版的總成本大約 1,200~1,500 元。括號裡是台灣賣場(蝦皮、露天、光華)常見的搜尋關鍵字。


    • 電子紙模組 4.2 吋黑白 ×1(搜「Waveshare 4.2inch e-Paper Module」或「微雪 4.2 吋 電子紙 SPI」,約 800~1,000 元)
    • ESP32 開發板 ×1(搜「ESP32 DevKit V1」或「ESP32-WROOM-32 開發板 38pin」,約 150~250 元)
    • 杜邦線 母對母 ×1 排(搜「杜邦線 母對母 40pin」,約 40 元)
    • USB 線 + 5V/1A 充電器(舊手機充電器就可以)
    • 相框 ×1(4×6 吋的相框,挖掉內襯把面板嵌進去,約 100~200 元)


    為什麼是 4.2 吋


    • 2.9 吋(296×128):一行放得下大約 18 個中文字,總共三到四行。只夠顯示單一資訊,例如一個大大的溫度
    • 4.2 吋(400×300):放得下「室內一區 + 室外一區 + 一則行事曆」,而且 1.5 公尺外看得清楚。本文用這個
    • 7.5 吋(800×480):資訊量大一倍,但價格也大約兩倍(1,800 元起),而且刷新一次要三秒以上


    ⚠ 買的時候注意兩件事


    • 要買「黑白」的,不要買「黑白紅(B/W/R)」 —— 三色面板每次都得做完整刷新,一次要 15 秒以上,而且中途整片閃黑閃紅,掛在客廳很干擾
    • 確認賣場寫的是「模組(Module)」而不是「裸屏(Panel / RAW)」 —— 裸屏只有一條 24pin 的軟排線,沒有驅動板,接不到杜邦線


    ---

    步驟 2:接線

    確認賣場寫的是「模組(Module)」而不是「裸屏(Panel / RAW)」

    Waveshare 的 4.2 吋模組附一條 8 芯的排線,另一端是 8 根母頭杜邦線,每一根的顏色和標示都印在線上,不用對照圖猜。
    1. 電子紙模組     ESP32 開發板     這隻腳在做什麼
    2. ----------     ------------     --------------
    3. VCC (灰/紅)  → 3V3              供電,不要接 5V
    4. GND (棕/黑)  → GND              共地
    5. DIN (藍)     → GPIO23           資料線(SPI 的 MOSI)
    6. CLK (黃)     → GPIO18           時脈(SPI 的 SCK)
    7. CS  (橘)     → GPIO5            晶片選擇,拉低才理你
    8. DC  (綠)     → GPIO17           區分「這是指令」還是「這是畫面資料」
    9. RST (白)     → GPIO16           重置
    10. BUSY(紫)     → GPIO4            面板正在刷新時它是高電位
    複製代碼

    ⚠ VCC 一定要接 3V3,不要接 VIN 或 5V。Waveshare 的驅動板標示可以吃 5V,但它的訊號腳位會跟著變 5V 邏輯,而 ESP32 的腳位是 3.3V,長期會傷板子。

    怎麼在板子上找到這幾隻腳

    ESP32 DevKit 的腳位號碼印在板子邊緣(白色絲印),印的是 GPIO 編號不是排針順序,直接照著找 D23、D18、D5、D17、D16、D4 就對了(有些板子印成 G23、IO23,都是同一隻)。

    為什麼 DIN 和 CLK 要用 23 和 18

    這兩隻是 ESP32 的硬體 SPI(VSPI)預設腳位。SPI 用硬體跑,400×300 的畫面資料傳一次大約 15,000 個位元組,硬體 SPI 不到 0.1 秒就送完;換成別的腳位 ESPHome 會改用軟體模擬,慢上十幾倍。CS / DC / RST / BUSY 這四隻可以任意換,它們只是一般的開關訊號。

    避開這幾隻腳:


    • GPIO6~11 絕對不能用 —— 接內建的 SPI flash,接了東西會直接當機
    • GPIO34、35、36、39 只能輸入,不能拿來當 CS / DC / RST
    • GPIO0、2、12、15 是 strapping pin,開機瞬間會被讀取,接錯會開不了機


    ---

    步驟 3:準備中文字體檔

    GPIO0、2、12、15 是 strapping pin

    這是整篇最容易卡住的地方,而且卡住的時候只是「畫面上該有中文的地方是空的」,不報錯。

    電子紙沒有作業系統,也沒有字型庫。你要顯示「溫度」兩個字,就得在編譯的時候把那兩個字的點陣圖塞進韌體。

    為什麼不能用 gfonts://

    ESPHome 的 `glyphsets:` 選項有 `GF_Latin_Core`、`GF_Cyrillic_Core`、`GF_Greek_Core` 這些預先定義的字集,但官方文件裡一個 CJK(中日韓)的 glyphset 都沒有。中文只能自己一個一個列在 `glyphs:` 裡。而 `gfonts://` 是編譯時去 Google Fonts 抓檔,對中文這種超大字家族不穩,抓失敗的時候你只會看到一行編譯錯誤,卡在那裡。

    以下還有約 80% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-11-10 00:37 , Processed in 0.127624 second(s), 25 queries .

    快速回覆 返回頂部 返回列表