なんというか、本来期待されるべき方向ではない方向で期待され、「不当に」ガッカリされることが多いような印象を受けます。「ビーコンのバッテリーが意外ともたない」などなどなどなど。BLE」にフォーカスして書きたいと思います。」の8日目の記事となります。アドバタイズ専用デバイスiBeaconにおける「ビーコン」というのは、BLEの観点から簡単にいうと、「アドバタイズに特化したペリフェラル」です。*2通常のBLEペリフェラルデバイスの場合は、アドバタイズしてセントラルから見つけてもらい、そのあと接続し、データのやりとりを行うわけですが、ビーコンはそれらの機能をすっ飛ばして自分の存在を知らせる機能(アドバタイズ)だけに特化することで、シンプル、低コスト、低消費電力に振り切っている、というのが最大のポイントです。*3BLEガジェットは安いものでも5000円以上はする中で、ビーコンモジュールは安いものだと1台200円ほどだったり、寿命が数年間と謳われていたりするのは、このためです。)もちろんスイッチ等でon/offできるわけでもないので、これが届いた当初は「まじで!?」「回路を見られたくないのかな?」とか思ったのですが、今思えば、シリコンケース糊付け・・・安価な防水効果。設置して放置しておける電池交換ができない・・・ビーコンなので使い捨てでOKと上述したiBeaconの思想から考えると、大いに納得がいきます。シンプルに考えられることになります。電波を発する頻度が多くなるのでバッテリー消費は大きくなりますし、電波強度ももちろん強くすればより早くバッテリーを消費します。*6、電波強度を下げれば領域観測の範囲が狭まります。変更できるようになっているので、適用しようとしているサービスに応じてバッテリー消費とのトレードオフを考慮しながら適切に設定することが肝要です。ビーコンモジュールを販売している各社のページには、(バッテリーが)「約1年持ちます」「2年持ちます」等と書かれている場合がありますが、アドバタイズ周期や電波強度をどのように設定した上での話なのか、に注意する必要があります。iBeaconのアドバタイズメントパケットiBeaconのビーコン側の仕様は一般には公開されていない(要iBeaconライセンス取得)のですが、上述の通り要はBLEのペリフェラルなので、容易にそのアドバタイズメントパケットを観測できます。そのフォーマットに沿ってパケットを構成してアドバタイズを行えば、MacでもAndroidでもBLE113等の開発キットでもiBeaconのビーコンモジュールとしてふるまえますし、そのルールに従ってビーコンのアドバタイズメントパケットを解析すれば、iOSデバイス以外からもそのビーコンのUUIDやmajor,minorを取得可能(すなわち、領域観測と同じような挙動を実現可能)です。ある下記の図がわかりやすいです。長さと内容を決めることができます。アドバタイズメントパケットのフォーマットを定義しているわけです。抜き出すと、そのパケットフォーマットは次のようになっています。した部分以外のバイト値はiBeaconにおいて固定値です。アドバタイズメントパケットを監視してみると、上記のフォーマットに則っていることが確認できます。アドバンテージここまでで、iBeaconにおける「ビーコン」はBLEにおけるペリフェラルのサブセット仕様である、ということを書いてきました。BLEのペリフェラルになれるあらゆるBLEモジュールは、「ビーコン」になれます。使えば問題なく検出できる、ということになります。使用した方が、ペリフェラルのより詳細な情報を得られるというメリットさえあります。スキャンにはいくつかの制限があり、その一つにスキャン間隔が長くなる、というものがあります。行ってくれるようになります。ユーザビリティの観点からも、バッテリー消費の観点からも、非常にメリットの大きい機能です。あるアプリで観測している領域が検出された場合に、そのアプリのアイコンがロック画面の左下に表示されるようになりました。この状態でアイコンをドラッグして上方向にスライドすると、そのアプリが起動します。利用してバックグラウンドでペリフェラルを検出しても、iOSのロック画面に直接の動線を置く等ということはできないので、これもまたiBeaconならではの大きなアドバンテージといえます。ビーコン検出を観測する以外に、いろいろな検証手段の選択肢が増えてきます。し、パケットのフォーマットが正しいかを確認したり、等々。ビーコン本体のアドバタイズ周期が長すぎると検出されにくくなりますし、電波強度が弱く設定されていると電波が届いていない可能性も考えられます。おわりにiBeaconという領域観測サービスを実現するために、BLEがどのように用いられているのか、について書きました。放置して使い捨てにできる」などなど、iBeaconならではの特長も多くあります。アドバタイズや電波のことを理解してサービス設計やチューニングを行えば、つながりやすさやバッテリーの持ちに関しても改善が見込めます。Qiita*1:UUID・major・minor等のアドバタイズメントパケットの内容を動的に変更することでiBeaconと双方向通信的なものを実現することは可能ですが、やはり「そもそもBLEのサブセット仕様である」ということを考えるとそうした力技で双方向通信を行うことに意味はないかと。比較したメリット・デメリット2015年7月にGoogleから発表されたビーコン規格、Eddystone。(22)月別アーカイブリンクWishlist検索はてなブログをはじめよう!shu223さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。