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

    【ESPHome 實作】三台溫濕度感測器,從買零件到 packages 共用設定

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 13:06:55 | 顯示全部樓層 |閱讀模式
    這篇從「什麼都還沒買」開始,做到三台 ESP32 溫濕度感測器上線,而且三台共用同一份設定檔。

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

    這篇從「什麼都還沒買」開始,做到三台 ESP32 溫濕度感測器上線,而且三台共用同一份設定檔。

    做完這篇你會有什麼


    • 三台會回報溫濕度的 ESP32,在 Home Assistant 裡各自有溫度、濕度、Wi-Fi 訊號、運行時間、重開機按鈕
    • 一組 common/ 共用設定檔,改一個地方三台同時生效
    • 新增第四台只要寫十行


    為什麼要學這個 —— 先看痛點

    做第一台的時候,你會寫一份大約六十行的 YAML。做第二台的時候,你會複製那份,改兩個字。做到第三台,你手上有三份九成相同的檔案。

    然後有一天你想幫全部裝置加一個「重新開機」按鈕,你要改三個檔案,而且很容易漏掉一個。漏掉的那台不會報錯,只是 HA 裡少一顆按鈕,你三個月後才會發現。

    packages 就是解決這件事的。

    ---

    第一步:買零件

    三台的總成本大約一千元上下。括號裡是台灣賣場(露天、蝦皮、露天的電子零件賣場、台北光華)常見的搜尋關鍵字。


    • ESP32 開發板 ×3(搜「ESP32 DevKit V1」或「ESP32-WROOM-32 開發板 38pin」,約 150~250 元一片)
    • AHT20 溫濕度模組 ×3(搜「AHT20 溫濕度感測器模組」,約 40~70 元一片)
    • 麵包板 ×1(搜「麵包板 830 孔」,約 50 元)
    • 杜邦線 公對母 ×1 排(搜「杜邦線 公對母 40pin」,約 40 元)
    • USB 線 ×3(看你的板子是 Micro-USB 還是 USB-C,買錯很常見)
    • USB 充電器 5V/1A ×3(手邊舊的手機充電器就可以)


    為什麼選 ESP32-WROOM-32 而不是 ESP32-C3

    WROOM-32 是雙核心,Wi-Fi 和其他工作分開跑,比較不會互相卡。C3 是單核心、比較便宜,做單純的感測器也沒問題,但你之後如果想在同一片板子上加藍牙代理,雙核心穩定很多。第一次做,買 WROOM-32 比較不會在奇怪的地方卡住。

    為什麼選 AHT20 而不是 DHT22


    • AHT20 走 I2C,兩條訊號線就好,而且模組板上已經有上拉電阻,不用自己加
    • DHT22 走的是自訂的單線協定,裸片要自己加一顆 10kΩ 上拉電阻到 3.3V,忘了加就一直報「Invalid readings」
    • 精度:AHT20 溫度 ±0.3°C、濕度 ±2%RH;DHT22 溫度 ±0.5°C、濕度 ±2~5%RH
    • DHT22 兩秒才能讀一次,AHT20 沒這個限制


    AHT20 便宜又比較好用,沒有理由選 DHT22。

    ---

    第二步:接線

    AHT20 模組只有四隻腳。不要照「別人照片裡的順序」接 —— 不同賣家的模組排列順序不一樣。看板子上的絲印(白色印刷字),上面會寫 VIN/VCC、GND、SCL、SDA。

    接法(三台都一樣):


    • AHT20 的 VIN(或 VCC) → ESP32 的 3V3
    • AHT20 的 GND → ESP32 的 GND
    • AHT20 的 SDA → ESP32 的 GPIO21
    • AHT20 的 SCL → ESP32 的 GPIO22


    ⚠ VIN 接 3.3V 不要接 5V。 AHT20 模組多半能吃 5V,但它的 SDA/SCL 輸出會跟著變成 5V,而 ESP32 的腳位是 3.3V 邏輯,長期下來會傷板子。

    ⚠ 腳位為什麼是 21 和 22

    ESP32 的 I2C 腳位可以任意指定,但 21/22 是 ESP32 開發板的慣例,絕大多數範例都用這組。真的要換的話,避開這幾組:


    • 絕對不能用 GPIO6~11 —— 那六隻接內建的 SPI flash,接了東西會直接當機
    • GPIO34、35、36、39 只能當輸入,而且沒有內建上下拉電阻,不能當 I2C
    • GPIO0、2、12、15 是 strapping pin,開機瞬間會被讀取,接錯會開不了機或進入燒錄模式


    接完先目視檢查兩件事


    • VIN 那條真的插在標示 3V3 的孔,不是旁邊的 VIN/5V
    • SDA 和 SCL 沒有對調(對調的話待會 I2C 掃描會掃不到東西,不會燒壞)


    ---

    第三步:建立 secrets.yaml

    先做這個,不然下一步的設定檔會編譯失敗。

    在 Home Assistant 的「檔案編輯器」或 Studio Code Server 裡,開啟 /config/esphome/secrets.yaml(沒有就新建一個),內容:
    1. wifi_ssid: "你家的Wi-Fi名稱"
    2. wifi_password: "你家的Wi-Fi密碼"
    3. ap_password: "至少八碼的備援密碼"
    4. # 每一台裝置一把金鑰,等一下第四步會教你產生
    5. api_key_bedroom: "先留空,第四步填"
    6. api_key_study: "先留空,第四步填"
    7. api_key_living: "先留空,第四步填"
    複製代碼

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

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

    本版積分規則

    延伸閱讀

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

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

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

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