“組み込み技術シリーズ”
BLEビーコンセンサーを使ったセンシング その1

  1. HOME
  2. エンジニアのつぶやき
  3. “組み込み技術シリーズ”
    BLEビーコンセンサーを使ったセンシング その1

こんにちは。レスターエンベデッドソリューションズ テクノロジーデザイン本部 技術部 開発課です。

今回、弊社が提供しているIoTプラットフォームのIoTstarterKITで、BLEビーコンを使用したセンサーからのデータ取集にトライします。
それにともないBLEビーコン受信機能追加について数回にわたり記事に纏めたいと思います。

“組み込み技術シリーズ”の目次

第一回:BLEビーコン通信について
第二回:BLEビーコン受信プログラムについて
第三回:BLEビーコンセンサーを用いたデモアプリケーション

今回は「第一回:BLEビーコン通信について」記載したいと思います。

BLEビーコンとは?

ビーコン( Beacon)とは、無線発信機能により特定の範囲内にいる不特定多数のデバイスに対して情報を送信する技術です。
BLEビーコンはBluetooth Low Energy(BLE)の技術を利用して定期的に信号を発信し、近くにある受信機(スマートフォンやタブレットなど)がその信号を受信することで、位置情報やその他のデータを提供しています。

BLEビーコンの使用例として博物館での展示物のガイダンスなどがあります。
展示物ごとにビーコンを発信するモジュールを置いておき、来訪者が展示物の近くに来た際にビーコンのデータをスマートフォンの専用アプリで受信すると、クラウドから取得したその展示物の情報がスマートフォンに表示されたり、音声ガイダンスを受ける事が出来るシステムです。

BLEビーコンの通信(アドバタイジングパケット)

BLEビーコンは、BLEのアドバタイジングパケットと呼ばれるをデータを用いて行われてます。
主に一方向の通信で、定期的にアドバタイジングパケットをブロードキャストすることで、近くのデバイスに情報を提供しています。
ブロードキャスト方式でデータを送信していることこから、BLEビーコンはペアリング無しで動作いたします。

アドバタイジングパケットの構成について

アドバタイジングパケット送信時に使用するAdvertising Channel PDU(Protocol Data Unit)の構成について説明します。

(1) Advertising Channel PDUの構成について

  • Access Addressの値
    Advertising Channel PDUでは0x8E89BED6の固定値です。
  • PDU Headerの構成
    PDU Headerの構成は以下となっています。

BLEビーコンで使用されるPDU Typeは通常「ADV_NONCONN_IND (0x02) 」が使われおり、以下は主なPDU Typeの内容で、他にもいくつかあります。

  • PDU Payloadの構成
    PDU PayloadはAdvAAdvDataの構成となっています。

(2) AdvDataの構成

AdvDataには複数のAD Structureがあり、AD Structureは“Length”・“AD Type”・“AD Data”で構成されています。

  • Lengthとは
    Data(AD Tyep+AD Data)の長さを示します。
  • AD Typeの種類
    データ(AD Data)の種類を示します。主なAD Typeには以下のようなものがあり、他にもいくつかあります。
    BLEビーコンではAD TypeがService Data(0x16)もしくはManufacturer Specific Data(0xFF)がよく使われており、今回IoTstarterKITでは受信したアドバタイジングパケットからそれらのデータの判定を行おうと考えております。
  • AD Dateの内容
    AD Typeによって内容がことなります。例えば、GoogleのEddystoneビーコンはAD Type 0x16を使用して、URLやTLMデータなどのサービスデータを送信しています。またAppleのiBeaconでは、AD Type 0xFFを使用してデータを送信しています。

    Service Data(0x16)
    最初の2octetは16bit長のUUIDとなっており、それ以降はサービス固有のデータとなっています。

    Manufacturer Specific Data (0xFF)
    最初の2octetはBluetooth SIGが企業に発行した識別子となっており、それ以降は企業が任意に定義したデータになっています。(例えばiBeaconの場合は最初にAppleを示す0x004Cとなっており、その後は128bit長のUUID、Major、Minor、Tx Powerとなっています。)

さいごに

今回はBLEビーコンセンサーを使用するにあたり、BLEの通信規格について記載してみました。次回は実際にIoTstarterKITでBLEビーコンセンサーのデータを受信するプログラムについて記載します。

関連製品

参考文献

  • 堤修一x松村礼央.「iOSxBLE Cpre Blurtooth プログラミング」.ソシム株式会社,2015

更新履歴

2024.12.23 新規作成