【Beaconマニア - EP2】Beaconから送られるデータとは?(UUID編)
こんにちは、秋山です。
今回はiBeaconの仕組みについて書いていきたいと思います。
前回のEP1では、iBeaconに必要な2つの要素について記載したと思います。
前回のおさらいになりますが、
発信側のBeacon端末
Beacon端末からの受信に対応したスマートフォンアプリ
の2つが、iBeaconを用いたソリューションにとっては不可欠です。
このBeacon端末からアプリをインストールしたスマートフォンにどのようなデータを送信しているかというと、基本的には
UUID、Major値、Minor値の3つのみです。
各Beaconメーカーによって、独自のパラメータを一部送信する場合もありますが、原則としてはこの3つしかありません。
iBeaconが利用するBluetooth Low Energy(BLE)は、極わずかな電力で動く代わりに、通信できるデータ量が限られています。画像データや音声データ、位置情報等はBeacon端末から送られるものではないということをしっかりと理解するのが、Beaconを活用していく上でまず最初に知っておくべきポイントです。
さて、このUUID、Major値、Minor値ですが、これらはまとめてアドバタイズメント・パケットと呼ばれます。各Beaconを特定するための固有のID情報のことだと思って下さい。
これらのデータのフォーマットは、
UUID:128bitの値
Major値:16bitの符号なし整数
Minor値:16bitの符号なし整数
となっており、実際のデータは、
A1234B56-C7D8-901E-FAB2-34567C89DE0F , 11111 , 22222
というような形式になっています(UUID , Major値 , Minor値)。
このIDを示す3つのデータの中でも、特に重要な役割を果たすのが、UUIDです。これは重複や偶然の一致が起こりえない一意な識別子、簡単にいえば世界でひとつのものとなっています。Major値とMinor値が省略可能なのに対し、UUIDは必須項目です。
サービス面から考えたときに、このUUIDをどのように活用するかというと、
自分のサービスに該当するBeaconか否か
を判別するのに使用します。下記の図のようなイメージです。
スマートフォンが受信したUUIDを判定し、自社のBeacon(自分が設置したBeacon)と通信した場合だけ、レスポンスを返すようになっています(実際はアプリ内で判定せずにサーバーでUUIDを判別するケースも多いのですが、上記の図ではあくまでイメージとしてアプリで判定しているようになっています)。
これがなければ、単純に世の中のBeacon全てに反応するようなアプリになってしまいます。メーカー側で設定されたUUIDをそのまま使用しているサービスも多いようですが、自分が設置したBeaconだけに反応させたい場合は、サービス単位でUUIDを設定する方が確実です。
UUIDと共にID情報を構成するMajor値とMinor値についてですが、こちらは次回の記事で説明したいと思います。今回はBeaconが送信する3つの値(UUID、Major値、Minor値)の存在と、UUIDによって自分のサービスのBeaconかどうかを判別する、という2点について覚えて頂けたらと思います。
それでは次回更新のEP3をお待ち下さい。
ありがとうございました。
秋山