みなさんこんにちは。ソラコムnaoです。
電子工作をもっと気軽に始めていただけたらなという思いを込めLet’s try IoT プロトタイピング講座をスタートしました。2月は、SORACOM LTE-M Button powered by AWSを押すと、LINEに通知が飛ぶ仕組みを構築しました。大変多くの方にご視聴頂きありがとうございました。大変多くの方にご覧いただき、質問も多くお寄せいただきました。
2日間に渡るオンライン講座の動画を公開しましたので、参加者の皆様からいただいたQAの一部を合わせてご紹介します。
アジェンダ
1日目
- SORACOM LTE-M Buttonとは
- SORACOM LTE-M Button のセットアップ方法(AWS アカウントの紐付け、Eメール/SMS送信)
2日目
- AWS Lambda を利用した SORACOM LTE-M Button のLINE連携方法
- SORACOM LTE-M Button を使った開発で知っておくべき知識
※テキストはこちらをご覧ください
動画を公開!
1日目の動画
2日目の動画
視聴者からのご質問と回答
プレイスメントの作成画面の下の方に、属性の名前・値といった項目がありますが、これはどういったことを設定するのでしょうか?
プレイスメントに設定できる属性情報は、ボタンに割り当てることのできるタグになります。自由に設定していただくことができ、ここで設定した内容が Lambda 関数上に引き渡されるようになる、いわばパラメータのような存在です。例えば Amazon SES を使ったメール送信においては “Subject” という名前と値が Lambda 関数に引き渡されて Amazon SES を呼び出す際に利用されるといった形です。
東京リージョンへデバイスを登録してしまうと使えないのでしょうか?
どこのリージョンから登録しても SORACOM LTE-M Button はオレゴンに登録されるようになっています(2019年2月現在)。
一方、AWS IoT 1-ClickのプロジェクトやLambda関数はリージョン毎に作られます。オレゴンに登録されたボタンからは、どのリージョンのLambda関数でも呼ぶことはできるため実用上は問題ありません。今回紹介したのは、管理上で「あれ?どこのリージョンに作ったかな?」とならないようにするために、オレゴンに統一した形です。
IoTボタンを購入してから1年以上経過した後に使用開始した場合に、登録出来ないなどの問題が発生しますか?
SORACOM LTE-M Button における契約開始日は初回のボタン押下日が起算日となります。購入に紐づくものではありません。いつ開始したのか、また、何回押されているのかといった契約に関する情報は SORACOM コンソールに SORACOM LTE-M Button をご登録いただくことで見られるようになりますので、ぜひご登録ください。
万が一登録できなかった場合は購入した日時がわかるものを用意してサポートにお問い合わせください(サポートはSORACOMのユーザーコンソールにログインいただき右上にございます。)
実機を操作しながら追いかけています。もう一度見たいです。
上記の動画をご覧ください。早送りや一時停止などが可能ですので、お試しください!
SESでシングルクリックとダブルクリックで送信先を分けることはできますか?
SORACOM LTE-M Button を押したあとの動作については、すべて Lambda 関数内で制御/実装できます。そのため、SINGLEの時・DOUBLEの時で挙動を変える場合は、Lambda 関数を編集いただくことで可能です。一方、セミナー内で紹介した “Email 送信” については自動的に Lambda 関数が作成されていますので、この Lambda 関数を編集することで可能となります。
LTE-Mボタンは複数のAWSアカウントに登録できるでしょうか?
SOARCOM LTE-M Button の登録可能な AWS アカウントは1つです。その AWS アカウントでのみ利用できます。他の AWS アカウントに移設したくなった場合は AWS IoT 1-Click の管理画面上から「登録解除」を行うことでフリーのボタンにすることができるので、この状態で別の AWS アカウントへ登録ください。
1日のクリック数を限定することは可能ですか
SORACOM コンソールに登録いただいたボタンはクリック数を確認することができるようになります。例えば SORACOM の API 経由で現在のクリック数を取得し、それが上限に達していたら Lambda が起動しても即時終了するような、疑似的な回数制限は可能かと思います。ただし、押下によって通信が必ず発生するため、通信が成功した場合は Lambda 関数の実行成否に関わらず契約回数は消費されますのでご注意ください。
ボタンで 送信される情報は何がありますか? GPS情報は送信されますか?
SORACOM LTE-M Button には「1回クリック」「2回クリック」「長押し」ができるようになっており、それぞれ Lambda 関数上で 「SINGLE」「DOUBLE」「LONG」 として識別できます。
含まれるデータですが、押された内容以外にも、押された日時(正確には SORACOM や AWS IoT 1-Click にデータが到達した時間なので、数秒単位の誤差はあります)が送信されます。一方、ハードウェア的にはボタン(=接点)のみが実装されているため、そのほかのセンサーデータは含まれません。
GPS を含めた外部のセンサーを取り付けたいというご要望はとても多くいただいており、続報をお待ちいただければと思います。現状でも「バネを利用して、罠が動作したらボタンを(物理的に)押す」といった仕組みを実現されている方もいらっしゃるとお伺いしております。どのような使い方をお考えなのか、どのようなセンサーを取り付けたいか、といった具体的なユースケースをお教えいただけるとありがたいです!
LTE-Mが利用できるエリアは、KDDIのホームページ等から確認できますか。(地方に転居した際に使えるかどうか、あらかじめ確認したい)
全世界から使えますか?
SORACOM LTE-M Button で採用している “LTE-M” という通信は、KDDIが提供している “KDDI IoT通信サービス LPWA” を利用して実現しています。こちらは現在日本国内が主な提供地域となっており、通信可能な範囲はKDDI IoT通信サービス LPWA: エリア検索のページをご覧ください。
ボタンの電池残量や、故障していないかどうかをの確認はできますか?
1500クリック後には、別途課金で再利用できるようになりますか?現在のクリック数はSORACOMコンソールで確認できますか?
SORACOM コンソールへ SORACOM LTE-M Button ご登録いただくことで「契約の更新」「契約開始日や現在までの押下回数」「最後に押下された時の時刻や電池残量、クリックイベントの成否」といった運用に必要な情報や手続きが出来るようになります。更新手数料は 1200円 (税別)です。SORACOM コンソールに登録しておけば、自動的に更新されるようになります。
Lambda 関数に引き渡される「remainingLife」は、何を表していますか?
SORACOM LTE-M Button における 1-(押した回数/1500) or 1-(経過日数/365) のどちらか小さい方の値が入り、電池残量を表しているものではありません。AWS IoT エンタープライズボタンは電池残量が「emainingLife」になりますが、内容が異なります。異なる理由は 「remainingLife」というパラメータが表す意味によるものです。即ち「あと、どのくらい使えるのか?」というのを、押下制限が無い AWS IoT エンタープライズボタンは電池残量に割り当てています。一方、SORACOM LTE-M Button は電池交換が可能なため、電池残量に「どのくらい使えるのか」を割り当てても意味を成しません。そのため SORACOM LTE-M Button は契約内容に即した残りを割り当てています。
子供が持って行ってどこかでボタンを無くしてしまった場合は、位置情報などで見つけ出すことはできますか?
残念なことに、LTE-Mボタンでは位置情報はサポートしていません。勝手に押されて困る場合は、SORACOMに登録しておくことでコンソール上から無効化することが可能です。
3種類の押し方があるということですが、押し方によってメッセージは変えられるんでしょうか。その場合はどこで変えることができますか。
JSONのeventをLambda上で判定することで可能です。テンプレートに紐づけられるLambdaは一つだけですが、Lambdaから他のLambdaを呼び出すといった設計もあるでしょう。
SORACOM LTE-M Button はどこで購入できますか。
SORACOMコンソール上で買えます。また、Amazon.co.jpでも購入できます。
awsに関する質問はどこにすればいいですか??
AWSサポートがございます。技術的なご質問を希望される場合は「開発者(Developer)」以上のプランをご選択いただいたうえでお問合せいただければ、プロフェッショナルが対応いたしますのでご活用ください。
今回の内容で、ダブルクリックとロングクリックで通知内容を分けたい場合は、Lamda関数をどのように変更(追加)すれば良いか教えて下さい。できれば後でも構わないので、変更(追加)した場合のソースコードを公開して頂けると助かります。
Lambda 関数内の実装に関してはAWSさんをはじめ、様々な情報が出ております。例えばSORACOM LTE-M Buttonでルンバ e5を遠隔操作には、Python上でclickTypeによる分岐が記載されています。またAWS Lambdaそのものの学習は“Hello, World!” をサーバーレスで実行すなどで理解を深めることができますので、是非ともチャレンジしていただければと思います。
LTM-E Button の登録は AWS、soracom ともに同時にできる?仮に、いずれか一方だとすると、その都度、登録の課金が発生しますか?
LTE-M Buttonの登録に関して、一度にAWSおよびSORACOMに登録する仕組みは現状ではご提供しておりません。お手数ですがそれぞれのコンソールから登録いただければと思います。課金については SORACOM 側への登録は無料です(LTE-M Button の購入金額に通信料や契約にかかわる料金が含まれております)。一方AWS側においてはAWS IoT 1-Click の料金がかかります。費用はAWS IoT 1-Click のページをご確認ください。
大量のデバイス ID を API または CLI で登録する方法はありますでしょうか?もしある場合、ロットで発注したデバイスの ID 一覧をデータでいただくことは可能でしょうか?
標準では AWS IoT 1-Click に登録の際、実機のボタンを押していただく必要があるため1台づつの登録となります。しかしながら、別の方法もございますので、量などをご相談いただければと思います。
来月のオンライン講座のご紹介
また、3月6-7日は少し上級者向けのオンライン講座を開催します。使う機材は前回と同じくSORACOM LTE-M Buttonを使い、現場にいないスタッフを呼び出す仕組みを作ります。更にタブレットにスタッフのステータスを表示することで、呼び出したスタッフが現場に向かっているかどうかが可視化できるようにしています。
こちらの講座では、ボタンのセットアップ手順は省いてますので、ご希望の方は先に本ブログの1日目の動画をご覧いただくとスムーズに進められると思います。
※それぞれのフォームよりご登録をお願いします
ぜひ皆様のご参加お待ちしてます。
ソラコム nao