この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
XIAO ESP32S3 を使用して Home Assistant に ESPHome で接続する(すべてのポート対応)
このWikiでは、Seeed Studio XIAO ESP32S3 を ESPHome を介して Home Assistant に接続し、Grove モジュールを XIAO ESP32S3 に接続した後にセンサーデータを送信したりデバイスを制御したりする方法を、ステップバイステップで説明します。それでは始めましょう!
ESPHome と Home Assistant とは?

ESPHome は、ESP ボードの管理をできるだけ簡単にすることを目的としたツールです。YAML 設定ファイルを読み取り、ESP デバイスにインストールするカスタムファームウェアを作成します。ESPHome の設定に追加されたデバイスやセンサーは、自動的に Home Assistant の UI に表示されます。ESPHome を使用すると、データを Home Assistant デバイスに接続して送信することができます。
ハードウェアの準備
このチュートリアルをすべて実行するには、以下のものを準備する必要があります。
Seeed Studio XIAO ESP32S3 Sense | Seeed Studio 拡張ボード | Home Assistant デバイス |
---|---|---|
![]() | ![]() | ![]() |
使用するセンサー
ソフトウェアの準備
Home Assistant のインストール
Home Assistant がすでにインストールされ、稼働していることを確認してください。ODYSSEY-X86 SBC に Home Assistant をインストールする手順については、このウィキを参照してください。または、Seeed Mini Router で Home Assistant を使用する詳細な手順については、こちらのリンクを参照してください。
Home Assistant に ESPHome をインストール
ESPHome は Home Assistant アドオンとして利用可能で、アドオンストアから簡単にインストールできます。

- ステップ 1. INSTALL をクリック

- ステップ 2. すべてのオプションを有効にして、START をクリック

ESPHome が正常に読み込まれると、以下のウィンドウが表示されます。

はじめに
すべてのソフトウェアとハードウェアが準備できたら、作業を開始できます。
1. Seeed Studio XIAO ESP32S3 (Sense) を ESPHome に追加
- ステップ 1. + NEW DEVICE をクリック

- ステップ 2. CONTINUE をクリック

- ステップ 3. デバイスの名前を入力し、ネットワーク名やパスワードなどの WiFi 認証情報を入力します。その後、NEXT をクリック

- ステップ 4. ESP32-S3 を選択してクリック

- ステップ 5. このボードを手動で設定するため、SKIP をクリック

- ステップ 6. 新しく作成されたボードの下にある EDIT をクリック

- ステップ 7. YAML ファイルが開きます。このファイルを使用してボードのすべての設定を行います。以下のように esp32 の内容を編集してください。
esphome:
name: esp32s3
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# ログの有効化
logger:
# Home Assistant API の有効化
api:
ota:
wifi:
ssid: "your wifi name"
password: "your password"
# WiFi 接続が失敗した場合のフォールバックホットスポット (キャプティブポータル) を有効化
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
注意: ここでは、ESP32 用の最新バージョンの Arduino core と PlatformIO の ESP32 サポート を使用しています。
- ステップ 8. SAVE をクリックし、その後 INSTALL をクリック

- ステップ 9. USB Type-C ケーブルの一端を Seeed Studio XIAO ESP32S3 に接続し、もう一端を reRouter CM4 1432 の USB ポートのいずれかに接続します。

- ステップ 10. ESPHome Dashboard を実行しているコンピュータに接続をクリックします。

- ステップ 11. 接続されているポートを選択します。おそらく
/dev/ttyACM1
です。なぜなら/dev/ttyACM0
は reRouter CM4 1432 に接続されているからです。

2.4GHz Wi-Fi を使用することをお勧めします。
これで必要なボードパッケージがすべてダウンロードされ、ESPHome ファームウェアが XIAO ESP32S3 にフラッシュされます。フラッシュが成功すると、以下の出力が表示されます。エラーが表示された場合は、XIAO ESP32S3 を再起動するか、BOOT ボタンを押し続けてブートローダーモードに入り、XIAO ESP32S3 を接続してみてください。

- ステップ 12. 上記のウィンドウには接続されたボードからのリアルタイムログが表示されます。STOP をクリックして閉じます。

- ステップ 13. ボードのステータスが ONLINE と表示されている場合、ボードが WiFi に正常に接続されていることを意味します。

これで XIAO ESP32S3 を reRouter CM4 1432 から切断し、USB ケーブルで電源を供給するだけで済みます。これ以降、XIAO ESP32S3 にファームウェアをフラッシュしたい場合は、USB ケーブルで X86 ボードに接続することなく、OTA を使用して簡単に行うことができます。
-
- 三点アイコン をクリックし、Install をクリックします。

-
- Wirelessly を選択すると、変更がボードにワイヤレスでプッシュされます。

