AFI のビルドとテスト

本章の概要

この章では、移植された ESP VA-SDK ファームウェアをビルドし、それをデバイスにフラッシュし、Wi-Fi をプロビジョニングしてデバイスを Alexa アカウントに認証させて、AFI のこのベータ版で利用可能な Alexa 音声コマンドを使用していくつかのスマートホーム機能をテストします。

ファームウェアをフラッシュする

PlatformIO CLI を使用して、ファームウェアをコンパイルし、ファームウェアをアップロードし、デバイスのシリアル出力を監視します。アプリのビルドとフラッシュには時間がかかりますが、それが完了すると、端末にデバイスログのストリームが表示されるはずです。ポートが自動検出されないというエラーが表示される場合は、 USBポートの確認 の説明を参照して、コマンドを再試行してください。Ctrl + C キーストロークの組み合わせでモニターセッションを閉じることができます。

pio run --environment core2foraws --target upload --target monitor 

デバイスをプロビジョニングする

プロビジョニングを処理するために、Wi-Fi ネットワーク認証情報を構成し、ESP Alexa Phone Application を使用して Alexa アカウントでアプリケーションを認証する必要があります。

モバイルアプリストアからアプリケーションをダウンロードします。 iOS / Android

プロビジョニングの手順

  1. コンパニオンアプリを起動します。
  • Bluetooth が有効で、アプリには Bluetooth にアクセスするための適切な権限があることを確認してください。
  1. オプションの [Add New Device (新しいデバイスを追加)] を選択します。
  2. お使いのデバイスがアプリに表示されます。
  • abcdf1234 などの値が表示されたProof of Possession モーダルウィンドウが開きます。完了を押して続行します。
  1. デバイスに接続した後、amazonのアカウント(ECサイト向けの)にサインインします。
  2. Wi-Fi ネットワークを選択し、認証情報を入力します。
  3. Wi-Fi 接続が成功すると、サンプル発話のリストが表示されます。

Alexa の使用

上記の手順が完了すると、シリアルモニターに以下のようないくつかのログが表示されます。

I (17325) [http_transport]: Subscribing /capabilities/acknowledge...
I (17535) [http_transport]: Subscribing /connection/fromservice...
I (17735) [http_transport]: Subscribing /directive...
I (17945) [http_transport]: Subscribing /speaker...
...
I (20735) [directive_proc]: Name: EndpointForwarding
...
I (22675) [directive_proc]: Name: SetAttentionState
...
E (22685) [app_va_cb]: Enabling Mic

Alexa と対話するには、デバイスに Alexa と話しかける必要があります。それによって、デバイスで実行されているEspressif Wake Word Engine がトリガーされ、LISTENING アテンション状態に入ります。さまざまなアテンション状態の詳細については、 ドキュメンテーション を参照してください。オーディオキャプチャの詳細については、 SpeechRecognizer API ドキュメンテーションを参照してください。

Audio Capture Speech Recognizer Attention States

他の Alexa デバイスと同様に、デバイスが IDLE 状態のときは、キーワード「Alexa」だけをリッスンします。ひとたびキーワードがトリガーされると、デバイスはクラウドへのオーディオストリーミングを開始します。

Alexa にさまざまな言葉をかけてみてください。Alexa が聞き取ると側面の LED が青く点灯します (Alexa が「スリープ解除」しない場合は、デバイスに近づいて話しかけてみてください):

Espressif Alexa の AWS アカウント** を利用してセットアップする場合は、英語が初期設定されています。日本語を試したい場合は、ンパニオンアプリからデバイスを選択し、言語を日本語に切り替えてから試してください。
  • Alexa, what time is it?
  • Alexa, tell me a joke?
  • Alexa, turn on all of the lights
    • 同じアカウントですでにいくつかの Alexa のスマートホームデバイスを使用している場合にのみ機能します

Alexa, what time is it?

Alexa スマートホーム機能 (ベータ版) のテスト

AFI デバイスには Alexa Built-In が搭載されています。これは Alexa に話しかけるには直接デバイスに話しかければよく、Alexa はデバイスから音声で応答することを意味します。しかし、Espressif の AFI のこのバージョンはベータ機能として Alexa スマートホームコマンドもサポートしているため、デバイスの属性を制御することができます。

Alexa for AWS IoT サンプルアプリケーションは Alexa アプリ内に Light という仮想デバイスを作成し、そうすることで 2 つのインターフェイスをサポートします。

The device named “Light” should show up in your Alexa App

仮想デバイスであるため、更新されたステータスを画面に出力します。これは、音声または Alexa アプリを介してテストできます。

  • 音声による場合 - アレクサ、ライトをつけて と言うと、正常であれば、Alexa は「OK」またはその他の確認音で応答します。
  • Alexa アプリ経由の場合 - Alexa スマートフォンアプリ (ESP Alexa スマートフォンアプリではありません) を開き、[デバイス] に進み、次にLights またはAll Devicesのどちらかに進むと、Lightというデバイスが表示されます (下のスクリーンショットを参照してください)。電源アイコンをタップすると、アイコンのオフとオンが切り替わることがわかります。

いずれの方法でも、端末に以下のようなメッセージが表示されます。

I (97445) [alexa_smart_home]: Namespace: Alexa.PowerController, Name: TurnOn

同じように、次のいずれかの方法で明るさの範囲を調整できます。

  • 音声による場合 - Alexa、Alexa, set brightness on the light to 80 と言うと、正常であれば、Alexa は「OK」またはその他の確認音で応答します。
  • Alexa アプリ経由の場合 - 明るさのスライダーで調整します。

いずれの方法でも、シリアルモニターに以下のようなメッセージが表示されるます。

[app_smart_home]: *************** Light's Brightness changed to 60 ***************

これは、Alexa を搭載したデバイスには音声アシスタントがあるということのみならず、Alexa を使ってデバイス自体のプロパティを制御できるという点でも、便利です!

次は カスタムスマートホームデバイス の作成です。


Questions? Please use M5Stack Forum

AWS IoT Kit now features direct access to M5Stack Forum , which is a community-driven, questions-and-answers service. Search re:Post using the Core2 for AWS tag to see if your question has been asked and answered. If not, ask a new question using the Core2 for AWS tag.