pdf-icon

Station-Bat コントローラー Home Assistant 統合

本章では、Station-Bat を Home Assistant に統合するための完全な手順を説明します。

必要なもの

  • Home Assistant がインストールされたホスト 1 台
  • Home Assistant に ESPHome Builder プラグインをインストールして有効化する
ヒント
本チュートリアルでは ESPHome 2026.2.4 を使用してファームウェアのコンパイルと書き込みを行っています。コンパイル / アップロード中に問題が発生した場合は、ESPHome をこのバージョンに切り替えてから再試行してください。

デバイスの追加

  1. 右下の緑色のボタンをクリックしてデバイスを作成します。

  1. CONTINUE をクリックします。

  1. New Device Setup をクリックします。

  1. デバイス名を入力し、NEXT をクリックします。

  1. ESP32 を選択します。

  1. SKIP をクリックしてウィザードをスキップします。

  1. EDIT をクリックし、YAML ファイルでデバイスの機能をカスタマイズします。

デバイスの設定

以下は設定の主要部分です。対応する説明と参考リンクを併記しています。

起動設定(Boot Configuration)

  • 起動時の初期化ロジックを追加し、起動時に RTC から時刻を読み取れるようにします。
esphome:
  name: station-bat
  friendly_name: station-bat
  on_boot:
    - priority: 600
      then:
        - bm8563.read_time:

外部コンポーネント(External Components)

  • External Components の設定を追加します。m5station_axp192 コンポーネントは Station-Bat に電源管理とバッテリー残量検出のサポートを提供します。
external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [m5station_axp192]
    refresh: 0s

I2C バス設定

  • I2C コンポーネントを追加します。この I2C バスは IMU、電源管理チップ、および電流 / 電圧モニタリングチップで共有されます。
i2c:
  - id: i2c_bus
    sda: GPIO21
    scl: GPIO22

SPI バス設定

  • SPI コンポーネントを追加します。SPI バスは ST7789V ディスプレイの駆動に使用されます。
spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23

センサー設定(Sensor)

  • Sensor コンポーネントを追加します。
  • MPU6886 IMU センサーを追加し、加速度、ジャイロスコープ、温度データを取得します。
  • 2 つの INA3221 電流 / 電圧モニタリングチップを追加し、合計 6 チャンネル(A1/A2、B1/B2、C1/C2)をカバーします。
  • m5station_axp192 センサーは前述の外部コンポーネントが提供するもので、バッテリー残量などの電源関連情報に使用します。
sensor:
  - platform: mpu6886
    i2c_id: i2c_bus
    accel_x:
      name: "MPU6886 Accel X"
      id: imu_ax
    accel_y:
      name: "MPU6886 Accel Y"
      id: imu_ay
    accel_z:
      name: "MPU6886 Accel z"
      id: imu_az
    gyro_x:
      name: "MPU6886 Gyro X"
    gyro_y:
      name: "MPU6886 Gyro Y"
    gyro_z:
      name: "MPU6886 Gyro z"
    temperature:
      name: "MPU6886 Temperature"
      id: imu_temp
    update_interval: 5s

  - platform: m5station_axp192
    id: pmu
    i2c_id: i2c_bus
    battery_level:
      name: "M5Station Battery Level"
      id: bat_level
    update_interval: 60s
    brightness: 0.8

  - platform: ina3221
    id: ina1
    i2c_id: i2c_bus
    address: 0x40
    update_interval: 1s
    channel_1:
      shunt_resistance: 0.01
      bus_voltage:
        name: "P.A1 Bus Voltage"
        id: v_a1
      current:
        name: "P.A1 Current"
        id: i_a1
    channel_2:
      shunt_resistance: 0.01
      bus_voltage:
        name: "P.A2 Bus Voltage"
        id: v_a2
      current:
        name: "P.A2 Current"
        id: i_a2
    channel_3:
      shunt_resistance: 0.01
      bus_voltage:
        name: "P.B1 Bus Voltage"
        id: v_b1
      current:
        name: "P.B1 Current"
        id: i_b1

  - platform: ina3221
    id: ina2
    i2c_id: i2c_bus
    address: 0x41
    update_interval: 1s
    channel_1:
      shunt_resistance: 0.01
      bus_voltage:
        name: "P.B2 Bus Voltage"
        id: v_b2
      current:
        name: "P.B2 Current"
        id: i_b2
    channel_2:
      shunt_resistance: 0.01
      bus_voltage:
        name: "P.C1 Bus Voltage"
        id: v_c1
      current:
        name: "P.C1 Current"
        id: i_c1
    channel_3:
      shunt_resistance: 0.01
      bus_voltage:
        name: "P.C2 Bus Voltage"
        id: v_c2
      current:
        name: "P.C2 Current"
        id: i_c2

