【IoT】LTE-M Buttonを触って概念を理解する (SMS/メール送信・Slack投稿・unity連携など)
発表されてから予約日に即予約したSORACOMの「LTE-M Button」が届きました。
LTE-MもButtonも「よく分からんが、なんとなく理解したい」という人も一定層いるかなと思うので、基本的な所と触った所感を書いていきます。なるべく簡単に書くので概念で覚えて頂いてチャレンジャーが増えると嬉しいなと。
■LTE-Mについて
まず、AmazonDashButtonとなにが違うの?って話ですが、概念で覚えるならばもうDashボタンのイメージでok。ボタン押したらAWSのLamdba※ってサービス上でプログラムが動きます。プログラムはカスタム出来るので好きに作る感じで、Dashはここのプログラムに欲しい製品を購入すると言う処理が書いてあって、Amazonでのお買い物が出来るって訳です。
大きく違うのは「回線」。
従来のDashボタンはWiFiのセッティングが必要で、つまりWiFi範囲外に出たら使えない。SORACOM LTE-M Buttonの大きな新規性はKDDIのLTE-M回線を使う所にあって気持ちとしては携帯と同じ気持ちで使えます。
「LTE-M」はいわゆるLTE回線の「空いてる帯域」をやりくりして、上り/下りとも最大1Mbpsくらい(携帯の100分の1くらい)の通信が可能な通信キャリアならではのLPWAというもの。LPWAって言うとLoRaWANとかSigfoxとかが有名なところで、弊社でやってるというかメインのお仕事である「TREK TRACK」でもLoRa変調の仕組みを採用しております。
trektrack.jp
※Lambda … AWS(Amazon)が提供するサーバーレスで処理が実行出来るサービス。Node.js (JavaScript)、Python、Java (Java 8 互換)、C# 、および Go で記述されたコードがサポートされてて何かと便利らしいけど、わたくし、あんま知らないです
■既存LPWAと比較したメリット・デメリット(個人的な所感)
メリットとしてはキャリアの回線を使うので携帯に近いイメージで使えます。とはいえ、厳密に同じではないらしいのでその辺りはKDDIさんのページをみて頂ければと。今の所、自分の生活圏で使う分には問題なさげです。
反面、デメリットとなるのはキャリア回線に依存するので圏外の場所で使おうとしてもどうにもならない所です。920MHz帯のLoRaたちはアンテナを自営する事で山の中とか電波の無い所でも使うことはできます。ただ、このアンテナ自営はコストと労力がかかる上に、通信を行うアンテナ(ゲートウェイ)は何かしらの回線に繋がってないといけないので一長一短ですね。
ゲートウェイは安いものでも1台100,000円近くしてしまうのと、工事したり電気通信事業の届出が必要だったりとかするので個人のモノづくりに向いていないのが現状で、920MHz帯はハード(電子工作)の知識が必要だったり、通信データ量がそもそも数byteでセンサー向けだったりと参入ハードルがあるのでまず触るのにもLTE-M良いし将来性もあると思います。
■LTE-M Buttonで何が出来るのか
Buttonは1回押し、ダブルクリック、長押しの3つのアクションが使えます。それぞれの押し方をされたら何をするかはそのさきのプログラム次第。 ボタン(デバイス)単位でID管理されるので、どのボタンが押されたか、というのもLambda側で判定出来ます。
Training① 押したらSMS / メール送信をやってみる
今なら3980円というお手頃価格で手に入るボタン、とりあえず触ってみるというレベルであればプログラム書かないでも実行することが出来ます。まずは一番簡単なSMS送信orメール送信のやり方。
[前提]
・SORACOMアカウントが必要です(LTE-M Button購入の時点で必要ですが)
・AWSのアカウントが必要です
LTE-M Buttonの梱包を開けるとおもむろにデバイスと電池が入ってるだけで特に使い方は書いてないのですが、SORACOMのサイトに行くと丁寧に書いてあるのでいくつかWebで検索すればすぐに解決します。簡単に言うと4ステップ。
①「AWS IoT 1 click」アプリを入手してデバイス登録
②SORACOM UserコンソールでLTE-M Buttonのデバイス登録をします。
③WSコンソールに「AWS IoT1-Click」からデバイスを登録
④Lambdaで新規関数を作成。
※SMSとメール送信はプログラム書かずに出来ます
■実行結果
ボタンを押して実行するとこのようにメールやSMSが飛んできます。今回は "たすけてボタン" と言う前提でたくさんの"たすけて"が送られてきます。
詳細はSORACOMさんの公式に書いてあるので、気になる方はぜひ。
サクッとやれます。
blog.soracom.jp
Training② Button押したらSlackにpost
次はSlack。これも情報としては既にWebに出ているので概要だけ。簡単に言うと3ステップ。
① Slack Webhook URLを発行する(所要時間3分)
まずは投稿したいSlackのワークスペースから「Webhook URL」を発行しましょう
② 次に処理を行うLambda関数を作ります(所要時間7分)
③ で、実行すればSlackに飛んできます(所要時間1分)
こちらも詳しいやり方は以下に載ってます。
SORACOM LTE-M Button powered by AWS をクリックしてSlackに通知する | Getting Started with SORACOM LTE-M Button | SORACOM Developers
■LTE-Mボタンの企画アイデアを考える上で気にすべき事
用途が大変広そうなLTE-M Button、個人的にもまだアイデア出てきてないんですが触ってみてたら以下3点は気にしないといけないなと思いました。ここまで読んで「よく分からん」という方も以下3点は知っておいてください。
気にすべき① :押してから処理の実行まではラグがある
これ、省電力を実現する為にも必須らしいのですがButtonは押されてからセッション準備→投げるという動作をするので、そもそもLambdaの関数が実行されるまで10数秒のインターバルがあります。なので、どんなに電波が良くとも処理が軽くとも「押した瞬間何かが起きる」みたいな事にはならず、インタラクティブなものに使う場合、体験の設計が必要です。下のようにしばらく点滅して緑になったら処理完了という感じです。
気にすべき②:電波と実行回数上限
これは上でも触れたんですが、そもそも電波が無い所だと使えないのでご注意を。
気にすべき③:Lambda関数を挟むという事
Lambdaを挟む事で可能性は無限なのだけど、クライアント→サーバじゃなくてある意味、サーバ→クライアントになるです。なので例えばクライアント側に処理を投げたい時はそこの別スキルが必要になります。
と、いう事でunityと連携しようとしたら面倒だったというのを最後に記しておきます。
Training③ UnityとLambdaでなんかやる
今後、色々使っていきたいと考えるとまずは自分で扱いやすい環境での動作みたいなーと思っており、unityでどうにかならんかな、と思って試行錯誤してまずはunity→Lambdaに繋ぐところを作ってみた。
一応、AWSからSDKが出ているのだけどRoleを生成したりなんだりと前手順が複雑で結構な時間がかかった。。しかもunity だと悪名高いWWWの変更のタイミングをSDKがまたいでいてエラーの切り分けが大変。結果として繋ぐ事は出来たのだけど、ButtonClick→Lambda側で処理結果をUnity側で定期的に見るみたいな事をしないといけなくて、そこまでやっても何が出来る訳でも無いので今日はここまで。
Lambda連携はこちらの記事を参考にさせていただきました。
blog.be-style.jpn.com