読者です 読者をやめる 読者になる 読者になる

ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

AndroidでもSORACOM Airを使いたい!

9月30日に発表されたSORACOMがとても面白そうだったので、友達といろいろ話したアイデアをアプリにしました。

さいしょにまとめ

SORACOM Air(IoT デバイス向けデータ通信 SIM "Air SIM")をAndroid端末で使ってみよう、従量課金なので不要な通信を全カットするユーティリティ「IoT Gateway」を作ったよ、というのがこの記事のざっくりとしたまとめです。

 

今回つくったIoT Gatewayを使うとAndroidで意図しない通信を止められます。バッテリ持ちも伸びるかも。

f:id:hdk_embedded:20151002113315p:plain

  • アプリ単位で通信を禁止/許可できます
  • 次のリリースではIPフィルタリングが入ります

ダウンロードは記事の一番うしろです。

f:id:hdk_embedded:20151002104717p:plain
アプリを作って遊んでる開発者のイメージ図(※簡単さを表現したかったのですが、出来上がってみると本文とはあまり関係なくなりましたがボツにするのも惜しいので唐突に紹介しておきます。ぺしぺし)。

IoTプラットフォーム SORACOM の概要

ソラコムさんの提供する IoTプラットフォーム"SORACOM"の詳細は、他に詳しいサイトが多くあるので省略です。サービス概要やメディア報道をよむと雰囲気がつかめて良いです。

 ざくっと言って、MVNOの回線網をプログラマブルにして提供する=IoTデバイスの課題である接続性とセキュリティをクリアできて更に柔軟だよ、がいいところ。

Androidの通信を制限するゲートウェイアプリ「IoT Gateway

つくったアプリでは次の図のようなことをやってます。

f:id:hdk_embedded:20151002113315p:plain

アプリでホワイトリストをつくって通信をコントロールしてます。

SORACOM Airで遊ぼうと思ったとき、次のような点でめんどくささがあります。

  • Arduinoやmbedなど電子工作機器は、SIMで接続する手段がない or 高額
  • Raspberry PiはUSBの3G通信ドングルが使える。良い。
  • センサーはハードを買ってきてつなぐハードルがある。組み込みの知識がいる。

こういう組み込み系の知識もあったほうがいいっちゃいいのですが(実際好きな分野なんだけど)クラウド側と組み込み、両方を求めるのは厳しい。そこでAndroidをつかえば楽できんじゃないの、というのが今回のアイデアです。

  • Android端末には沢山センサーついてるのでこれを使いたい。安上がり。
  • モバイルアプリと同じ感覚で作れるので楽。
  • 標準アプリとかが勝手に通信するのは避けたい(お金かかる)← これを解決

f:id:hdk_embedded:20151002110058p:plain

このようにアプリごとに通信を許可します(ひとつも許可が入ってない→ネットワークから完全に遮断される、です)。

ダウンロードはこちらから

 今回の対応機種はAndroid 5.0以上です。今後、安価なAndroid端末でも使えるようにAndroid 4.0.3までサポート範囲を拡張する予定です。後述する免責事項もあり、Playストアに上げるほどのクオリティになってないためバイナリ提供です。自己責任でためしてみてください。

f:id:hdk_embedded:20151002110223g:plain

apkダウンロード もしくは上記QRコードから。

免責事項:夜中に作ったやつです。動作保証はありません。本アプリはAndroid OSのもつVPN機能(VPNService)を応用して、ネットワーク通信を制限しています。そのためAndroid OSもしくはメーカーが改変した機能でVPNServiceを迂回する通信があった場合、無力です。通信します(手元の端末でも大丈夫か検証してみてください。アプリをオンした状態でネットワーク状況を確認してみるなど)。

さいごに感想

SORACOM Airで遊ぶときに、とりあえず必要だったという理由でIoT Gatewayを作りました。じゃあ、どんなことを試せるの?という話になると難しい(思いついたものは他のSIMつかってもいいかも、というものがほとんどだったりします。企業として、またはバラ巻きたい、みたいな考え方だと色々でてくるあたり、SORACOMはB2Bで強いなぁ)。

 

それでも試行錯誤したり試作したり使えそうだったので(そこから更に次のアイデアが出てくるといいなぁ)熱が冷めないうちに、かたちにまとめてリリースしました。

 

おとといのSORACOMのリリースをみて、自分でサービス組めるのかぁ!すごいフレキシブルだ!楽しそうだなぁ、とおもったのが一番単純な理由です。誰かの役に立てば幸いです。

 

追伸:こんな機能がほしい、あんな機能がほしいなどあればTwitterとかコメントとかでご連絡下さい

 

追伸2:

f:id:hdk_embedded:20151002120357j:plain

先ほど我が家にもSORACOM Airがとどいた!