ESPHome サポート Seeed Studio XIAO ESP32S3
この文書は 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 の尽力に感謝します。このプロジェクトのソースは こちら で共有されています。
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様の製品体験がスムーズに進むよう、さまざまなサポートを提供しています。異なるニーズや好みに応じた複数のコミュニケーションチャネルをご用意しています。