【開封の儀 in バンクーバー】AWS IoT Buttonを使って東京リージョンのAWS IoTを動かしてみる

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本記事内のうち技適未通過のデバイスの検証に関しては弊社バンクーバーオフィス及びベルリンオフィスの協力にて実施しております

こんにちは、せーのです。今日はアメリカで人気爆発となっているAWS IoT Buttonを検証してみます。

aws_iot_button_18_1

Re:Inventボタンの商用化

昨年のRe:Invent 2015にてIoT系のセッションに参加したユーザーには"Amazon Dash Button Re:Invent version"というボタンがプレゼントされていました。

AWS_IoT_button

クラメソでも早速やってみたブログがいくつか上がっていましたね。

AWS IoT ButtonでAWS IoTを体験してみた! #reinvent

Dash Button自体は既にAmazon.comで売りだされていましたが、基本的にそれらは全て特定の商品の購入にセットアップされていて、AWS IoTで使うにはハックする必要がありました。このAmazon Dash Buttonはそこをプログラマブルに構築できるようにされた、とても面白い製品でした。

このボタンの大好評を受けて先日Amazon.comより"AWS IoT Button"として正式に販売が開始されました。なんと発売4時間で完売、というすごい人気のようです。

今回発売された"AWS IoT Button"は基本的には"Amazon Dash Button"と変わらないのですが、クラウド側の環境がだいぶ変わりました。まずAWS IoTは東京リージョンで使えることに合わせてAWS IoT Buttonもリージョン選択が出来るようになりました。またLambdaのBluePrintにはAWS IoT Button用のサンプルが用意され、ウィザードを進んでいくだけで簡単にセットアップが出来るようになりました。Topicも"iotbutton/XXXXXXX"という形で体系的になったため、複数のIoTボタンにも簡単に対応します。クリックタイプも今までのシングル/ダブルクリックの他にLONG(1.5秒以上長押しする)が判別出来るようになりました。

動かしてみた

それでは早速動かしてみましょう。実機の操作はバンクーバーオフィスにて、AWS部分の構築は日本にて行いました。

ボタンは他のDash Button同様ダンボールの箱に入ってきます。

aws_iot_button_15_1

中には簡単な説明書とボタン本体が入っています。

aws_iot_button_16_1

裏にはデバイスIDに当たるDSN(Device Serial Number)が入っています。

aws_iot_button_14_1

説明書にあるQRコードかAWS IoT Buttonの製品ページへのリンクを直接打ち、そこからコンソールへのリンクを踏むとLambdaのFunction画面に飛びます。手動で行う場合にはLambdaからCreate Functionを叩き

aws_iot_button_1

BluePrintの一覧からiot buttonを選択します。

aws_iot_button_2

IoT Typeから"IoT Button"を選択するとDSNの登録ボックスが出てきますので入力します。

aws_iot_button_3

"Generate certificate and keys"ボタンを押下するとこのAWS IoTボタン用の証明書と秘密鍵が作成されますのでダウンロードします。

aws_iot_button_4

エンドポイントが東京リージョンになっていますね!

次にAWS IoT Button側の設定を行います。ボタンを5秒ほど長押しするとWi-Fi設定のためのSSIDが表示されますので上に書いてあるSSID/パスワードでネットワークに入ります。※パスワードはDSNの下8桁になります。

aws_iot_button_5

aws_iot_button_6

AWS IoT Buttonの設定画面が表示されます。スタイルが特にかぶさっていないのでちょっとビックリしますね。リージョン、エンドポイントのサブドメイン等必要な情報を入力します。またここで証明書と秘密鍵をアップロードするように指示されますのでアップロードします。ここでボタンごとの証明書と秘密鍵を決められるということは、Lambdaからではなくても通常通りAWS IoTのThingを作成して、そこで作った証明書と秘密鍵をボタンに紐付けることが出来る、ということですね。Shadow的な仮想オブジェクトがAWS内に作られるのでしょうか。それとも設定した時点でボタンに証明書がダウンロードされるのでしょうか。気になります。

aws_iot_button_7

設定が終わると終了画面がでます。これまたシンプルです。

aws_iot_button_8

Lambdaに戻ってNextボタンを押下するとコードの入力画面に映ります。サンプルはあらかじめメールアドレスを設定する事でメールが飛ぶようにコーディングされていますのでとりあえずメールアドレスを設定します。

aws_iot_button_8

メールを飛ばすのにSNSを使用するのでLambdaからSNSを使う権限をIAM Roleで付けてあげてLambdaの設定は終了です。

aws_iot_button_9

aws_iot_button_10

AWS IoT側を確認してみましょう。先ほどのDSNでThingとRuleが設定されています。

aws_iot_button_11

aws_iot_button_12

これで構築は完了です。簡単ですね。テストしてみます。ボタンを押すと

aws_iot_button_13

メールが飛びます。バッテリー容量等も情報に入っているのでCloudwatch logsと連携して電池が少なくなったらアラートを鳴らしたり、Lambda内で自動的にもう一つAmazonに注文する、ということもできますね。

まとめ

いかがでしたでしょうか。日本ではまだ未発売のこの"AWS IoT Button"ですが、発売されれば色々な用途に使えそうです。実際にアメリカではこのボタンを使った構築やサービスを公開するサイトがあり、Uberでタクシーを呼んだり、照明を操作したりしています。上手く構築するとこれで車のロックも解除できるそうです。日本発売が待ち遠しいですね。