- ステップ 14. Settings に移動し、Devices & Services を選択します。

- ステップ 15. ESPHome が検出された統合として表示されます。CONFIGURE をクリックします。

- ステップ 16. SUBMIT をクリックします。

- ステップ 17. FINISH をクリックします。

2. Grove モジュールを ESPHome と Home Assistant に接続する
次に、Seeed Studio XIAO ESP32S3 (センス) に Grove モジュールを接続し、センサーデータを表示したり、Home Assistant を使用してデバイスを制御したりします!
開発知識
XIAO 拡張ボード
GroveモジュールをSeeed Studio XIAO ESP32S3で使用するために、Seeed Studio Expansion Base for XIAOを使用し、XIAO ESP32S3を接続します。
その後、基板上のGroveコネクタを使用してGroveモジュールを接続することができます。

ピン定義
以下の図に従って、Grove Shield for Seeed Studio XIAOのGroveコネクタにGroveモジュールを接続する際に適切な内部ピン番号を使用する必要があります。

例えば、D0ポートにGroveモジュールを接続したい場合、ESPHomeでピンをGPIO1として定義する必要があります。詳細はこちらをクリックしてください。
ESPHomeとのGrove互換性リスト
現在、以下のGroveモジュールがESPHomeでサポートされています。
ここでは、上記の表から6つのGroveモジュールを選択し、それらをESPHomeおよびHome Assistantとどのように接続できるかを説明します。
3. Grove接続とデータ送信
ここでは、いくつかのGroveモジュールを選択し、それらをESPHomeおよびHome Assistantとどのように接続できるかを説明します。
Grove - 温度と湿度センサー (BME680)
設定手順
-
ステップ1. Grove - 温度、湿度、圧力、ガスセンサー (BME680)をSeeed Studio Expansion Base for XIAOのI2Cコネクタの1つに接続します。
-
ステップ2. 以前に作成したxiao-esp32s3-bme680.yamlファイルを変更し、OTAでXIAO ESP32S3にプッシュします。
# ESPHomeの設定
esphome:
# ESP32-S3デバイスの名前
name: esp32s3
# PlatformIOビルドオプション
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# ESP32の設定
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# ロギングを有効化
logger:
# Home Assistant APIを有効化
api:
# OTA更新の設定
ota:
# Wi-Fi設定
wifi:
ssid: "your wifi name"
password: "your password"
# Wi-Fi接続が失敗した場合のフォールバックホットスポット(キャプティブポータル)を有効化
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# キャプティブポータル設定
captive_portal:
# BME680センサー用I2C設定
i2c:
sda: GPIO5
scl: GPIO6
# BME680センサー設定
sensor:
- platform: bme680
temperature:
name: "BME680 Temperature"
oversampling: 16x
pressure:
name: "BME680 Pressure"
humidity:
name: "BME680 Humidity"
gas_resistance:
name: "BME680 Gas Resistance"
address: 0x76
update_interval: 60s
BME680コンポーネントについてさらに学ぶことができます。このコンポーネントを使用すると、BME280、BME680、BMP085、BMP280、AHT10、AHT20、AHT21ベースのセンサーを使用できます。ここでは、AHT20がI2Cプロトコルを使用して通信するため、I²Cバスコンポーネントを追加しています。
Dashboardでの可視化
- ステップ1. Home Assistantの概要ページで、3つのドットをクリックし、Edit Dashboardをクリックします。

- ステップ2. + ADD CARDをクリックします。

- ステップ3. By ENTITYを選択し、temperatureと入力して、Temperatureの横にあるチェックボックスを選択します。

-
ステップ4. Humidity、Gas Resistance、Pressureについても同様に繰り返します。
-
ステップ5. CONTINUEをクリックします。
-
ステップ6. ADD TO DASHBOARDをクリックします。
これで、Home Assistantのダッシュボードは以下のようになります。

- ステップ7. センサーデータをゲージとして可視化することもできます。BY CARDの下でGaugeをクリックします。

- ステップ8. ドロップダウンメニューからTemperatureを選択します。

-
ステップ9. SAVEをクリックします。
-
ステップ 10. 湿度、ガス抵抗、気圧についても同様に繰り返します。
-
これでダッシュボードは以下のようになります。

Grove - スマート空気質センサー (SGP41)
- ステップ 1. Grove - スマート空気質センサー (SGP41) を Seeed Studio 拡張ベースの I2C コネクタの1つに接続します。

