Skip to main content

XIAO ESP32C3をESPHome経由でHome Assistantに接続(全ポート対応)

このwikiでは、Seeed Studio XIAO ESP32C3をHome Assistant上で動作するESPHomeに接続し、GroveモジュールをXIAO ESP32C3に接続した後にセンサーデータを送信/デバイスを制御する方法を段階的に説明します。ここではデジタル、アナログ、IIC、SPI、UARTを含むあらゆる種類のポートを適用しました。それでは始めましょう!

ESPHomeとHome Assistantとは?

ESPHomeは、ESPボードの管理を可能な限りシンプルにすることを目的としたツールです。YAML設定ファイルを読み込み、ESPデバイスにインストールするカスタムファームウェアを作成します。ESPHomeの設定に追加されたデバイスやセンサーは、Home AssistantのUIに自動的に表示されます。ESPHomeは、デバイスをHome Assistantに接続してデータを送信するのに役立ちます。

ハードウェアの準備

制御ボードとしてXIAO ESP32C3を使用し、ハードウェアとしてreRouterを使用し、複数のGroveセンサーと組み合わせています。

Seeed Studio XIAO ESP32C3Seeed Studio Expansion BoardHome Assistantデバイス

Grove センサー

ソフトウェアの準備

Home Assistantのインストール

Home Assistantが既に稼働していることを確認してください。製品にHome Assistantをフラッシュする方法を紹介する複数のwikiがあります。私はRaspberry Pi CM4を搭載したreRouterを使用しているので、公式のものを直接使用してOSをreRouterにフラッシュできます

Home AssistantにESPHomeをインストール

ESPHomeはHome Assistantアドオンとして利用でき、アドオンストアから簡単にインストールできます。

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

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

はじめに

すべてのソフトウェアとハードウェアの準備が整ったら、開始できます。

1. Seeed Studio XIAO ESP32C3 を ESPHome に追加する

  • ステップ 1. + NEW DEVICE をクリックします
  • ステップ 2. CONTINUE をクリックします
  • ステップ 3. デバイスの 名前 を入力し、ネットワーク名パスワード などのWiFi認証情報を入力します。その後、NEXT をクリックします
  • ステップ 4. ESP32-C3 を選択してクリックします
  • ステップ 5. このボードを手動で設定するため、SKIP をクリックします
  • ステップ 6. 新しく作成されたボードの下にある EDIT をクリックします
  • ステップ 7. これにより YAML ファイルが開き、このファイルはすべてのボード設定を行うために使用されます。esp32 の下の内容を以下のように編集します
esphome:
name: xiao-esp32c3
platformio_options:
board_build.flash_mode: dio

esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
platform_version: 5.4.0

# Enable logging
logger:
hardware_uart: UART0

# Enable Home Assistant API
api:
password: "Your password"

ota:
password: "Your password"

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32C3 Fallback Hotspot"
password: "Your Password"
ここでは、ESP32用の最新バージョンのArduinoコアPlatformIO用のESP32サポートを使用しています
  • ステップ8. SAVEをクリックし、次にINSTALLをクリックします
  • ステップ9. USB Type-Cケーブルの一端をSeeed Studio XIAO ESP32C3に接続し、もう一端をreRouter CM4 1432のUSBポートの1つに接続します
  • ステップ10. ESPHome Dashboardを実行しているコンピューターに接続をクリックします
  • ステップ11. 接続されたポートを選択します。/dev/ttyACM0はreRouter CM4 1432に接続されているため、/dev/ttyACM1である可能性が高いです
tip

2.4GHz Wi-Fiを使用することをお勧めします

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

  • ステップ12. 上記のウィンドウは、接続されたボードからのリアルタイムログを表示します。STOPをクリックして閉じます
  • ステップ13. ボードのステータスがONLINEと表示されている場合、ボードがWiFiに正常に接続されていることを意味します
  • ステップ14. Settingsに移動し、Devices & Servicesを選択します
  • ステップ15. 発見された統合としてESPHomeが表示されます。CONFIGUREをクリックします
  • ステップ16. SUBMITをクリックします
  • ステップ17. パスワードを入力します。これはステップ8で確認できるAPIパスワードです
  • ステップ18. FINISHをクリックします

2. Groveモジュールを接続してデータを送信する

