この記事はRCCアドベントカレンダー24日目の記事です
皆さん、センサーしてますか?nokkiiです。僕は最近スマートフォンでのセンシングに興味があります。とくに最近ではBLE(Bluetooth Low-Energy)が大流行しており東京駅でのBLE測位などの大規模測位プロジェクトも出てきました。実は僕もそこに一枚噛んでいて、常にかばんの中にiBeaconが入っているBLEおじさんです。
BLEの新しいところは省消費電力なところもありますが、ことスマートフォンに関して言えば自由度が高いという点が個人的に一番の魅力です。例えばWi-FiではAPモードになるのに権限が必要でアプリ上でシームレスに行うことができませんが、BLEであれば簡単にアドバタイジングすることができます。また、Wi-FiではAPモードになったままAPの検索をすることができない、出しながら入れる(クリスマスっぽいですね、メリークリスマス!)ことができないのですがBLEでは同時に行えるためすれ違い通信のようなアプリも製作可能です。
そこで導入として今回はAndroid、iOSでのBLEの実装を紹介したいと思います。
iBeaconMiningTool4A– https://bitbucket.org/ritsubi/ibeaconminingtool4a
iBeaconMiningTool4iOS – https://github.com/nokkii/test2
この2つはiBeaconのパケットを収集するツールです。iBeaconの検知に使ってください。欲しければiBeaconのパケットをsqliteに落として解析することも可能です。
さて、送信側ですが、この度Android L 通称LolipopでBLEのペリフェラル(送信側)のAPIが公開されました。前から実装はあったのですがDisableされていた部分です。つまりこの冬、スマートフォンからのアドバタイジングが始まるってことです。常に自分の何らかの情報(32bitしかないけど)を発信することができるってワケです、アツいですよね!現在Android5.0のユーザー人口は0.0%です。僕はやります、皆さんもどうですか?セカイカメラで感じたような未来感がまた近づいている気がします。
aBeacon– https://github.com/youten/aBeacon
HiBeacons – https://github.com/nicktoumpelis/HiBeacons
そうだった、ユーザー人口0.0%なのでLolipopの入手についても書いておきましょう。Lolipopの公式ROMはまだどのメーカーも出していません。Nexus7以降のNexusシリーズでのみOTAアップデートが来ています。ただ、アップデートは抽選になっているのでまだ来ていない人で欲しい人は公式ROMをダウンロードすることができるのでこの機会にROM焼きにチャレンジしてみてはいかがでしょうか。
僕はLolipopを3機ほど調達する用事があったのでNexus5, Galaxy Nexus, Galaxy S4 LTEにLolipopを導入しました。うち2機は公式ROMが来ていないので野良ビルドを焼きました。野良ビルドは技適認証を通っていないわけですから設定画面に技適マークが無いので日本国内での電波の使用は制限されます。無線を使いたいときは公式ROMを待ちましょう!
そのうち上の研究用ツールではないBLEを使ったアプリを作る予定なのでご期待ください!