アップデートで進化する #iot #SORACOM #ソラコムサンタ

★この記事は「SORACOM Advent Calendar 2016」の22日分のエントリーになります

qiita.com

注意
  • 機能/サービスの検証とスクリーンショットの取得は 2016/12/17 に行いました。
  • それ以降に変更が加えられた場合は結果が異なる可能性がありますのでご注意下さい。

はじまり

ある日 こんなのありますよ! とのメッセージと上記のURLが送られてきましたw 名指しとあらば可能なことは断らずに受けていくスタイルなので書くことにっ!

あれ、これなんか見たことある流れだw とは言え、転職した後はIoTというかSORACOMに触る機会もなかなかなく・・・

しかし、SORACOMの皆様には非常にお世話になっている&SORACOMのサービスは触っていて楽しいので何とかネタを探して行くしかない!

これまで

uchimanajet7.hatenablog.com

去年の今頃はちょうどSORACOMさんにお邪魔してトンカツ食べてた頃ですねw あれからもう1年なのかまだ1年なのか。

しかし、いまだ公開事例化ができるようなものがないっぽいのは非常に残念ですねぇ。前職の中の人は是非とも頑張っていただきたい。

他には SORACOM Conference “Connected.” のセッションでプロトタイピング中のものを紹介してもらったりしました。

www.slideshare.net

プロトタイピングしてたものは↓な感でした。

uchimanajet7.hatenablog.com

あとは、前職の退職も決まった頃の最高に楽しかったハンズオンの会場係! いい思い出だ!

uchimanajet7.hatenablog.com

何を書くか

最近は全然SORACOMを触ってないのでネタが・・・

せっかくだから約1年前にやってたことで これどーしようかな? と考えてたことが、この1年間のSORACOMのアップデートでどうなったのか?を書いてみようと思います。

バイスとSIM

作っていたのは 位置情報 を定期的に送信して位置を確認するようなものでした。不特定多数が乗り降りするような動体に設置することを想定していましたので、デバイス丸ごとの持ち出しとSIMだけを持ち出される懸念がありました。

その当時に考えたのは、仕様として定期的にデータを送信するため1日に送信されるデータ量がおおよそ予測可能だったため データ通信量の監視 機能を利用して、通信料が増えたら通知して貰えば不正利用もわかるかなーと

dev.soracom.io

ただ、これでも通知される範囲内で利用された場合は検知できない可能性も・・・デバイスとSIMをセットで管理できると楽なのになぁーと感じていました。

IMEI ロック

それから1年後の今はどうかというとデータ通信量の監視に加えてアップデートで追加されたIMEI ロックがあります。

dev.soracom.io

IMEI ロックを利用すると、デバイスとSIMを結びつけて特定のデバイスでしかそのSIMが利用できないようにロックすることが可能になります。これにより、SIMだけを持ち出された場合でも他のデバイスでの利用が不可能になります。

特別な作り込みも必要なくSORACOM のユーザコンソールから利用できるのも手軽で非常に良いですよねー

通信距離と電力

作っていたの 定期巡回 するような動体の位置把握でしたので、動体そのものから定期的に位置情報を発信して現在地を表示していました。 しかし、要件としては細かい現在位置というよりはある一定の範囲に入ったら情報を表示できれば良いという感じのものでした。

これを実現するとなると、ゲートウェイ製品を必要なポイントに立てて、ゲートウェイ単位でなんとかするとかかなぁ?ぷらっとホーム さんの OpenBlocks とかを使えば行けそうかなぁ? とか考えていました。

openblocks.plathome.co.jp

実際にWebを確認すると位置測位のソリューションを展開されているんですねーまぁーそうなりますよねー

openblocks.plathome.co.jp

ただコストやメンテナンスなんかの兼ね合いもあり、その当時だとこの選択ななかなか難しいなぁーという結論に・・・

LoRaWAN

それから1年後の今はどうかというと、SORACOMさんとM2Bコミュニケーションズがパートナーシップを結んだことにより、LoRaWAN と SORACOM プラットフォームとの連携が可能になっています。

soracom.jp

