Air Quality v1.1 の ESPHome 統合には、空気質センサー、ボタン、電子ペーパーディスプレイ、RTC コンポーネントが含まれます。
| 項目 | 情報 |
|---|---|
| 製品名 | Air Quality v1.1 |
| SKU | K131-V11 |
| 主な機能 | CO2、粒子状物質、温湿度、VOC/NOx、電子ペーパーディスプレイ |
| 通信インターフェース | I2C、SPI、GPIO |
| ESPHome コンポーネント | scd4x、sen5x、adc、gpio、ledc、output、waveshare_epaper、bm8563 |
| 必要な ESPHome バージョン | 2025.5.0 以降 |
SCD40 は公式の SCD4x プラットフォームを使用し、CO2、温度、湿度のエンティティを提供します。
i2c:
sda: GPIO11
scl: GPIO12
sensor:
- platform: scd4x
co2:
id: scd40_co2
name: "CO2"
temperature:
id: scd40_temp
name: "SCD40 Temperature"
humidity:
id: scd40_humi
name: "SCD40 Humidity" SEN55 は公式の SEN5x プラットフォームを使用し、PM1.0、PM2.5、PM4.0、PM10、温度、湿度、VOC、NOx のエンティティを提供します。
sensor:
- platform: sen5x
id: sen55
pm_1_0:
id: sen55_pm_1_0
name: "PM <1µm Weight concentration"
pm_2_5:
id: sen55_pm_2_0
name: "PM <2.5µm Weight concentration"
pm_4_0:
id: sen55_pm_4_0
name: "PM <4µm Weight concentration"
pm_10_0:
id: sen55_pm_10_0
name: "PM <10µm Weight concentration"
temperature:
id: sen55_temp
name: "SEN55 Temperature"
humidity:
id: sen55_humi
name: "SEN55 Humidity"
voc:
id: sen55_voc
name: "VOC"
nox:
id: sen55_nox
name: "NOX" バッテリー電圧は、公式の ADC Sensor プラットフォームを使用して GPIO14 から読み取ります。分圧回路により ADC 入力は実際のバッテリー電圧の半分になるため、multiply: 2 を使用して電圧を復元します。
sensor:
- platform: adc
id: battery
pin: GPIO14
name: "Battery Voltage"
attenuation: 12db
accuracy_decimals: 2
filters:
- multiply: 2 USER_A、USER_B、WAKE は公式の GPIO Binary Sensor プラットフォームを使用し、3 つのオンボードボタンを Binary Sensor エンティティとして公開します。
| ボタン | GPIO | 入力設定 |
|---|---|---|
| USER_A | GPIO0 | Low アクティブ |
| USER_B | GPIO8 | Low アクティブ、内部プルアップ |
| WAKE | GPIO42 | Low アクティブ |
binary_sensor:
- platform: gpio
pin:
number: GPIO0
ignore_strapping_warning: true
inverted: true
name: "USER_A"
on_press:
- logger.log: "USER_A pressed"
- platform: gpio
pin:
number: GPIO8
inverted: true
mode:
input: true
pullup: true
name: "USER_B"
- platform: gpio
pin:
number: GPIO42
inverted: true
name: "WAKE" ブザーは GPIO9 で駆動します。基本設定では LEDC Output で出力を生成し、Output Switch を通じて BEEP スイッチエンティティとして公開します。
output:
- platform: ledc
id: buzzer
pin: GPIO9
switch:
- platform: output
name: "BEEP"
id: beep_switch
output: buzzer 電子ペーパーは公式の Waveshare E-Paper プラットフォームを使用し、モデルは 1.54inv2 に設定します。以下の最小構成では固定文字列を表示し、ディスプレイドライバーが正常に動作することを確認できます。
spi:
clk_pin: GPIO5
mosi_pin: GPIO6
font:
- file: "gfonts://Montserrat@500"
id: display_font
size: 18
display:
- platform: waveshare_epaper
cs_pin: GPIO4
dc_pin:
number: GPIO3
ignore_strapping_warning: true
busy_pin: GPIO1
reset_pin: GPIO2
data_rate: 40000000
model: 1.54inv2
full_update_every: 360
update_interval: 60s
lambda: |-
it.print(0, 0, id(display_font), "Air Quality v1.1"); デバイスは公式の BM8563 プラットフォームを使用します。起動時に RTC を読み取り、Home Assistant で時刻を同期した後、その時刻を RTC に書き戻します。
time:
- platform: bm8563
id: rtc_time
address: 0x51
update_interval: never
- platform: homeassistant
on_time_sync:
then:
- bm8563.write_time: 基本設定では 2 つの GPIO Output を宣言します。GPIO10 の sens_power はセンサー電源を制御し、GPIO46 の hold はシステム電源を保持します。
output:
- platform: gpio
pin: GPIO10
id: sens_power
- platform: gpio
pin:
number: GPIO46
ignore_strapping_warning: true
inverted: true
id: hold sens_power と hold を宣言するだけで、output.turn_on または output.turn_off を呼び出していません。そのため、センサーの電源投入シーケンスが実装済みとはみなせません。センサー電源を制御する場合は、起動オートメーションで GPIO10 の状態を明示的に設定し、サンプリング開始前に十分な安定時間を確保してください。hold には inverted: true が設定されているため、output.turn_on: hold を呼び出すと物理ピンが Low になり、シャットダウンが直接トリガーされる可能性があります。電源ロジックを変更する際は、この反転関係に十分注意してください。完全なデバイス設定は packages から読み込めます。
packages:
air_quality_base_config:
url: https://github.com/m5stack/esphome-yaml
files: common/air-quality-v1-rev1-base.yaml
ref: main
refresh: 1d ソースコード:
Home Assistant に接続すると、空気質やバッテリー電圧などのエンティティを確認できます。
USER_A/USER_B を押すと、電子ペーパーのページを切り替えられます。

使用上の注意:センサーはサンプリング完了後に安定したデータを出力します。Wi-Fi を常時有効にすると消費電力が増加するため、電源に接続して使用することを推奨します。