- ステップ 2. 以前作成した xiao-esp32S3.yaml ファイルを編集し、OTA を使用して XIAO ESP32S3 Sense にプッシュします。
# ESPHome の設定
esphome:
# ESP32-S3 デバイスの名前
name: esp32s3
# PlatformIO ビルドオプション
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# ESP32 の設定
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# ロギングを有効化
logger:
# Home Assistant API を有効化
api:
# OTA アップデートの設定
ota:
# Wi-Fi 設定
wifi:
ssid: "your wifi name"
password: "your password"
# Wi-Fi 接続が失敗した場合のフォールバックホットスポット (キャプティブポータル) を有効化
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# キャプティブポータル設定
captive_portal:
# SPI 設定
spi:
clk_pin: GPIO8
mosi_pin: GPIO10
miso_pin: GPIO9
# BME680 センサー用 I2C 設定
i2c:
sda: GPIO5
scl: GPIO6
scan: True
id: bus_a
frequency: 1MHz
# SGP4X センサー設定
sensor:
- platform: sgp4x
voc:
id: sgp41_voc
name: "VOC インデックス"
nox:
id: sgp41_nox
name: "NOx インデックス"
- ステップ 3. 補正付きの例
補正 (オプション): 補正に使用するセンサーを含むブロックです。設定されていない場合、デフォルト値が使用されます。
温湿度センサー (BME680) を使用してスマート空気質センサー (SGP41) を補正します。以下は更新された xiao-esp32S3.yaml ファイルです:
# ESPHome の設定
esphome:
# ESP32-S3 デバイスの名前
name: esp32s3
# PlatformIO ビルドオプション
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# ESP32 の設定
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# ロギングを有効化
logger:
# Home Assistant API を有効化
api:
# OTA アップデートの設定
ota:
# Wi-Fi 設定
wifi:
ssid: "your wifi name"
password: "your password"
# Wi-Fi 接続が失敗した場合のフォールバックホットスポット (キャプティブポータル) を有効化
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# キャプティブポータル設定
captive_portal:
# SPI 設定
spi:
clk_pin: GPIO8
mosi_pin: GPIO10
miso_pin: GPIO9
# BME680 センサー設定
i2c:
sda: GPIO5
scl: GPIO6
scan: True
id: bus_a
frequency: 1MHz
# BME680 センサー設定
sensor:
- platform: bme680
temperature:
id: bme680_temp
name: "BME680 温度"
oversampling: 16x
pressure:
name: "BME680 気圧"
humidity:
id: bme680_hum
name: "BME680 湿度"
gas_resistance:
name: "BME680 ガス抵抗"
address: 0x76
# SGP4X センサー設定
- platform: sgp4x
voc:
name: "VOC インデックス"
nox:
name: "NOx インデックス"
compensation:
humidity_source: bme680_hum
temperature_source: bme680_temp
注意: このセンサーは十分なデータサンプルを収集するのに90サイクルを要し、警告を回避することは現時点ではできません。

ダッシュボード での可視化
以前と同じです。

OV2640 カメラ (XIAO ESP32S3 Sense)
設定手順
-
ステップ 1. OV2640 カメラ外部ボードを XIAO ESP32S3 Sense に接続します。
-
ステップ 2. 以前作成した xiao-esp32s3-camera.yaml ファイルを編集し、OTA を使用して XIAO ESP32S3 Sense にプッシュします。
# ESPHome の設定
esphome:
# ESP32-S3 デバイスの名前
name: esp32s3
# PlatformIO ビルドオプション
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# ESP32 の設定
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# ロギングを有効化
logger:
# Home Assistant API を有効化
api:
# OTA アップデートの設定
ota:
# Wi-Fi 設定
wifi:
ssid: "your wifi name"
password: "your password"
# Wi-Fi 接続が失敗した場合のフォールバックホットスポット (キャプティブポータル) を有効化
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# キャプティブポータル設定
captive_portal:
# ESP32 カメラの設定
esp32_camera:
id: espcam
name: My Camera
external_clock:
pin: GPIO10
frequency: 20MHz
i2c_pins:
sda: GPIO40
scl: GPIO39
data_pins: [GPIO15, GPIO17, GPIO18, GPIO16, GPIO14, GPIO12, GPIO11, GPIO48]
vsync_pin: GPIO38
href_pin: GPIO47
pixel_clock_pin: GPIO13
resolution: 800x600
# ESP32 カメラ Web サーバーの設定
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot
注: 詳細についてはこちらをご覧ください。
ダッシュボードでの可視化
- ステップ 1. Home Assistant の概要ページで、3つのドットをクリックし、ダッシュボードを編集をクリックします。

- ステップ 2. + カードを追加をクリックします。

- ステップ 3. エンティティ別を選択し、Cameraを入力してMy Cameraを選択します。

- ステップ 4. ダッシュボードに追加をクリックします。

- ステップ 5. ダッシュボードでウェブストリームを表示すると、アイドルモードになり、1分間に数フレームのみ更新されます。カードをクリックするとアクティブモードに移行し、通常1秒間に1~10フレームの更新速度になります。このチュートリアルでは、更新速度は約1秒間に4フレームです。

