Amazon Dash Button は販売終了してしまったが、AWS IoT エンタープライズボタン(IoTボタン)は、まだ販売しているぞ!
Dash Button を魔改造する手口は使えなくなったが、正規品の購入は引き続き可能だ。
AWS IoT エンタープライズボタン(IoTボタン)の機能概要
利用者が AWS IoT エンタープライズボタン (IoTボタン)のボタンをクリック、ダブルクリック、または長押しすると、
当該 IoTボタンに割り当てられた最寄りの WiFi アクセスポイントを経由して、インターネット上で稼働している Amazon Web Services (AWS) の AWS IoT 1-Click サービスに対して処理要求が送信される。
AWS IoT 1-Click サービスは、受け付けた処理要求に対して、何らかのソフトウェア処理を行う。例えば、特定の電話番号に対してSMS(ショートメッセージ)を送信するなど。
AWS IoT エンタープライズボタンの環境設定
- AWS IoT 1-Click サービス(サーバ)側へ、買ってきたばかりの IoTボタンを登録する。
デバイス登録を行う。 - IoTボタンを押す利用者(クライアント)側では、主にIoTボタンをWiFi経由でインターネットに接続させるための環境設定を行う。
この作業は、Android または iOS の「AWS IoT 1-Click」というソフトウェアを使って行う。 - AWS IoT 1-Click サービス(サーバ)側で行わせたいソフトウェア処理を設定する。
といっても、まだ何にも処理は作っていない段階なので、テスト用に予め用意されているSMS(ショートメッセージ)送信の処理に自分のスマートフォンの電話番号を指定して疎通確認をすることになるだろう。
AWS IoT 1-Click サービス(サーバ)側へ、IoTボタンを登録
AWS 開発者コンソールにログインし、AWS IoT 1-Click サービスに登録する。
この登録の途中で、IoTボタンの接続(疎通)待ちになる。
そこから、IoTボタンを使う利用者(クライアント)側の設定作業へと移行する。
両方での設定作業が終われば、アカウントへ登録するための「完了」ボタンが押せるようになる。
AWS IoT 1-Click をダウンロード
IoTボタンを押す利用者(クライアント)側では、主にIoTボタンをWiFi経由でインターネットに接続させるための環境設定を行う。
この作業は、Android または iOS の「AWS IoT 1-Click」というソフトウェアを使って行う。Amazon Mobile LLC から提供されているものが本物。
※画面は Android (Google Playストア)のものであり、iOS (Apple Store) では異なる。
IoT 1-Click デバイスの追加
インストール後、起動すると AWSアカウントへのサインイン画面の後、IoTボタンを追加する画面が表示される。
ここで AWS リージョンが「欧州(アイルランド)」となっていて戸惑った。
とりあえず、AWS IoT 1-Click サービス(サーバ)側は「オレゴン」だったので、それに合わせてみたら、今度は以下のエラー。
The page you tried was not found 404
画面左上の左矢印ボタンを押して戻ろうとしても、戻れないため、リージョン再選択ができない。なんと酷い...!
なおここで、「AWSは初めてですか?」を押しても、決して救われることはない。
もう一遍、ストアから AWS IoT 1-Click をダウンロードするところからやり直した。
再度、オレゴンを選択したら、やはり同じエラー。
オレゴン以外の、とにかくエラーにならないリージョンを選択するしかなかった。
AWS IoT 1-Click サービス(サーバ)側は、あくまでもオレゴンなのだが。
なお最終的には、リージョンを選択するということ自体も必要なかったようなので、無意味な悩みだったわけだが...
デバイスIDのスキャン
皆さん、ボタンが入っていた段ボール箱は捨てないように!
バーコードが印刷されていた(だろうと思われる)箱を捨てていたので、手で入力することになった。
なお後日気づいたがボタン裏面にQRコードがあった。
もしかして、これを読み取れば良かったのかもしれない。次に設定するときはそうしよう…
デバイスIDの入力
いまいましいことに、この画面では大文字と小文字を区別します。
g030ではダメです。G030(以下、すべて大文字)でないと、デバイスの設定ボタンが押せません。
さらにイラつくのが、入力のさいにATOKが表示する変換候補。
英数字入力のときには変換候補など出さなくていいのだが...
Wi-Fiデバイスを設定
ここまでは前準備で、ここからが大事な設定作業。
Wi-Fi デバイスの設定という表現になっているが、要するに、IoTボタンに最寄りの Wi-Fi アクセスポイント(Wi-Fi ルータ)のSSIDとパスワード(キー)を教える。
BluetoothをONにしています... が終わらない
Bluetooth 許可リクエストで、許可をしたにもかかわらず、BluetoothがONにならないというトラブルに遭遇した。
いつまで待っても ON にならないようなので、Android の設定画面で、手動でオンにすることにした。
が...できない。ON のほうにスライドさせても、水色の ON 表示に変わらない。
一瞬、自分のスマートフォンが Bluetooth に対応していないのだろうか?と疑った。しかし以前に Bluetooth イヤホンを使ったことがあったことを思い出した(つまり対応しているのは確実)。
ぐぐってみたところ、
という記事が見つかった。「電池の最適化」設定を変更して、スマートフォン(Android)そのものを再起動した。
すると Bluetooth を ON にすることができるようになった。
青い光が点滅するまでデバイスを6秒間押します
Bluetooth が ON に変わっていることに注目。
Bluetoothは、Wi-Fi の接続先設定情報を送信するのにでも使う予定なのかな?
毎度おなじみ、Wi-Fi ネットワークへの接続画面。
青い光が点滅するまでデバイスを6秒間押します、で処理中が終わらない
この「設定:処理中」も永久に終わらないようだが、このまましばらく放置して、AWS IoT 1-Click サービス(サーバ)側の設定を続ければ問題なかった。
「設定:処理中」が完了することはなかったが、最終的には繋がったという意味。
とにかく Amazon が作るクライアント側ソフトウェアの品質はいつもいつも最低だ。
Alexaアプリなんかも、相変わらず、まともに動かないし...
AWS IoT 1-Click サービス(サーバ)側で行わせたいソフトウェア処理を設定
AWS IoT 1-Click サービス(サーバ)側にデバイス(IoTボタン)の登録はでき、有効化も行ったのに、疎通完了しない。
なぜかと思って、少し前に買い置きしてあった書籍の記事で調べたら、
- プロジェクトを作成して、最初に登録したデバイス(IoTボタン)に、処理も一緒に登録しないといけなかったらしい
- プレイスメント(配置)も、一緒に作成しておかないといけなかったらしい
と判明した。いや、助かったよエレキジャック君。
テスト処理は、自分のスマートフォンへのSMS(ショートメッセージ)送信とした。
要するにデバイス(IoTボタン)のデバイスID登録だけではダメで、デバイスIDとプロジェクトとプレイスメント(配置)は3点セットで設定するものだったようだ。
原文
機械翻訳らしく、たいへん分かりにくい。
プロジェクトを使用して、デバイスのグループを Lambda 関数に関連付けることができます。
https://docs.aws.amazon.com/ja_jp/iot-1-click/latest/developerguide/1click-PTP.html
意訳
IoTボタン(デバイス、あるいはプレイスメント)に実行させたい処理(Lambda関数、あるいはオペレーション)を指定するには、まずプロジェクトを定義してください。
プロジェクト、配置(プレイスメント)を登録したところ、Andoroid 側での「設定:処理中」が相変わらず完了しないにもかかわらず、IoT ボタンを押せばSMS(ショートメッセージ)が返ってくるようになった。
aws IoT エンタープライズボタン疎通確認 ep.02(完)
なおテスト用メッセージは「awsEnterpriseButton_SMSMessageDefault」となっているが、この文言は、プロジェクトの設定画面で設定しておいたもの。
よく意味が分からない情報項目には、とりあえず情報項目名を値として入力しておく、というのは職業病だろうか?
一旦、疎通したらスマートフォン(および Android アプリのAWS IoT 1-Click)は必要ない
IoTボタン - Wi-Fi ルータ - インターネットまでネットワーク接続が疎通した後は、スマートフォン(および Android アプリのAWS IoT 1-Click)は、以後(運用中)必要ない。
IoTボタン が接続する Wi-Fi ルータを変更(再設定)するようなときには、再び Wi-Fi デバイスの設定作業が必要になる。
IoTボタンとWi-Fi ルータの接続切れにも注意が必要らしい
IoTボタンとWi-Fiルータの距離が2メートルくらいであっても、ネットワーク接続が不安定になる場合があるようだ。30センチメートルくらいまで近づけば、ほとんど接続エラーは出ないようだ。
エンタープライズボタン(IoTボタン)の Wi-Fi の性能の細かい評価は別途するとして、とりあえず疎通確認のさいには、Wi-Fiルータのすぐ近く(真横)で IoTボタンを押すようにしたほうがよいだろう。
わずか2mでネットワーク接続不良が起こりうるとは思っていなかったので、他の設定を疑ってみたり、クリックのやり方自体を変えてみたりと、けっこうハマった。
なおエラーの場合には、ボタン本体のLEDの光り方でエラー内容が通知されるのだが、それを解読するためには、赤色LEDの発光(3回)の長短を見て取り、モールス信号のごとくに解読をしなければいけないのでなかなか難解だ。
https://docs.aws.amazon.com/ja_jp/iot-1-click/latest/developerguide/button-guide.html
ほとんど使わずに放置した場合の費用は月額30円未満
上記の定義を行って放置した場合、AWS IoT 1-Click サービスのランニングコストは30円未満であった。