LoRaWAN は通信できる範囲が広いので上手く活用できればゲートウェイの数が減らせるのでコストやメンテナンス周りでマッチする可能性もありますね。

soracom.jp

現在はまだPoCキットの提供となっていますが今後が楽しみですね。

まとめ

  • 1年前に比べてアップデートで進化しているSORACOM
  • 使っていればそれだけで新しい解決方法が提示されている
  • 当然ながら利用する側もこのアップデートになるべく追随して恩恵を受ける方がいい
  • LoRaWAN のようなこれまでの発想と違った技術とも連携が取れる
  • 大型の機能追加以外も多くサービスとして完成度が上がっている
  • 最近SORACOM触れてないので久々に楽しかったです
  • 今後の機能追加とアップデートも期待してワクワクしながら待っています!






なぜか・・・

twitter.com

なぜか会社の公式Twitterがハードルを上げてきたので、他にも何かネタを考えないとかなぁーと。せっかくなので 位置情報取得 を使って何かしてみようかと思います。

前提

SORACOM Air を利用するのは当然なので、使える機器を家で探したわけですが・・・↓ ぐらいしかなかった・・・ドコモさんの機器が家にないのがわかりましたw

f:id:uchimanajet7:20161214155802j:plain

使えるのは標準SIMだったので、素敵なアダプターで変換をして利用しました。このノベルティー実用性も高くて素敵ですよね。

f:id:uchimanajet7:20161217021800j:plain

あとは位置情報を収集するための簡単なプログラム書いて SORACOM Air で送信するだけですね!

SORACOM Harvest

2016年11月30日に追加された新サービスで IoT デバイスからのデータ収集および可視化サービスです と公式で説明されています

soracom.jp

SORACOM Airを利用して送信するので安心かつ自前でデータ保持や可視化の環境を持たなくてもSORACOMがすべてやってくれるというフルマネージドのサービスですね。

簡単かつ気軽に利用できるのは本当に便利ですばらしいですね

で、今回はこれに位置情報を送ってみようと思います。 それなんか意味あるの?的な結果になりそうですが・・・

使ってみる

SORACOMのサービスは大変親切な Getting Started が用意されているので、↓に沿って進めていきます

dev.soracom.io

ドキュメントが丁寧に書かれているので特に迷うことなく使い始めることができますね。

位置情報

今回は手軽に位置情報を取得したいので、HTML5で利用できる Geolocation API を使って取得を行います。

Geolocation API Specification 2nd Edition
https://www.w3.org/TR/geolocation-API/

継続的に位置情報を取得したいので navigator.geolocation.watchPosition を利用ています。 実際の利用法はGoogle先生で調べれば色々出てきますが非常に簡単に利用できます。

1点注意が必要なのはブラウザ側の制限で位置情報を取得するには HTTPS が必須となっています。

www.atmarkit.co.jp

今回はローカルで検証を行うため file:/// から始まるものにはこの制限は関係ないようです。通常と同じように位置情報取得を許可してもらえれば取得が可能になります。

実際に試してみる

簡単なHTMLとJavaScriptで位置情報を取得できるようにして、実際にSORACOM Harvestに向けて送ってみましたが・・・ローカルだと以下のようなエラーが

f:id:uchimanajet7:20161217185948p:plain

ローカルだからかなぁ?と思いS3とCloudFrontでHTTPSで公開して試してみると

f:id:uchimanajet7:20161217190920p:plain

SORACOM Harvest のエンドポイントが HTTP なのでHTTPSとの混在を怒られて送れないらしいので、ブラウザを↓のように操作してHTTPでも読み込むようにします。

f:id:uchimanajet7:20161217192126p:plain

しかし、残念ながらまだエラーが出ます

f:id:uchimanajet7:20161217192638p:plain

最初と同じ CORS のエラーですね・・・これはSORACOM Harvest のエンドポイントが対応してないってことなのか。残念。

qiita.com

結局

通常のWebであれば、Amazon API Gateway などを手前にかぶせてCORSに対応してしまうこともできるのですが、SORACOM Harvestのエンドポイントにアクセスするには、SORACOM Air経由である必要があるわけなので・・・今回はこう言った手法は使えないことに。

