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

    【ESPHome 實作】用一顆電位器看懂濾波器:數值為什麼跳、怎麼讓它不跳

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 13:06:59 | 顯示全部樓層 |閱讀模式
    「我的感測器數字一直跳」是自製感測器的第一名抱怨。

    這篇不講理論。我們接一顆五十塊的電位器上去,先看到它跳得多難看,再一個一個加濾波器,每加一個都回日誌確認差別。

    先看到它跳得多難看

    做完這篇你會有什麼


    • 一片能同時讀「類比電壓」和「溫濕度」的 ESP32
    • 親眼看過同一顆感測器在「沒濾波」和「有濾波」時的日誌差多少
    • 一組可以直接抄去用的濾波器配方(溫濕度、CO2、PM2.5、功率、電池電壓)
    • 知道怎麼驗證濾波真的生效,而不是「看起來好像順了」


    為什麼要用電位器當教材

    溫度感測器跳得很慢很小,你盯著日誌看十分鐘也分不出濾波有沒有效果。ESP32 的類比輸入(ADC)本身雜訊就很大,而且你可以用手轉電位器去製造變化 —— 因果關係一目了然,這是最容易「看懂」濾波器的方式。

    ---

    第一步:買零件

    如果你已經做過上一篇(三台溫濕度感測器),只要再買一顆電位器,大約五十元。


    • ESP32 開發板 ×1(搜「ESP32 DevKit V1」或「ESP32-WROOM-32 開發板 38pin」,約 150~250 元)
    • 10kΩ 旋鈕電位器 ×1(搜「10K 可變電阻 旋鈕」或「WH148 10K 電位器」,約 20~40 元。三隻腳那種)
    • AHT20 溫濕度模組 ×1(搜「AHT20 溫濕度感測器模組」,約 40~70 元)
    • 麵包板 + 杜邦線(搜「麵包板 830 孔」、「杜邦線 公對母 40pin」,合計約 90 元)
    • USB 線 ×1


    為什麼是 10kΩ 而不是 1kΩ 或 100kΩ

    電位器接在 3.3V 和 GND 之間,等於一條會一直耗電的分壓電路。


    • 1kΩ → 持續消耗 3.3mA,對 USB 供電沒差,但用電池就浪費
    • 10kΩ → 消耗 0.33mA,剛好
    • 100kΩ → 消耗更少,但輸出阻抗太高,ESP32 的 ADC 讀不準,數值會更亂


    10kΩ 是阻抗和耗電的平衡點,這也是市面上最好買的規格。

    ---

    第二步:接線

    10kΩ 是阻抗和耗電的平衡點,這也是市面上最好買的規格。

    電位器(三隻腳)

    旋鈕朝上、三隻腳朝自己時,由左到右是 1、2、3。中間那隻(第 2 腳)叫做「滑動端」,是會隨旋鈕改變電壓的那一隻。


    • 第 1 腳(左) → ESP32 的 GND
    • 第 2 腳(中,滑動端) → ESP32 的 GPIO34
    • 第 3 腳(右) → ESP32 的 3V3


    第 1 腳和第 3 腳對調也沒關係,只是旋鈕轉的方向會相反。中間那隻絕對不能接錯。

    AHT20 溫濕度模組

    (看模組上的白色絲印,不同賣家的腳位順序不一樣。)


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


    ⚠⚠ 為什麼一定要用 GPIO34,不能隨便挑一隻

    這是 ESP32 最陰險的坑之一。

    ESP32 有兩組類比轉換器,ADC2 那一組跟 Wi-Fi 共用硬體資源。Wi-Fi 一啟動就會把 ADC2 整個佔走,這時候讀 ADC2 的腳位會拿到垃圾數值或直接讀不到 —— 而且完全不會報錯。你會以為是電位器壞了、接線錯了,怎麼查都查不出來。


    • ADC2(開 Wi-Fi 就不能用):GPIO 0、2、4、12、13、14、15、25、26、27
    • ADC1(可以用):GPIO 32、33、34、35、36、39


    ADC1 裡面再挑的話:


    • GPIO32、33 最好用 —— 能輸入也能輸出,有內建上下拉電阻,之後想改接別的東西比較彈性
    • GPIO34、35、36、39 只能輸入,而且沒有內建上下拉電阻。讀電位器沒問題(電位器本身就把電壓定住了),但拿來接按鈕就一定要外接電阻
    • GPIO36 和 39 另外有一個已知問題:同時用到 ADC 又開了睡眠模式時,它們的中斷會亂觸發。純讀類比值不受影響


    本篇用 GPIO34。之後你要換成 32 或 33 也完全可以。

    ESP32-S3、C3、C5、C6 沒有這個問題 —— 新一代的晶片已經把 ADC 和 Wi-Fi 的衝突解掉了。但如果你手上是最常見的 ESP32-WROOM-32,這條規則一定要遵守。

    接完先確認一件事

    拿三用電表轉到直流電壓檔,黑棒接 GND、紅棒接電位器中間那隻腳。轉動旋鈕,電壓應該在 0V 到 3.3V 之間平順變化。


    • 電壓固定不動 → 中間那隻腳接錯了(接到左邊或右邊那隻去了)
    • 只在 0 和 3.3V 之間跳,沒有中間值 → 買到的是「開關型」不是「可變電阻」,換一顆


    沒有電表也可以直接往下做,第四步的日誌一樣看得出來。

    ---

    第三步:secrets.yaml

    在 /config/esphome/secrets.yaml 確認有這幾個鍵:

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

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

    本版積分規則

    延伸閱讀

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

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

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

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