Skip to main content

Seeed Studio XIAO MG24 例 - Matter

はじめに

Matterは、スマートホーム技術のためのオープンソースの統一規格であり、デバイスとエコシステム間の相互運用性を促進します。Connectivity Standards Alliance(CSA)によって開発されたMatterは、インターネット接続を必要とせずに、さまざまなメーカーのデバイス間でシームレスな通信を可能にします。MatterはApple HomeKit、Google Home、Amazon Alexaなどのプラットフォームとのネイティブ互換性をサポートし、スマートホームセットアップ全体でデバイスを統合することを容易にします。Matterのより深い理解については、公式Matterドキュメントを参照してください。

2024年1、Silicon LabsとArduinoが協力してMatter採用の障壁を下げ、ArduinoエコシステムでMatterを使用することを簡素化する開発パスを提供しました。この協力は、Matter開発をよりアクセスしやすくし、Arduino開発者が典型的な課題を克服してMatterをシームレスに採用することを支援することを目的としています。

Matterはローカルネットワーク上で効率的に動作し、インターネットアクセスを必要とせずに信頼性の高い低遅延通信を提供します。この機能により、セキュリティとデバイスパフォーマンスの両方が大幅に向上します。

このドキュメントでは、Arduinoを使用してXIAO MG24でMatterアプリケーションを開発する手順をガイドします。

前提条件

XIAO MG24でMatterアプリケーションの開発を開始するには、以下のハードウェアとソフトウェアコンポーネントが準備され、使用可能であることを確認してください。

ハードウェア

  • Seeed Studio XIAO MG24ボード。
  • サポートされているMatterハブ(例:Apple HomePod mini)でMatterネットワークに接続。
  • Matterコントローラー(例:Apple HomeKit App)でMatter対応デバイスを管理し、相互作用。

以下の表2は、さまざまなエコシステムでのMatter互換ハブの例を示しています:

メーカー / エコシステムデバイス
Google HomeNest Hub Gen2
Apple HomeKitHomePod Gen2, HomePod mini
Amazon AlexaEcho Gen4
Raspberry Pi OTBRRaspberry Pi

デフォルトでは、少なくとも1つのMatter Hubと1つのMatterコントローラー(例:HomeKitがインストールされたiPhone)がテスト用に準備されていることを前提としています。

ソフトウェア

必要なソフトウェアにはSilicon LabsのArduino Coreを含むArduino IDEが含まれます:

  • まだインストールされていない場合は、XIAO MG24との互換性のためにSilicon Labs Arduino Coreをダウンロードしてセットアップしてください。
  • 詳細なセットアップ手順については、Getting Started Guideを参照してください。

Matterプロトコルスタックを選択することを確認してください:

Matter Bulbサンプルでのクイックスタート

Matter Light Bulb Exampleは、シンプルなMatterアプリケーションを実演し、Matterネットワーク経由で内蔵LEDの制御を可能にします。このサンプルは、XIAO MG24でのMatter統合に初めて取り組む開発者にとって実用的な出発点として機能します。

Arduino IDEでサンプルにアクセスするには:

便宜上、個人化されたセットアップを可能にするために、サンプルコード内のデバイス名の変更が以下に提供されています。

/*
Matter lightbulb example

The example shows how to create a simple on/off lightbulb with the Arduino Matter API.

The example lets users control the onboard LED through Matter.
The device has to be commissioned to a Matter hub first.

Author: Tamas Jozsi (Silicon Labs)
Modified by: Spencer Y (Seeed Studio)
*/
#include <Matter.h>
#include <MatterLightbulb.h>

MatterLightbulb matter_bulb;

void setup()
{
Serial.begin(115200);
Matter.begin();
matter_bulb.begin();

pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);

Serial.println("Matter lightbulb");

matter_bulb.set_device_name("XIAO MG24 bulb"); // Customize the default device name
matter_bulb.set_vendor_name("Seeed Studio"); // Set the vendor name
matter_bulb.set_product_name("Seeed Matter Lightbulb"); // Define the product name

if (!Matter.isDeviceCommissioned()) {
Serial.println("Matter device is not commissioned");
Serial.println("Commission it to your Matter hub with the manual pairing code or QR code");
Serial.printf("Manual pairing code: %s\n", Matter.getManualPairingCode().c_str());
Serial.printf("QR code URL: %s\n", Matter.getOnboardingQRCodeUrl().c_str());
}
while (!Matter.isDeviceCommissioned()) {
delay(200);
}

Serial.println("Waiting for Thread network...");
while (!Matter.isDeviceThreadConnected()) {
delay(200);
}
Serial.println("Connected to Thread network");

Serial.println("Waiting for Matter device discovery...");
while (!matter_bulb.is_online()) {
delay(200);
}
Serial.println("Matter device is now online");
}

void loop()
{
static bool matter_lightbulb_last_state = false;
bool matter_lightbulb_current_state = matter_bulb.get_onoff();

// Turn on the LED if the state is ON and the previous state was OFF
if (matter_lightbulb_current_state && !matter_lightbulb_last_state) {
matter_lightbulb_last_state = matter_lightbulb_current_state;
digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
Serial.println("Bulb ON");
}

// Turn off the LED if the state is OFF and the previous state was ON
if (!matter_lightbulb_current_state && matter_lightbulb_last_state) {
matter_lightbulb_last_state = matter_lightbulb_current_state;
digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
Serial.println("Bulb OFF");
}
}

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

  1. コードをArduino IDEにコピーし、XIAO MG24 ボードにアップロードします。
  1. ファームウェアの書き込み後、RESETボタンを押すか、XIAO MG24 を再接続してボードを再起動します。
  2. シリアルモニターを開いてセットアップを確認します。以下のような出力が表示されるはずです:

コミッショニング用QRコード

シリアルモニターには、デバイスのコミッショニングに必要なQRコードを生成するためのURLが表示されます。URLをコピーしてブラウザに貼り付け、生成されたQRコードをMatterコントローラー(例:HomeKit)でスキャンします。

デバイスのテスト

QRコードをスキャンした後、Matterコントローラー(HomeKit)がデバイスの身元確認を求めます。確認後、デバイスがアプリに表示されます。これで、XIAO MG24 の内蔵LEDを制御し、アプリインターフェースから直接その応答性をテストできます。

参考資料とリソース

Matterが初めての場合、以下のリソースはMatterエコシステム内での作業に必要な基礎知識と開発サポートを提供します:

  • クイックスタートガイド:Matterの基礎を学ぶのに理想的な出発点で、エコシステムの重要な概念とコンポーネントをカバーしています。
  • Matter開発者ジャーニー:Matter開発プロセスの包括的なガイドで、効果的な実装に必要なツール、リソース、ベストプラクティスを含みます。
  • Matter仕様書:Matterプロトコルとそのコンポーネントの技術仕様。これはプロトコルの機能と動作詳細を理解するための主要なリソースです。
  • デバイスデータモデル - Google Home Developers:デバイスデータモデルの詳細な説明で、Matterエコシステムにおけるデバイス機能と能力の表現方法を標準化します。
  • Matter開発フレームワーク概要:XIAO ESP32C6 用のMatter開発フレームワークに特化したガイドで、Matterデバイス開発の代替アプローチを提供します。

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

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

Footnotes

  1. Silicon Labs and Arduino Partner to Democratize Matter - Feb 6, 2024

  2. README - Arduino Matter library

Loading Comments...