ただ今回はローカルだけで検証するつもりだったので、JavaScriptから位置情報をPOTSする先をローカルに立てたサーバーし、そのサーバーからSORACOM Harvestのエンドポイントに再POSTすることにしました。

golangで簡単なプログラムを組んで上記のことを実現してますが、よく考えたらDockerでnginx動かしても簡単で良かったかもしれないですね。

f:id:uchimanajet7:20161217195322p:plain

で、実際に位置情報をSORACOM Harvestに入れたら↓になりましたーやはりあんまり意味なしな結果にw まーそりゃそうだ。

f:id:uchimanajet7:20161217195254p:plain

しかし、雑にJSONを送るだけで可視化して値も見ることが出来るのは手軽でいいですねーSORACOM Funnelとは違った便利さがあって素敵です。

soracom.jp

まとめ

  • SORACOM のプラットフォームを利用していると、プラットフォーム側のアップデートによりそれまで不可能だったことが可能になったり、複雑な仕組みが必要なくなったりする。
  • AWSなどのクラウドプラットフォームと同様に、SORACOMのプラットフォームもマネージドサービスを積極的に利用して楽をしよう
  • SORACOM Harvest は非常に手軽にデータの送信、蓄積、可視化を行える
  • あまり無いかもしれないが、ブラウザのJavaScriptからSORACOMのエンドポイントにデータを送信する場合にはCORSに注意する
  • スマホ+ブラウザでSORACOMサービスを利用することは、今後ありそうなので解決方法があれば知りたいです。
  • 今回使ったプログラム類はGitHub上に上がってます。簡単なので必要ないかもしれませんが試してみたい方は覗いてみてください。

    github.com

#ソラコムサンタ

今年も #ソラコムサンタ がやってきてくれるとのこと。

twitter.com

せっかくなので細々してるお願いをまとめて書いてみました。

  1. 手軽に使えるSIMフリーの機器があると嬉しいです。
    • 今回も検証そのものよりも使える状態にするまでが時間がかかった・・・
  2. IoTでは遭遇する機会はなさそうですが CORSの回避ルートが欲しいです
    • SORACOM Beam 経由ならもしかしたら!と思ったけどダメだった・・・
    • 多少手間がかかる方法でもなんとかなる道があると嬉しいです
  3. ユーザーコンソールの検索で ワイルドカード が使いたいです
    • prefix 付きで名前をつけても完全一致以外は検索できないっぽい?
    • 検索文字列がなくなった後の再ロードがちょっと重い
    • この辺はSIMの登録数とかPCのスペックとかに関係ありそうなので、一概には言えなさそう・・・

      f:id:uchimanajet7:20161214014539g:plain

  4. ユーザーコンソールで地図を表示して欲しい。
    • グローバル・カバレッジのユーザーコンソール画面ですでに表示されているっぽい?

      各SIMの詳細画面では、基地局情報が取得できる場合には地図上での位置を表示したりセッション情報(いつ接続したか、切断されたか)を表示することができます。 blog.soracom.jp

    • 地図があれば地図上から ジオフェンシング の範囲を指定したい
    • これが出来ると、ある一定の範囲から出たら/入ったらでトリガーが引けそう
    • そうなると、動いちゃいけないデバイスがある範囲から動いたら通知とか、家に帰ってきたから3GをOFFにするとか出来そう
    • もちろん Harvest で今回やったみたいに動体管理が出来ちゃうとしたら作り込みいらなくて最高

すでに実現済みで私が知らないだけっていうのもありそうな気もしますが・・・その場合はお手数ですが教えていただけると大変助かります。

宣伝

弊社サーバーワークスは SPS 認定済インテグレーションパートナー です。SORACOMを利用したIoTについてご興味ある方は是非お問い合わせください。

soracom.jp

www.serverworks.co.jp


まだまだ続く「SORACOM Advent Calendar 2016」

12/25 の最終日までまだまだ続く SORACOM Advent Calendar 2016 明日以降の投稿も楽しみですね!

qiita.com



以上になります。