Alexa-Powered Christmas Tree
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
ここでは、クリスマスツリーのLEDストランドを制御するカスタムAlexaスキルのソースを見つけることができます。このリポジトリには次のものが含まれます:
- AlexaスキルのエンドポイントであるAWSLambda関数のJavaコード
- AWSIoTとWS2811LEDストランドの間にあるArduinoスケッチ。スケッチはArduinoYunで実行するために最適化されています。
ハードウェアのセットアップ
これらのソースを使用して独自のAlexa制御のクリスマスツリーを構築する場合は、特定のハードウェアが必要です。このプロジェクトでは、次のコンポーネントを使用しました。
- LininoOSを搭載した1x Arduino Yun
- 各50個のLEDを備えた2x WS2811LEDストランド
- 3xジャンパー線
- 1x電源アダプターと2.1mmx 5.5mmDCコネクター
- 1 xMicro-USB-USBケーブル
- 1 x AmazonEchoまたはAmazonDotまたはAmazonTap
ソフトウェアソリューション
次の画像は、音声ユーザーのリクエストを処理するための一般的なラウンドトリップを示しています。
このソリューションは、一連のAWSクラウドサービスを活用して、ハードウェアバックエンド(クリスマスツリー)と通信します。実際に設定する必要があるのは、Lambda関数、MP3ファイルを含むS3バケット、およびAWSIoTとDynamoのアクセス許可を持つIAMロールだけです。 DynamoのテーブルとAWSIoTのモノの影は、その場での最初のスキル呼び出しで作成されます。
Alexaデバイスに与えられた音声ユーザーリクエストで何が起こるかを理解します:
- ユーザーがAlexaに話しかけて "
クリスマスツリーを開く
" 。 ASRとNLUの魔法はAlexaクラウドサービスで発生します。 - AWSLambdaでホストされているスキルコードにインテントが与えられます。このリポジトリでコードを見つけることができます。
- ユーザーが "のようなアクションを希望する場合
ツリーをオンにする
" または "ショーを開始
" このスキルにツリーの色を指定せずに、DynamoDBで最後に設定された色を検索します。与えられた色がある場合、スキルは同じテーブルに情報を保持します。これは、Alexaがツリーの最後に設定された色を念頭に置く方法です。次に、アクションとカラーコマンドがAWSIoTのモノの影に書き込まれます。 - シャドウが更新されると、MQTTメッセージは対応するもののデルタトピックに公開されます。 ArduinoYunはそのトピックにサブスクライブしています。 サイドノート :スキルコードによって作成されるものの名前は、入ってくるスキルIDと同じです(すべてのドットがダッシュに置き換えられます)。これは、プロジェクトを再構築する場合に役立つ可能性があります。
- ArduinoはDeltaトピックをポーリングしているため、コマンドをJSON形式のMQTTメッセージとして受信します。情報が抽出され、Arduinoスケッチは、メッセージに示されている内容(新しい色、クリスマスショー、オン、オフ)に従ってLEDストランドを使用してアクションを実行します。
- 最後に、Arduinoは、アクションが実行されたことを世界に知らせるために、AWSIoTモノの更新トピックにMQTTメッセージを送信します。
- メッセージはAWSIoTサービスによって消費され、含まれている状態情報は報告されたとしてThingShadowに書き戻されます。 州。 Dynamo DBで検索する代わりに、スキルにモノの影から最後のツリーの状態を読み取らせることもできます。このフォールバックアプローチの理由は、MQTTが非同期であり、Arduinoに頼って即座に応答することはできないためです。
- 実際、このステップは、スキルが意図的にハードウェアバックエンドから切り離されているため、ステップ3)の直後に発生します。そのため、AWS IoTでモノの影を更新した直後に、スキルコードは出力音声テキストとオプションで SSML を返します。 音声コンテンツのタグ。 Alexaの再生(クリスマスサウンド)の一部であるMP3は、AWSS3バケットに保存されます。
- Alexaはスキルから返されたテキストを読み取り、応答で音声を再生します。
ステータス表示
Arduinoが動作している間、ストランドの最初のLEDの現在の状態を通知します。
- 1回赤く点滅するライトは、AWSIoT接続のセットアップが失敗したことを示します
- 2回赤く点滅するライトは、AWSIoT接続の試行が失敗したことを示します
- 3回赤く点滅するライトは、AWSIoT接続構成の失敗を示します
- 緑色の懐中電灯は、AWSIoTへの接続が成功したことを示します
- 青い懐中電灯は、AWSIoTトピックへの継続的なポーリングを示します
- 黄色の懐中電灯は、AWSIoTトピックのポーリング中にエラーが発生したことを示します
起動時に、ArduinoがWiFiに接続するのにかかる時間の間赤い懐中電灯が表示される場合があります。 WiFiが接続されている場合は、緑色の懐中電灯に続いて、ツリーがコマンドの準備ができていることを示す青色のライトが常に点滅します。
黄色が点滅している場合は、AWSIoTトピックに到達できませんでした。それが発生した場合(たとえば、ArduinoがWiFi接続を失った場合)、自動的に再接続を試みるまで、さらに9回試行を続けます。とはいえ、黄色の懐中電灯を10回使用すると、再接続を進めるために赤/緑の懐中電灯が表示されます。 ArduinoがWiFiに再接続し、AWS IoTに再び到達すると、青い懐中電灯が点灯します。
コード
Alexaを利用したクリスマスツリー
ここでは、クリスマスツリーのLEDストランドを制御するカスタムAlexaスキルのソースを見つけることができます。編集https://github.com/KayLerch/alexa-xmas-tree 回路図
製造プロセス
- 包装紙
- Santas New Helper:Internet of Things Role in Christmas
- 開発キットはAlexa統合をスピードアップします
- 2017年は音声インターフェースの年ですか?
- Chromecastを制御するAmazonAlexa
- MajorTom:Alexa Voice Controlled ARDrone 2.0
- このクリスマスは木製のクリスマスツリーと装飾品で家を飾ります
- フォールトツリー分析とは何ですか、そしてそれを実行する方法
- シーリングファンに対してAlexaコントロールを有効にする
- Alexa、このランプをオンにする:AmazonEcho用のスマート3Dセンサー
- Sure Controls のクリスマス スピリット