【開封の儀 in バンクーバー】AWS IoT Buttonを使って東京リージョンのAWS IoTを動かしてみる
本記事内のうち技適未通過のデバイスの検証に関しては弊社バンクーバーオフィス及びベルリンオフィスの協力にて実施しております
こんにちは、せーのです。今日はアメリカで人気爆発となっているAWS IoT Buttonを検証してみます。
Re:Inventボタンの商用化
昨年のRe:Invent 2015にてIoT系のセッションに参加したユーザーには"Amazon Dash Button Re:Invent version"というボタンがプレゼントされていました。
クラメソでも早速やってみたブログがいくつか上がっていましたね。
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同様ダンボールの箱に入ってきます。
中には簡単な説明書とボタン本体が入っています。
裏にはデバイスIDに当たるDSN(Device Serial Number)が入っています。
説明書にあるQRコードかAWS IoT Buttonの製品ページへのリンクを直接打ち、そこからコンソールへのリンクを踏むとLambdaのFunction画面に飛びます。手動で行う場合にはLambdaからCreate Functionを叩き
BluePrintの一覧からiot buttonを選択します。
IoT Typeから"IoT Button"を選択するとDSNの登録ボックスが出てきますので入力します。
"Generate certificate and keys"ボタンを押下するとこのAWS IoTボタン用の証明書と秘密鍵が作成されますのでダウンロードします。
エンドポイントが東京リージョンになっていますね!
次にAWS IoT Button側の設定を行います。ボタンを5秒ほど長押しするとWi-Fi設定のためのSSIDが表示されますので上に書いてあるSSID/パスワードでネットワークに入ります。※パスワードはDSNの下8桁になります。
AWS IoT Buttonの設定画面が表示されます。スタイルが特にかぶさっていないのでちょっとビックリしますね。リージョン、エンドポイントのサブドメイン等必要な情報を入力します。またここで証明書と秘密鍵をアップロードするように指示されますのでアップロードします。ここでボタンごとの証明書と秘密鍵を決められるということは、Lambdaからではなくても通常通りAWS IoTのThingを作成して、そこで作った証明書と秘密鍵をボタンに紐付けることが出来る、ということですね。Shadow的な仮想オブジェクトがAWS内に作られるのでしょうか。それとも設定した時点でボタンに証明書がダウンロードされるのでしょうか。気になります。
設定が終わると終了画面がでます。これまたシンプルです。
Lambdaに戻ってNextボタンを押下するとコードの入力画面に映ります。サンプルはあらかじめメールアドレスを設定する事でメールが飛ぶようにコーディングされていますのでとりあえずメールアドレスを設定します。
メールを飛ばすのにSNSを使用するのでLambdaからSNSを使う権限をIAM Roleで付けてあげてLambdaの設定は終了です。
AWS IoT側を確認してみましょう。先ほどのDSNでThingとRuleが設定されています。
これで構築は完了です。簡単ですね。テストしてみます。ボタンを押すと
メールが飛びます。バッテリー容量等も情報に入っているのでCloudwatch logsと連携して電池が少なくなったらアラートを鳴らしたり、Lambda内で自動的にもう一つAmazonに注文する、ということもできますね。
まとめ
いかがでしたでしょうか。日本ではまだ未発売のこの"AWS IoT Button"ですが、発売されれば色々な用途に使えそうです。実際にアメリカではこのボタンを使った構築やサービスを公開するサイトがあり、Uberでタクシーを呼んだり、照明を操作したりしています。上手く構築するとこれで車のロックも解除できるそうです。日本発売が待ち遠しいですね。