Amazon Echoとラズパイでスマートホーム化
Amazon Echoとラズパイでスマートホームを実現します。
Amazon Echoに対して音声で呼びかけて、Alexaスキルからラズパイを通して家電を操作します。
構成図
AWS IoTの準備
AWS IoTを使って、Alexaスキルとラズパイとを連携します。
デバイスの設定を案内通りに進めることで、該当のデバイスをAWS IoTに接続することができます。
AWS IoTに接続するのに必要な証明書が得られます。
今回はNode.jsを使用しました。
Node.jsでAWS IoTを使用したメッセージングの簡単な例はこちらが参考になります。
aws-iot-device-sdk-js/README.md at master · aws/aws-iot-device-sdk-js · GitHub
ラズパイでのAWS IoTプログラムの実装
AWS IoTのdevice
オブジェクトに証明書の情報を設定します。
AWS IoTからのメッセージを受け取って、赤外線を送信するコード
subscribe
メソッドで受け取るメッセージを指定するのと、メッセージを受け取った後に実施する処理をmessage
イベントで定義します。
AWS IoTの動作確認
テスト > 発行 からメッセージを発行することができます。
ラズパイでの家電の操作方法は過去記事を参照してください。
hi1280.hatenablog.com
Alexaスキルの実装
Alexaスキルの種類はカスタムスキルとして実装しました。
カスタムスキルは名前を指定して、スキルを呼び出します。
例えば、こんな呼びかけになります。
「アレクサ、リモコンで照明をつけて」
「リモコン」の部分がスキルの名前になります。
AWS IoTのメッセージを送信するAlexaスキルのコード
AWS IoTのdevice
オブジェクトのpublish
メソッドを実行することで、メッセージを送信します。
Alexaスキルの作成方法は過去記事を参照してください。
hi1280.hatenablog.com
まとめ
ラズパイでの赤外線による家電操作とAlexaスキルを組み合わせることでスマートホームっぽくなりました。
今回はスキルをカスタムスキルとして実装しましたが、スキルの名前をいちいち呼ぶのは面倒です。
スマートホームスキルとして実装すると名前を呼びかける必要がなくなるようです。
ただし、スマートホームスキルに対応しているデバイスがまだ少ないようなので、まだこれからという状況かと思います。
スマートホームスキルを複数の言語で開発する | ASK