Nullppo

メモ帳的なにか

iBeaconを使ってみよう(勉強編)

はじめに
iBeaconとは、iPhoneのiOS7に標準搭載されたBluetooth Low Energy(BLE)を使った新技術のことです。
 
以下の動画も有名ですね。
 
なんだか、ワクワクしますね!
調べてみると以下のことが分かりました。
  1.  ビーコンはUUIDと呼ばれる識別情報をアドバタイズ(伝達)する。
  2. UUIDが同一のビーコンは、アドバタイズしている追加情報(MEJORおよびMINOR)によって区別可能である。
  3. 半径約10mをカバーしている。(壁面や床・天井・人体などの影響を受けて反射・吸収・回折が生じることで、複雑な電波強度分布となる)
  4. 電波が減衰する性質を利用してビーコンとの距離を求めることができる。
    →詳しくは、コチラに書かれていました。
  5. ビーコンはアプリがあって成り立つ。
  6. アプリ側はビーコンの受信をきっかけに、処理を行う。
これだけで、色々なアイデアが生まれそうですね。
実際に以下の様な使われ方をしています。
  • 博物館や美術館等の展示品紹介
    →展示品にビーコンを設置する。事前にアプリを仕込んだ端末を持ったユーザが、展示品に近づくと自動で紹介動画や文章が開く
  • 東京駅構内におけるナビゲーション
    →ビーコンを複数設置して、ビーコン対端末間の距離を使って場所を把握。地図にマッピングすることでナビゲーションを可能にしている
  • 勤怠管理(シュキーン)
    →説明がめんどいので公式を見てください
さて、、、、
ここまで書いといて残念なお知らせです。
私はiPhoneではなく、Androidユーザですw
 
ですが、心配はいりません。
Bluetooth LE に対応したAPI が追加された Android 4.3 以降の端末であれば、iBeaconは受信することが出来ます
とりあえず、BluetoothをScanして受信したbyte列をiBeacon のデータフォーマットに則って UUID や、maj・・・・・こんなの面倒ですね。(簡単にできますが。)
Radius Networks社が出しているAltBeaconを使えば、上記のような手間が省けます。
さらに、距離の計算も自前でしなくていいのです。
 
あー使いたい。あー使いたい。
ってことで、実装してみました。
iBeacon自体も自社の研究会で購入したのですが、今回はnode.jsを使って電波を飛ばしたいと思います。
 
と、、、、
ここまで書いたのですが、眠くなってきたので次回のお楽しみということで。
 
iBeacon関連記事の予定
  1. 本ページ
  2. node.jsで電波を発信
  3. altBeaconを使用してAndroidで受信(リージョン管理編)
  4. altBeaconを使用してAndroidで受信(レンジング編)