二値センサー設定(Binary Sensor)

  • Binary Sensor コンポーネントを追加します。パネル上の 3 つの物理ボタンはそれぞれ GPIO37、GPIO38、GPIO39 にマッピングされています。
binary_sensor:
  - platform: gpio
    name: "Button1"
    pin:
      number: GPIO37
      inverted: true
  - platform: gpio
    name: "Button2"
    pin:
      number: GPIO38
      inverted: true
  - platform: gpio
    name: "Button3"
    pin:
      number: GPIO39
      inverted: true

スイッチ設定(Switch)

  • Switch コンポーネントを追加します。LCD バックライトは AXP192 電源管理チップで制御し、USB 電源出力は GPIO12 で制御します。
switch:
  - platform: template
    name: "LCD Backlight"
    id: lcd_backlight
    lambda: |-
      return true;
    restore_mode: ALWAYS_ON
    turn_on_action:
      - lambda: |-
          id(pmu).set_backlight(true);
    turn_off_action:
      - lambda: |-
          id(pmu).set_backlight(false);

  - platform: gpio
    name: "USB Power"
    id: usb_power
    pin: GPIO12

時刻設定(Time)

  • Time コンポーネントを追加します。
  • BM8563 RTC コンポーネントを追加します。BM8563 はオフライン時の計時を担い、Home Assistant に接続後は時刻を同期し、デバイス再起動時に RTC から時刻を復元します。
time:
  - platform: bm8563
    id: bm8563_time
    update_interval: never

  - platform: homeassistant
    id: ha_time
    on_time_sync:
      then:
        - bm8563.write_time:

ライト設定(Light)

  • Light コンポーネントを追加します。Station-Bat には 7 つの WS2812 RGB LED が搭載されており、GPIO4 で駆動します。
light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: GPIO4
    num_leds: 7
    chipset: ws2812
    name: "My Light"

ディスプレイ設定(Display)

  • Display コンポーネントを追加します。
  • ST7789V ドライバーを追加し、1.14 インチ IPS スクリーンの表示を制御します。lambda コードブロックには具体的な描画内容を定義します。完全なサンプルは下記リンクの設定ファイルをご参照ください。
display:
  - platform: st7789v
    model: CUSTOM
    width: 135
    height: 240
    offset_height: 52
    offset_width: 40
    cs_pin: GPIO5
    dc_pin: GPIO19
    reset_pin: GPIO15
    rotation: 90
    update_interval: 1s
    lambda: |-
      // Define your display content here
      // See the complete example for a full implementation

ファームウェアのコンパイル(Firmware Build)

  1. 編集が完了したら、右上の SAVEINSTALL をクリックし、ダイアログで Manual Download を選択して手動ダウンロードを行います。

  1. INSTALL をクリックし、ファームウェアのコンパイルが完了するまで待ちます。

  1. コンパイルが完了したら、Download をクリックし、Factory format (Previously Modern) 形式を選択してダウンロードします。

ヒント
Station-Bat をクリックすると完全なサンプル設定を確認できます。初回ビルドは Home Assistant ホストの性能とネットワーク環境によっては時間がかかる場合があります。

ファームウェアの書き込み(Firmware Upload)

  1. USB Type-C ケーブルでデバイスをホストに接続し、ESPHome Web を開いて CONNECT をクリックしてデバイスに接続します。

  1. ポップアップリストから対応するシリアルポートを選択します。

  1. INSTALL をクリックします。

  1. 先ほどコンパイルしたファームウェアファイルを選択して書き込みます。

ヒント
書き込みが完了したら、デバイスのリセットボタンを押して新しいファームウェアを有効にしてください。

使い方

  1. Home Assistant で SettingsDevices & Services をクリックし、デバイスリストを確認します。

  1. Discovered(検出済み)エリアに対応するデバイスが表示されます。CONFIGURE をクリックして追加を完了します。

  1. 追加が完了すると、各種センサーデータが正しく表示されます。

  1. 最後にこれらのエンティティを Dashboard(ダッシュボード)に追加すると、以下のように表示されます。

On This Page