iBeacon is a technology that allows you to add real world context to smart phone applications. Based around Bluetooth LE, part of the new Bluetooth 4.0 standard, it’s a way to provide basic indoor navigation and iBeacon has been integrated into iOS 7 both inside the Core Location and the Passkit frameworks to enable indoor micro-location and geofencing.
However it isn’t about location, it’s about proximity. Your iPhone—or now even your Android phone—can now alert applications when you are approaching or leaving a location with an iBeacon. It can also report an estimate of your proximity to the iBe, but you should be aware that the closer you are to the beacon, the more accurate the estimate of proximity becomes.
しかしながら、それは位置についてではありません。周辺部についてです。あなたのiPhone--あるいは、Androidでさえも--iBeaconをダウンロードした状態である場所に近づいたり離れたりするときにはアプリケーションに警告を出すことが出来ます。また、iBeaconにどれだけ近いのかを算出したレポートを出すことも出来ます。しかし、iBeaconにより近づけば近づくほど周辺部の算出がより正確になっているということに気づくべきです。
It’s fairly simple to build your own iBeacon—either using a Raspberry Pi or using a Bluetooth LE board like the Red Bear Labs BLE Mini board—and there are some people taking advantage of that to turn a quick profit.
For instance Radius Networks is selling a “iBeacon Development Kit” which consists of a Raspberry Pi, a Bluetooth USB dongle, and an 8GB SD Card. Costing around $45 when bought separately at full retail price, they’re selling it bundled together for $100. That’s quite a markup, especially since they won’t be buying the components at retail, with very little added value over buying the parts separately and following fairly simple instructions to build your own.
例えば、Radius NetworksはRaspberry Pi,Bluetooth USB dongle、そして8ギガバイトのSDカードからなる「iBeacon 開発キット」を販売しています。それらを別々に買うと小売価格で45ドルかかりますが、このキットは100ドルでセットで売られています。これは値上げそのものです。何故ならば、小売でセットを買おうとせず、顧客はほとんどわずかにしか値上げされていないパーツを別々に買い、自分自身のiBeaconをつくりだすための非常に簡単な指示に従うからです。
The Estimote is built around the Nordic Semiconductor nRF51822, which explains their presence on the Nordic booth at CES. It’s a nice chip, basically a 32-bit ARM Cortex M0 CPU with 256KB of flash and 16KB of RAM with a built-in 2.4GHz radio supporting both Bluetooth LE as well as 2.4GHz operation—where the 2.4GHz mode is on air compatible with the nRF24L series products from Nordic.
The beacons are marketed as including both a temperature sensor and an accelerometer—although as we’ll see later on neither of these are advertised as part of the GATT, and aren’t accessible data packets, at least at the moment.
ビーコンは、温度センサーと加速度計を搭載しているとして販売されているが、後述するように少なくとも現時点ではGATTの一環として宣伝されておらず、アクセス可能なデータパケットではない。
nRF51822は優れたチップで、基本的に256KBのフラッシュメモリー、16KBのRAM を持つ32ビットのARM Cortex M0 CPUから構成され、Bluetooth LEと2.4GHzの無線運用に対応する2.4KHzラジオが組み込まれている。2.4GHzモードは、Nordic社nRF24Lシリーズと互換性がある。
Beaconは、温度センサーと加速度計を含めて販売されているが、センサーと加速度計はGATTの一部を構成していると宣伝されていなく、また、現時点ではパケット データを処理することはできない。
Using Sandeep‘s noble package for node.js we can look at what’s advertised by one of the beacons, using the advertisement discovery script included with the package.
An Estimote beacon—picked at random from our developer preview kit—with a Bluetooth Address of E7:44:89:31:ED:4E advertises a local name of “Estimote”, along with some service and manufacturer data. However it doesn’t seem to be advertise any service UUIDs.
Taking a closer look at the manufacture data then, the data advertised by the beacon was,
開発者向けプレビューキットでランダムに受信した、BluetoothアドレスがE7:44:89:31:ED:4EのEstimoteビーコンは、サービスとメーカー情報と合わせて、「Estimote」というローカル名を宣伝している。
ただし、サービスUUIDは宣伝していないようだ。 メーカー情報をつぶさに見てみると、ビーコンが宣伝しているデータは、(訳者注:原文がここで切れています)
MACアドレスE7:44:89:31:ED:4EのBluetoothを搭載した当社のdeveloper preview kitを使用して、無作為にBeaconの宣伝広告を見た結果、Estimote社の一台のBeaconは、“Estimote”社名と、数種のサービス、及び製造データを発信していた。
しかし、サービスUUIDに関しては全く宣伝していないように思われる。
製造データを詳しく見てみると、Beaconで宣伝しているデータは
First two bytes are the Apple Company Identifier (Little Endian) 0×0042.
The third byte—at least most likely—specifies the data type, which is 2.
The fourth byte specifies the remaining data length, 21 bytes.
Estimote Beacons have a fixed iBeacon UUID of B9407F30-F5F8-466E-AFF9-25556B57FE6D.
The next two bytes after the iBeacon UUID are the iBeacon Major (Big Endian), i.e. 0xED4E, 60750.
The next two bytes after the iBeacon Major are the iBeacon Minor (Big Endian), i.e. 0×8931, 35121.
The final byte is the measured RSSI at 1 meter away, i.e. 0xB6, -74.
3番目のバイトは、おそらくデータ型2を指定する。
4番目のバイトは、残りのデータ長21バイトを指定する。
Estimoteビーコンは、B9407F30-F5F8-466E-AFF9-25556B57FE6Dという固定iBeacon UUIDを持っている。
iBeacon UUIDに続く2バイトは、0xED4Eや60750のようなiBeaconメジャー(ビッグエンディアン)である。
iBeaconメジャーに続く2バイトは、0×8931や35121のようなiBeaconマイナー(ビッグエンディアン)である。
最後のバイトは、0xB6や-74のような1m先で測定されたRSSIである。
第3バイトは、九分通りデータ タイプを指定するバイトで、2である。
第4バイトは残りのデータ長を指定するバイトで、21バイトの長さである。
EstimmoteのBeaconは、B9407F30-F5F8-466E-AFF9-25556B57FE6Dの固定されたiBeaconのUUIDを使用している。
iBeacon UUIDを格納しているバイトに続く2バイトは、iBeacon Majorf(ビッグ エンディアン)用のバイトである。例:0xED4E、60750等。
iBeacon Majorを格納しているバイトに続く2バイトは、iBeacon Minor(ビッグ エンディアン)用バイトである。例:0x8931、35121等。
最後のバイトは、1メートル離れたところで測定されたRSSI(Received Signal Strength Indicator:受信信号強度インジケーター)である。例:0xB6、-74(dBm)等。
追記:
最後のRSSIの例ですが、0xB6が-74dBm(-74dB u ?)を示しているのかも知れません。