本文也發布於瀚思彼岸 ,另個很棒的HA論壇。
廢話不多說,先看CO2傳感器在HA內的顯示畫面:
這次拆解的是我主臥的CO2傳感器:
- 可以看到白天沒人在家的時候,只要開窗通風,CO2濃度基本都在402PPM左右。
- 晚上的數值起伏,是因為我有設定自動化,濃度高於900PPM就開啟新風機、低於700PPM就關閉新風機。
- 早上有一小段沒有數值的斷鏈,是因為我在拆解拍照。
材料清單:
- 上邊是CO2傳感模塊 (參考購買網址),如果不想焊接請買有插針的版本,如果偏好SenseAir的S8也行,價格也就貴了20塊人民幣。
- 左邊是nodemcu (參考購買網址),如果追求最低成本,可以選擇esp-01就好,五六塊人民幣就有。
- 右邊是DC-DC電源模塊 (參考購買網址),如果願意焊接,個人是比較喜歡AC-DC的模塊啦,不過本文分享重點就是免焊﹐就不節外生枝了。
- 下邊是PIR人體傳感模塊 (參考購買網址) ,這個是因為我主臥的zigbee人體傳感剛好壞了,我順手加上的,同學們可以省略。
- 通常家裡應該都會有閒置的變壓器,如果真沒,那就買吧 (參考購買網址)
- 母-母杜邦線9條 (參考購買網址)
以上,是最貴最入門的買法(折合台幣六百多),如果願意焊接、願意比價,總材料成本可以輕鬆壓到五百塊台幣以內。
再來就是找個適合的盒子囉,我喜歡廢物利用,就拿那顆壞掉的zigbee人體外殼來用吧。
最後是esphome的code,我剛學esphome的時候寫的,功能反正正常就沒特別再優化,高手筆下留情。
esphome:
name: co2-master
platform: ESP8266
board: nodemcuv2
# Enable logging
logger:
hardware_uart: uart1
# Enable Home Assistant API
api:
services:
- service: mhz19_calibrate_zero
then:
- mhz19.calibrate_zero: co2_master
ota:
password: !secret wifi_pw
web_server:
port: 80
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_pw
ap:
ssid: "co2-master Fallback Hotspot"
password: !secret wifi_pw
captive_portal:
# Example configuration entry
uart:
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 9600
sensor:
- platform: mhz19
update_interval: 20s
id: co2_master
automatic_baseline_calibration: false
co2:
name: "co2_master"
filters:
- sliding_window_moving_average:
window_size: 3
send_every: 3
#temperature:
# name: "MH-Z19 Temperature"
binary_sensor:
- platform: gpio
pin: GPIO4
name: "co2_master_pir"
device_class: motion
id: pir602
filters:
#- invert:
- delayed_on: 500ms
- delayed_off: 10s
switch:
- platform: restart
name: “co2_master_restart"
- platform: template
name: "co2_master_ABC"
optimistic: true
on_turn_on:
mhz19.abc_enable: co2_master
on_turn_off:
mhz19.abc_disable: co2_master
PS: 為了不讓"正中"踢群,所有我DIY製作的裝置都可以丟到homekit去用,謝謝。