AtomS3R-M12 Home Assistant 連携ガイド

このガイドでは、AtomS3R-M12 を Home Assistant に連携させる方法について説明します。

1. 準備

環境準備

  1. Home Assistant 公式ドキュメントを参照して、Home Assistant をインストールします。
  2. ESPHome 公式ドキュメントを参照して、ESPHome Device Builder アドオンをインストールします。(注:本チュートリアルは ESPHome 2025.12.5 を基に作成されています。コンパイルエラーが発生した場合は、まずこのバージョンに切り替えて確認することをお勧めします。)

ハードウェア製品

参考資料

2. オンライン書き込み

下の オンライン書き込み ボタンをクリックし、画面の指示に従ってファームウェアの書き込みと Wi-Fi の設定を完了すると、AtomS3R-M12 の Home Assistant 連携をすぐにお試しいただけます。

書き込みと設定の詳しい手順については、オンライン ESPHome ファームウェア書き込み・設定ガイドを参照してください。

オンライン書き込みの完了後は、「ファームウェアのコンパイル & 書き込み」の手順を実行する必要はありません。4. 使い方に進んでください。

3. ファームウェアのコンパイル & 書き込み

本節では、yaml 設定ファイルを基にプロジェクトを再コンパイルし、二次開発、機能変更、または新機能の追加を行う方法について説明します。

コンパイル時間
初回ビルドには時間がかかる場合があります。所要時間は Home Assistant ホストの性能とネットワーク品質によって異なります。

デバイスの作成

  1. 右下の緑色のボタンをクリックしてデバイスを作成します。
  1. CONTINUE をクリックします。
  1. New Device Setup をクリックします。
  1. デバイス名を入力し、NEXT をクリックします。
  1. ESP32-S3 をクリックします。
  1. SKIP をクリックします。

設定の変更

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

以下はコードの核心部分です。関連する参考情報と説明を以下に示します。

基本情報と起動時の操作

on_boot コンポーネントを追加します:

esphome:
  name: atoms3r-m12
  friendly_name: AtomS3R-M12
  on_boot:
    priority: 800
    then:
      - lambda: |-
          gpio_set_direction(GPIO_NUM_18, GPIO_MODE_OUTPUT);
          gpio_set_level(GPIO_NUM_18, 0);
          vTaskDelay(pdMS_TO_TICKS(1500));
I2C 通信に関する注意
ハードウェア回路設計の仕様により、AtomS3R-M12 は電源投入後に GPIO18 をローレベルに引き下げて、正常な I2C 通信を有効にする必要があります。I2C バスの初期化またはアクセス前に GPIO18 をローレベルに設定しないと、I2C 通信が失敗する可能性があります。そのため、GPIO18 の制御にはシステム起動の初期段階でローレベルが保証されるよう、最高優先度を割り当てる必要があります。

PSRAM 設定

PSRAM コンポーネントを追加します:

psram:
  mode: octal
  speed: 80MHz

外部コンポーネント

External Components コンポーネントを追加します:

external_components:
  - source: github://DennisGaida/m5stack-atoms3r-components/components@main
    components: [bmi270_bmm150]
サードパーティコンポーネント
ESPHome にはまだ BMI270 / BMM150 の公式コンポーネントが提供されていないため、本プロジェクトではコミュニティ開発者が提供するサードパーティコンポーネントライブラリを使用しています。作者の貢献に感謝します。

I2C バス設定

I2C コンポーネントを追加します:

i2c:
  - id: BMI270_150
    sda: GPIO45
    scl: GPIO0
  - id: camera_i2c
    sda: GPIO12
    scl: GPIO9
    frequency: 100kHz
    timeout: 10ms

センサー設定

Sensor コンポーネントを追加します:

sensor:
  - platform: bmi270_bmm150
    i2c_id: BMI270_150
    address: 0x68
    update_interval: 3s
    acceleration_x:
      name: "BMI270 Accel X"
    acceleration_y:
      name: "BMI270 Accel Y"
    acceleration_z:
      name: "BMI270 Accel Z"
    gyroscope_x:
      name: "BMI270 Gyro X"
    gyroscope_y:
      name: "BMI270 Gyro Y"
    gyroscope_z:
      name: "BMI270 Gyro Z"
    temperature:
      name: "BMI270 Temperature"

カメラ設定

ESP32 Camera コンポーネントを追加します:

esp32_camera:
  name: "OV3660 Camera"
  external_clock:
    pin: GPIO21
    frequency: 20MHz
  i2c_id: camera_i2c
  data_pins: [GPIO3, GPIO42, GPIO46, GPIO48, GPIO4, GPIO17, GPIO11, GPIO13]
  vsync_pin: GPIO10
  href_pin: GPIO14
  pixel_clock_pin: GPIO40
  resolution: 640X480
  jpeg_quality: 10

ファームウェアのコンパイル

  1. 変更が完了したら、右上の SAVEINSTALL をクリックし、ポップアップウィンドウで Manual Download を選択します。
  1. Factory format(Previously Modern) を選択します。
設定例
AtomS3R-M12 をクリックして完全なサンプル設定を確認できます。

ファームウェアの書き込み

  1. USB Type-C データケーブルでデバイスをホストに接続します。ESPHome Web を開き、CONNECT をクリックしてデバイスに接続します。
  1. 対応するシリアルポート番号を確認します。
  1. INSTALL をクリックします。
  1. コンパイル済みのファームウェアを選択してアップロードします。
  1. 書き込みが完了したら、デバイスを再起動します。

4. 使い方

  1. Settings > Devices & Services をクリックしてデバイスを確認します。
  1. Discovered セクションで対応するデバイスを見つけることができます。
  1. デバイスを追加すると、データが正しく表示されます。
  1. 最後に、これらのエンティティをダッシュボードに追加します。以下はその表示結果です。
Page Tools
PDF
On This Page