音声アシスタント用 PDM マイク
設定構成
- ステップ 1. 以前作成した xiao-esp32s3-microphone.yaml ファイル内で、ファイルを変更し、OTA を使用して XIAO ESP32S3 Sense にプッシュします。
# ESPHomeの設定
esphome:
name: esp32s3
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# ESP32の設定
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# ロギングを有効化
logger:
# Home Assistant APIを有効化
api:
# OTA更新の設定
ota:
# Wi-Fi設定
wifi:
ssid: "your wifi name"
password: "your password"
# Wi-Fi接続が失敗した場合のフォールバックホットスポット(キャプティブポータル)を有効化
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# キャプティブポータルの設定
captive_portal:
# ステータスLEDライトの設定
light:
- platform: status_led
id: light0
name: "Voice Assistant State"
pin:
number: GPIO21
inverted: true
# I2Sオーディオの設定
i2s_audio:
i2s_lrclk_pin: GPIO46 # 注: "useless" とラベル付けされています
i2s_bclk_pin: GPIO42
# I2Sオーディオを使用したマイクの設定
microphone:
- platform: i2s_audio
id: echo_microphone
i2s_din_pin: GPIO41
adc_type: external
pdm: true
# 音声アシスタントの設定
voice_assistant:
microphone: echo_microphone
# バイナリセンサー(ブートスイッチ)の設定
binary_sensor:
- platform: gpio
pin:
number: GPIO2
mode:
input: true
pullup: true
name: Boot Switch
internal: true
on_press:
- voice_assistant.start:
- light.turn_off: light0
on_release:
- voice_assistant.stop:
- light.turn_on: light0
注: 詳細についてはこちらをご覧ください。
ダッシュボードでの可視化
- ステップ 1. Home Assistant の概要ページで、3つのドットをクリックし、ダッシュボードを編集をクリックします。

- ステップ 2. + カードを追加をクリックします。

- ステップ 3. エンティティ別を選択し、Esp32S3 Assist in progress、Esp32S3 Assist in progress、Esp32S3 Finished speaking detection、Status、およびvoice assistant stateを選択します。


- ステップ 4. ダッシュボードに追加をクリックします。

- ステップ 5. Seeed Studio Expansion Base for XIAO 上の ボタン(D1) を押すと、esp32s3 上のユーザー定義 LED (GPIO2) が点灯し、音声アシスタントを通じて esphome と対話することができます。

注意: 詳細については、こちらをお読みください。
XIAO 用 6x10 RGB マトリックス
セットアップ構成
-
ステップ 1. まず、6x10 RGB マトリックスを XIAO に接続する必要があります。詳細は この Wiki を参照してください。
-
ステップ 2. 以下の .yaml 情報をコピーして、OTA を使用して XIAO ESP32S3 にプッシュします。
esphome:
name: sixtyled
friendly_name: sixtyled
esp32:
board: seeed_xiao_esp32s3
variant: esp32s3
framework:
type: arduino
version: latest
platform_version: 6.4.0
# ロギングを有効化
logger:
# Home Assistant API を有効化
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Wi-Fi 接続が失敗した場合のフォールバックホットスポット (キャプティブポータル) を有効化
ap:
ssid: "Sixtyled Fallback Hotspot"
password: "MoLTqZUvHwWI"
captive_portal:
light:
- platform: esp32_rmt_led_strip
rgb_order: GRB
pin: GPIO1
num_leds: 60
rmt_channel: 0
chipset: ws2812
name: "XIAO LEDS"
ダッシュボード での可視化
- ステップ 1.
設定 - デバイスとサービス - ESPHome - sixtyled(設定した名前)
のパスを開き、カードをダッシュボードに追加します。

- ステップ 2. Home Assistant の概要ページで、3つのドットをクリックし、ダッシュボード を編集 をクリックします。

- ステップ 3. + カードを追加 をクリックします。

- ステップ 4. エンティティ別 を選択し、xiao と入力して、sixtyled XIAO LEDS の横にある チェックボックス を選択します。

- ステップ 5. 続行 をクリックし、ダッシュボード に追加 をクリックします。

- ステップ 6. その後、「概要」セクションにカードが表示され、XIAO 用 6x10 RGB マトリックスを制御できます。ここで、オン/オフの切り替えや、色や明るさのカスタマイズが可能です。

✨ コントリビュータープロジェクト
- このプロジェクトは Seeed Studio の Contributor Project によってサポートされています。
- Zachary の尽力に感謝します。あなたの成果は こちら で展示されます。
- python の尽力に感謝します。このプロジェクトのソースは こちら で共有されています。
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様の製品体験がスムーズに進むよう、さまざまなサポートを提供しています。異なるニーズや好みに応じた複数のコミュニケーションチャネルをご用意しています。