SORACOM LTE-M Button で SMS 送信

 2018年10月下旬に販売開始された SORACOM LTE-M Button が 11月に入って出荷開始されました。

blog.soracom.jp

 ボタンの機能等についてはオフィシャルサイト等参照いただくとして割愛しますが、私も購入して出荷開始後にすぐ届いたので、チュートリアル的にSMS送信までをとりあえずやってみたので、PCでの設定手順を書いてみます。

f:id:akanuma-hiroaki:20181105075002j:plain:w400

デバイス登録

 まずは AWS IoT 1-Click に購入したボタンを登録します。 AWS IoT 1-Click のコンソールから デバイスの登録 をクリックします。

f:id:akanuma-hiroaki:20181105075232p:plain

 登録コードもしくはデバイスIDの登録フォームが表示されますので、 SORACOM LTE-M Button の場合はデバイスIDを入力します。デバイスIDはボタンの裏蓋を外した右下に QR コードと一緒に記載されています。入力したらフォーム右下の 登録 ボタンをクリックします。

f:id:akanuma-hiroaki:20181105075415p:plain

 この時コンソールにログインしているAWSアカウントに IoT 1-Click に関する権限が不足していると、フォーム右上に下記のように「Errors.General.UnknownWithDSN」というエラーが表示されます。

f:id:akanuma-hiroaki:20181105080023p:plain

 ちなみにスマートフォンアプリでの登録時にも権限が不足していればやはりエラーになります。こちらの方がエラーメッセージの内容はわかりやすく、「iot1click:InitiateDeviceClaim」という権限がないというエラーが表示されます。

f:id:akanuma-hiroaki:20181105080312p:plain:w400

 本当は各操作の権限を必要最低限で付与するべきですが、今回はとりあえずお試しということで、 「AWSIoT1ClickFullAccess」というポリシーを追加して、 IoT 1-Click に関する全ての権限を付与します。

f:id:akanuma-hiroaki:20181105080442p:plain

 権限付与後に再度デバイスIDを入力して 登録 ボタンをクリックすると、下記のようにボタンのクリックを待機する画面になります。

f:id:akanuma-hiroaki:20181105080637p:plain

 ここで実際に LTE-M Button をクリックすると、下記画面のように表示が変わり、デバイスが登録されます。

f:id:akanuma-hiroaki:20181105080659p:plain

 完了 ボタンをクリックすると、下記のようにデバイス一覧画面で登録したデバイスが確認できます。

f:id:akanuma-hiroaki:20181105080815p:plain

 デバイスID部分をクリックすると、下記のようにデバイスについての詳細が表示されます。デバイス登録時はデフォルトでは「無効」状態になっているので、 アクション から デバイスの有効化 をクリックして有効にします。

f:id:akanuma-hiroaki:20181106082605p:plain

プロジェクトの作成

 デバイスが登録できたので次はプロジェクトを作成します。プロジェクトとは自分の理解では、ボタンクリック時の動作を定義して、同様の処理を行いたいデバイスをグルーピングするためのもので、今回であれば、「ボタンをクリックしたら SMS を送信するという処理を定義して、その動作をさせたいデバイスを紐づけるためのもの」という事かと思います。

 プロジェクトを作成するにはプロジェクト画面で プロジェクトの作成 ボタンをクリックします。

f:id:akanuma-hiroaki:20181105081019p:plain

 プロジェクト名を入力して 次へ ボタンをクリックします。

f:id:akanuma-hiroaki:20181105081142p:plain

 ボタンクリック時の動作を定義するために、 デバイステンプレートの定義 をクリックします。

f:id:akanuma-hiroaki:20181105081248p:plain

 テンプレートのデバイスタイプとしては現状では すべてのボタンタイプ だけが表示されているのでこれをクリックします。

f:id:akanuma-hiroaki:20181105081337p:plain

 テンプレートが表示され、アクションはデフォルトでは「SMS を送信する」が選択されていますので、デバイステンプレート名を考えて入力します。

 アクションには「SMS を送信する」以外には「E メールを送信する」、「Lambda 関数の選択」という選択肢があります。 SMS ではなく E メールを送信するというだけであれば「E メールを送信する」を選択し、独自の処理を行わせたい時には「Lambda 関数の選択」を選択して、独自に実装した Lambda 関数を呼び出すように設定します。今回は「SMS を送信する」ケースを試します。

 テンプレートを設定したらプレイスメントの属性を設定します。プレイスメントとは、各デバイスが個別にもつ属性値になります。ここではこのテンプレートでのプレイスメントの属性のデフォルト値を設定します。各デバイスでプレイスメントが設定されなかった場合はこのデフォルト値が使われることになります。 SMS 送信のケースでは、電話番号とメッセージのデフォルト属性を設定します。

 最後に プロジェクトの作成 ボタンをクリックするとプロジェクトが作成されます。

f:id:akanuma-hiroaki:20181105081452p:plain

プレイスメントの作成

 デバイスの登録、プロジェクトの作成まで終わったので、最後に登録済みのデバイスをプロジェクトに紐付けます。 プレイスメントの作成 ボタンをクリックします。

f:id:akanuma-hiroaki:20181105081547p:plain

 プレイスメントの作成フォームが表示されますので、まず個別のデバイスを表すプレイスメント名を考えて入力します。

 次に デバイスの選択 をクリックして、登録済みのデバイスの中から今回紐づけるデバイスを選択します。下記画像はデバイス選択済みの状態です。

 最後にこのデバイス固有のプレイスメントとして SMS のメッセージの内容と電話番号を入力したら プレイスメントの作成 をクリックして完了です。

f:id:akanuma-hiroaki:20181105081846p:plain

SMS 送信実行

 ここまでで一通りの設定は完了なので、 LTE-M Button のボタンをクリックして動作を確認します。シングルクリック、ダブルクリック、長押しのそれぞれで下記のような SMS が送信されました。メインのメッセージはプレイスメントで設定したものですが、クリックタイプを示す内容も含まれています。

f:id:akanuma-hiroaki:20181105082508p:plain

f:id:akanuma-hiroaki:20181105082522p:plain

f:id:akanuma-hiroaki:20181105082535p:plain

まとめ

 権限が不足していた部分だけはちょっと手間取りましたが、それ以外は特にプログラミングすることもなく、コンソールから設定するだけで SMS 送信が実行できるようになってしまいました。 IoT 1-Click ではスマートフォンアプリも提供されていて、そちらでも一通りの設定が行えるので、 SMS 送信だけであれば PC すらなくてもボタンを利用することができてしまいます。 LTE-M なので Wi-Fi 設定も必要なく、ここまで手軽に使い始められてしまうのはすごいですね。機能としても3種類のクリックタイプのみというのがシンプルで良いです。今回はテンプレートの SMS 送信だけでしたが、 Lambda を実装すればアイディア次第で色んなことができるので、面白いことができないか考えてみたいと思います。