ANAアプリがこのたびのアップデートで、羽田空港内でのiBeaconガイダンスを追加しました。
ANAアプリが面白そうな機能載せてたので明日試してみる pic.twitter.com/JCKDxhw9my
— Shin Ise (@iseebi) 2015, 8月 29
よく知らない人のために言っておくと、羽田空港第2ビルはANA専用みたいになってるんですが、乗る飛行機の出発ゲートによって通るべき手荷物検査場が違うのです*1。なので、以前からANAアプリはジオフェンスで羽田空港の圏内に入ったら行くべき手荷物検査場を案内するLocal Notificationを出したりしていました。今回はこの案内をさらにわかりやすくするためにiBeaconを使ったサービスを開始したということらしいです。
iBeaconは仕様が決まっているので、スキャンしたり強度を調べることでどこにあるか位置を特定することができます。ちょうどこのアップデートが降ってきた直後に羽田空港に行く用事があったので、ビーコンを探してきました。
iBeacon のしくみ
実際の話の前に、iBeaconのしくみをおさらいしておきましょう。
iBeacon のビーコンは Bluetooth のアドバタイジングで以下のデータを流しています。
- Proximity UUID (128bit UUID)
- 組織単位で指定することが想定されている。
- Major
- Minor
このアドバタイズの受信圏内に入った/出たなどを監視してアプリを起動させたり、ビーコンからの距離を測ることができます。ビーコンからの距離は近い順から Immediate, Near, Far という指標で表されます。アプリを起動中であれば、メートル単位でとることもできます*2。
ANA アプリの実装を見る
まず、ANA アプリがどういう実装になっているか見てみました。
直近の予約があるときにレンジングの定義を行って、指定のビーコンのNearに入ったら対応するHTMLコンテンツを表示するLocal Notificationを通知する形になっているみたいでした。
iBeacon をさがす
iBeaconをiOSから受信するには、そのビーコンのProximity UUIDを知っている必要があります。そのため、この調査のためにはBLEを搭載したAndroid端末を併用する必要があります*3。
今回はiBeacon & Eddystone ScannerをXperia Z3 Compactに入れて、Proximity UUIDを調べたり、距離を調査したりしました。
Proximity UUIDがわかれば、iOS 側は BLExplr のBeacon Ranging機能が使えますので、Androidと併用すると良いです。(BLExplrは設定画面でProximity UUIDをセットしておく必要があります)
調査結果
1時間半かけてImmediateが出るところを調べた結果、以下のように配置されているようでした。
設置位置
Major | Minor | 場所 |
---|---|---|
1017 | 10100 | 地下1階モノレール出口 案内所5の中 (検査場A/B側) |
1017 | 10200 | 地下1階モノレール出口 案内所6の中 (検査場C/D側) |
1017 | 20100 | 2階 案内所1付近 看板の中 |
1017 | 20200 | 2階 吹き抜けエスカレーター降りてすぐの出発案内の看板 (地下1階京急線出口付近でも受信できる) |
1017 | 20300 | 2階 案内所2/検査場D付近 看板の中 |
各箇所2個ずつ置かれているようで、出発案内(20200)はエスカレーターの左右にそれぞれ置かれている2台のモニターにそれぞれ、看板の中に入っているもの(20100/20300)は2本ある看板の中にそれぞれ1こずつ入っているようでした。
感覚的には、レンジングを捨ててビーコンの周囲5mから10mくらいのところでNearが出る感じになっているのではないかというところでした。
いずれも有人カウンターの中だったり、看板の中だったり、人の手が届かないところに置かれていて流石だなと思いました。
他の所でもiBeaconを実地運用されているものがあったら調べてみたいと思います。
※ 2015/08/31(Mon) 追記 : ご意見を元に一部情報を修正しました。