
百幾蚊自製 ESP32 天氣站:Home Assistant 自動抽濕開冷氣
BME280 接四條線就用得,真正要小心係校準、擺位同防水
百幾蚊,買到三組本地數據
XDA 作者 Ayush Pande 用一塊 ESP32-WROOM 配 BME280,整咗個細細部環境感測器,量度溫度、相對濕度同氣壓,再經 ESPHome 將數據送入 Home Assistant。佢設定房間溫度連續幾分鐘高過 25°C 就開冷氣,濕度過高亦會出通知,提醒佢收好 3D 打印耗材。成件事最實用嘅位係數據留喺屋企,唔使靠網上天氣服務估你間房有幾焗、幾濕。
香港買料唔算貴,但又未去到原文所講嗰種「幾乎唔使錢」。本地零售 ESP32 DEVKIT V1 標價 HK$65,DigiKey 香港一塊採用 BME280 嘅環境感測器板標價 HK$97.90,兩件核心零件合計約 HK$163,未計跳線、USB 線、火牛、外殼同運費。另一款 Seeed Studio Grove BME280 單計模組已經要 HK$167.74。平價網店可能低好多,不過落單要睇清楚係 BME280;外形相近嘅 BMP280 冇濕度讀數。

圖片:Sun Cheong Computer
零件唔多,接線資料反而要小心
基本清單包括 ESP32 開發板、已焊排針嘅 BME280 breakout、四條母對母跳線、USB 線同供電,屋企亦要有一部行緊 Home Assistant 嘅裝置。BME280 用 I²C 時只要接 3.3V、GND、SDA 同 SCL,ESPHome 官方亦支援 0x76、0x77 兩個常見地址。第一次寫入 firmware 可以經 USB,之後設定正確就可以用 Wi‑Fi OTA 更新,唔使每次拆盒插電腦。
不過原文有個幾值得提嘅甩漏:接線表寫 D21 接 SCL、D22 接 SDA,下面 YAML 就寫 SDA GPIO21、SCL GPIO22,兩邊互相打架。照抄任何一邊都有機會搞到搵唔到感測器。實際砌嗰陣應跟自己塊 ESP32 pinout、BME280 板上絲印同 ESPHome 設定逐項核對;開啟 I²C scan 睇到 0x76 或 0x77,先好當接線完成。
ESPHome 入 Home Assistant,設定比寫 Arduino 程式省事
ESPHome Device Builder 用 YAML 描述開發板、Wi‑Fi、I²C 同三組 sensor entity,編譯後直接寫入 ESP32。官方 BME280 component 預設每 60 秒更新一次,亦有 oversampling 同 IIR filter 可以調。原作者改成每 10 秒讀一次,其實控制冷氣或抽濕機冇必要再追得密;室溫同濕度變化慢,更新太頻密只會整出一條好忙但冇多幾多意思嘅曲線。
裝置連上 Home Assistant 後,溫度、濕度同氣壓會變成普通 sensor entity,可以擺落 dashboard、記錄歷史,亦可以做 numeric-state trigger。實際自動化最好加等待時間同兩個門檻,例如濕度升穿某水平之後維持一段時間,先至開抽濕,跌到較低水平先熄,減少部機喺門檻附近不停開關。冷氣、抽濕機如果要靠智能插蘇硬斷電,亦要先確認電器支援斷電後自動重開;有原生 Home Assistant integration 或可靠紅外線控制會穩陣啲。
感測器有小數點,唔代表真係準到小數點
Bosch 規格寫 BME280 濕度典型誤差係 ±3% RH,溫度喺 25°C 左右嘅典型誤差係 ±0.5°C,去到完整工作溫度範圍,誤差可以達 ±1°C。呢種表現夠做家居趨勢同自動化,但唔應該將 65.2% 當成實驗室級讀數。ESP32、穩壓器同火牛本身會發熱,感測器黐實開發板或者塞入細密封盒,溫度有機會偏高,連帶相對濕度讀數亦會受影響。
較穩陣嘅做法係將 BME280 同 ESP32 拉開少少,擺喺有空氣流通、冇陽光直射、遠離冷氣風口同電器熱源嘅位置,再同可信嘅溫濕度計並排比較。發現固定偏差,可以用 ESPHome 嘅 offset 或 calibrate_linear filter 修正;如果偏差會跟溫度或濕度改變,就要收集多個參考點,唔好見一次差兩度就永久減兩度。自動化門檻亦要預留感測器誤差,否則設定得太貼只會令控制反覆跳動。
想擺露台,防水盒都未夠
BME280 規格列明適用於非凝結環境,普通 breakout 板、跳線同 ESP32 開發板亦冇戶外防水能力。直接擺出露台遇到橫風雨、鹽霧或者高濕凝水,壞板只係時間問題。成套零件塞入密封 IP 盒又會衍生另一個問題:冇足夠換氣,量到嘅會偏向盒內溫度,ESP32 發熱亦會慢慢推高讀數。
真係要量戶外環境,電子部分應放入有線口防水處理嘅盒,感測頭就放入通風式百葉防輻射罩,避開直射陽光同雨水,同時保留空氣流通。呢類結構只係降低入水同日曬誤差,唔會令裸露 BME280 變成專業戶外探頭。以香港長期高濕同暴雨環境計,呢套 DIY 配置放室內監察抽濕最合理;戶外長期使用就應預算定期檢查、重新校準,甚至更換感測器。
最抵玩嘅用途係房間級自動化
網上天氣資料講緊一個地區,屋企唔同房間嘅濕度可以差好遠:浴室、睡房、雜物房同放 3D 打印物料嘅位置,處理方法都唔同。ESP32 價錢低,真正優勢係可以分區加幾個節點,畀 Home Assistant 按每間房嘅狀況控制風扇、冷氣或抽濕機。先用一個室內節點跑穩、校準好門檻,再決定值唔值得擴充,會實際過一開始就追求戶外全天候天氣站。
參考來源
- XDA Developers — I built a cheap ESP32 weather station to automate my Home Assistant server — original report
- BME280 Temperature+Pressure+Humidity Sensor — ESPHome — 核對 I²C/SPI、感測器地址、更新頻率同 filter 選項
- ESPHome integration — Home Assistant — 核對 ESPHome 裝置點樣經 native API 接入 Home Assistant
- BME280 Combined Humidity and Pressure Sensor Datasheet — 核對溫濕度準確度、工作範圍同非凝結環境限制
- Sensor Component — ESPHome — 核對 offset、calibrate_linear 同平均值等校準及濾波方法
- ESP32 DEVKIT V1 WiFi & Bluetooth Development Board — 核對香港本地 ESP32 開發板標價同供應資料
- BME280 Environmental Sensor Board — DigiKey Hong Kong — 核對香港可買到嘅 BME280 感測器板價錢
- Radiation Shield Assembly — 3D-PAWS — 核對戶外溫濕度感測器要兼顧遮雨、隔熱同空氣流通
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







