[レポート] Go from 0 to 60 with Alexa Connect Kit #ALX203 #reinvent 2019

ラスベガスで開催されたre:Invent2019のセッション「ALX203 - Go from 0 to 60 with Alexa Connect Kit」のレポートです。
2019.12.19

本エントリはAWS re:Invent 2019「ALX203 - Go from 0 to 60 with Alexa Connect Kit」セッションについてのレポートです。

セッション概要

Are you a device maker looking to build voice-controlled products without dealing with the complexity of managing cloud services, writing an Alexa skill, or developing complex networking and security firmware? Introducing Alexa Connect Kit (ACK)—a combination of hardware and software that allows you to quickly develop smart products that customers will love with built-in features like Wi-Fi simple setup, Amazon Dash replenishment, and fleet management with over-the-air (OTA) updates. In this session, we turn a simple fan into an Alexa-controlled smart device in less than an hour.

Presented by

  • Dmitry Shipilov - Senior Solution Architect, Amazon Web Services
  • Michael Williams - Solutions Architect, Amazon Web Services
  • Muhammad Ulislam - Senior Solution Architect, Amazon Web Services

レポート

Buliding smart home devices

  • スマートホームは新しいアイデアではなく、数十年前から存在している
  • しかし、黎明期にはプロが管理する専門機器を導入しないと実現できなかった
  • その後スマートフォンでスマートデバイスを制御できるようになったが、それでも管理が煩雑になりがちだった
  • Alexaをはじめとした音声制御の導入によって、スマートホームの自然な制御が可能となった

  • Alexaは急速に成長しており、ビルトインの製品やAlexaスキル、またスキル開発者が増加している

  • 今日、多くのデバイスはスキルを通じてAlexaに接続している

  • イチからスマートデバイスを構築するためには、とても多くのタスクや懸念事項がある

  • Alexa Connect Kit(ACK)を使ったスマートホームデバイスの構築
    • ACKを使うことで、ユーザーは以下の2つに集中できる
      • スマートデバイスの設計とアプリケーションロジック
      • 製造・マーケティング・販売

  • ACKを使ったスマートデバイスの例
    • スマートコーヒーメーカー
    • クリスマスツリー
    • フレグランスディフューザー
    • スマート電子レンジ

  • Alexaによる自動再注文(Dash Replenishment)
    • 新しいスマート機能によって、デバイスが自分自身の面倒を見れる
    • 状況に応じた通知や、消耗品が少なくなった場合の自動再注文の簡単なオプトインを提供
    • わずか1日で実装可能
    • AlexaのDash Replenishmentを通じて販売された消耗品での収益化
    • Works With Alexaバッジの指定により、高い可視性と売上増加が見込める

ACK under the hood

  • ACKを使ってコネクティッドデバイスを構築する方法
    • コネクティッドデバイスの構築にはセットアップ/制御/トラブルシューティング/アップデートなど多くのインフラおよび開発者が必要
    • ACKを使えば、これらの構築を短期間で実現できる
  • ACKソリューションのブロック図
    • ACKは、マネージドサービス/ハードウェア/ソフトウェアソリューションの組み合わせ
    • 最初のステップとして、ACK開発者コンソールにアクセスする
      • ユースケースを定義する。例えば扇風機の場合は、オンオフや速度の切り替えの呼び出しなど
      • ACK開発者コンソールに製品を仮想的に作成する
    • 2番目のステップとして、ACK connectivity moduleを取得する
      • ACK connectivity module: AlexaおよびACKマネージドサービスとの接続を提供するAmazon管理ファームウェアを実行。UARTを介してデバイスのHMCUとの接続を提供
      • ACK device SDK: デバイスのHMCUアプリケーションのソースコード(C言語)
      • Wi-Fi Simple Setup(WSS): Amazonのフラストレーションフリーセットアップの機能。ユーザはデバイスをAmazonおよびAlexaサービスに簡単に登録可能になる
    • 体験をブランド化したい場合は、IFTTTや拡張APIを使ってAlexaを超えたサービスを提供できる

  • スマートファンの例: 製品を定義する
    • Step1: ACKプロダクトを作成する
      • コントロールインタフェースの定義も行う
    • Step2: 証明書の生成
    • Step3: ACK moduleを使ったモジュールの保護とロック
    • Step4: バーコードの生成

  • コントロールインタフェースの定義
    • Power Controller: 電源のオンオフ
    • Toggle Controller: 首振りのオンオフ
    • Mode Contorller: ファンの強弱設定

  • Wi-Fi Simple Setup
    • 製品をアカウントにリンク
    • Wi-Fi認証情報を利用したゼロタッチセットアップ

  • ACKを使ったAlexaによるコミュニケーションフロー1
    • Alexaに「ファンをつけて」とお願いすると、オーディオストリームがAlexaサービスに送信される
    • Alexaサービスは発話を解釈し、ACKサービスにディレクティブを送信する
    • ACKサービスは、端末のACKモジュールにディレクティブをルーティングする

  • ACKを使ったAlexaによるコミュニケーションフロー2
    • ACKモジュールはエンコードされたディレクティブをUARTを介してHMCUに渡す
    • HMCU実装コアは、ACKモジュールからディレクティブをデコードし、アプリケーションのユーザーPowerControllerハンドラーを呼び出す

  • ACKを使ったAlexaによるコミュニケーションフロー3
    • ACKモジュールは、ディレクティブ応答をACKサービスに送信する
    • ACKサービスはディレクティブの応答をAlexaサービスにルーティングする
    • Alexaサービスは応答を解釈し、テキストや音声の応答を送信する

First 30 minutes with ACK

  • Amazon.comで販売しているACKキットを購入する

  • 開封の儀

  • 2つのボードを接続する

  • Amazon.comのデベロッパー登録を完了しておく

  • モバイル端末のAlexaアプリ設定を完了しておく
  • ローカル環境にPythonの開発環境を準備しておく

  • Arduinoをセットアップする

  • ACK Device SDKをダウンロードする

  • セットアップ用のスクリプトを実行する
  • モバイルアプリから開発者アカウントでACKデバイスを登録する

  • ACK開発ボードにコードをアップロードする

  • ACK開発ボードを使ってスマート照明を制御している例

  • クリスマスツリーをACKで制御している例

おわりに

Alexa Connect Kit(ACK)を使ったスマートホームデバイスの構築に関するセッションでした。
ACKがリリースされたことで、Alexaの音声制御を可能にするデバイスの開発が容易になりました。
ACKの発表当時、Alexa対応の電子レンジで衝撃を受けた方も多いのではないでしょうか。
スマートデバイスの例でも、クリスマスツリーなど面白いプロダクトが紹介されていましたが、これからもっと多様なプロダクトが登場してくるのではないかと思います。