次に、GroveモジュールをSeeed Studio XIAO ESP32C3に接続して、Home Assistantを使用してセンサーデータを表示したり、デバイスを制御したりできるようにします!

開発知識

XIAO拡張ボード

Seeed Studio XIAO ESP32C3でGroveモジュールを使用するために、Seeed Studio Expansion Base for XIAOを使用し、その上にXIAO ESP32C3を接続します。

その後、ボード上のGroveコネクターを使用してGroveモジュールを接続できます。以下がピン定義です。

ピン定義

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

例えば、GroveモジュールをD0ポートに接続したい場合は、ESPHomeでピンをGPIO2として定義する必要があります

ESPHomeとのGrove互換性リスト

現在、以下のGroveモジュールがESPHomeでサポートされています。こちらを確認してください

3. Grove接続とデータ送信

次に、いくつかのGroveモジュールを選択し、それらがESPHomeとHome Assistantとどのように接続できるかを説明します。

Grove - 温湿度センサー(DHT20)

この温湿度センサーは、事前校正されたデジタル出力を提供します。独自の容量式センサー素子が相対湿度を測定し、温度は負の温度係数(NTC)サーミスターによって測定されます。優れた信頼性と長期安定性を備えています。購入はこちらをクリックしてください。

セットアップ設定
  • ステップ1. Grove - DHT20をSeeed Studio Expansion Base for XIAOのI2Cコネクターの1つに接続します
  • ステップ2. 以前に作成したxiao-esp32c3.yamlファイル内で、ファイルを変更し、OTA経由でXIAO ESP32C3にプッシュします
esphome:
name: xiao-esp32c3
platformio_options:
board_build.flash_mode: dio

esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
platform_version: 5.4.0

# Enable logging
logger:
hardware_uart: UART0

api:
password: "F4MQG/rBhNmqP8Nud+AJ+5CYu7LuIhIFTOcRwOm5Nw4="

ota:
password: "999afa1f8a07e85959a9f89f8f6aebb2"

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32C3 Fallback Hotspot"
password: "YtpCwOqLoYlp"

captive_portal:

# 0x28 is the I2C address of DHT20
i2c:
sda: GPIO6
scl: GPIO7
scan: True
id: bus_0x38

sensor:
- platform: aht10
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 60s

DHT20コンポーネントについて詳しく学ぶことができます。ここでは、DHT20がI2Cプロトコルを使用して通信するため、I²Cバスコンポーネントを追加します。

ダッシュボードでの可視化
  • ステップ1. Home Assistantの概要ページで、3つの点をクリックし、Edit Dashboardをクリックします
  • ステップ2. + ADD CARDをクリックします
  • ステップ3. By ENTITYを選択し、temperatureと入力して、Temperatureの横のチェックボックスを選択します
  • ステップ4. ADD TO DASHBOARDをクリックします
  • ステップ5. センサーデータをゲージとして可視化することもできます。BY CARDの下のGaugeをクリックします

これでHome Assistantダッシュボードは以下のようになります

Grove - 光センサー(LS06-S)

Grove - 光センサー v1.2はアナログモジュールで、異なる範囲に変換できる様々な電気信号を出力できます。高感度で信頼性の高いフォトダイオードであるLS06-Sフォトレジスタを統合し、環境の光の強度を検出します。光測定、光検出、光制御スイッチに最適なArduino光センサーモジュールです。

購入はこちらをクリックしてください。

セットアップ設定
  • ステップ1. Grove - 光センサーをSeeed Studio Expansion Base for XIAOのアナログ/デジタルコネクタの1つに接続します
  • ステップ2. 以前に作成したxiao-esp32c3.yamlファイル内で、ファイルを変更してOTA経由でXIAO ESP32C3にプッシュします

うまくいけば、この結果が表示されます。

ダッシュボードでの可視化
  • ステップ1. Home Assistantの概要ページで、3つの点をクリックし、Edit Dashboardをクリックします
  • ステップ2. + ADD CARDをクリックします
  • ステップ3. By ENTITYを選択し、Light Sensorを選択します
  • ステップ4. PICK DIFFERENT CARDを選択します
  • ステップ5. Gaugeを選択します
  • ステップ6. 最小値と最大値を設定します
  • ステップ7. ダッシュボードに光センサーの値が表示されます。

✨ コントリビュータープロジェクト

技術サポートと製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...