スマートフォンで使える無線通信としてWiFi、Bluetooth、NFCがあります。その中でもアプリでよく使われるのはBluetoothではないでしょうか。

この記事ではBluetoothの種類や使い方などについて解説します。

Bluetoothの種類

Bluetoothと一言で言ってもいくつかのバージョンがあります。まず大別すると2つになります。

  1. クラシック
  2. LE

この2つの規格には互換性はなく、現在はほぼすべてLEを対象として作られています。

クラシック

1.0〜3.0までをクラシックといい、古いBluetooth規格になります。Bluetooth 3.0系が2009年頃なので、すでに10年以上前の規格になります。

LE

LEはLow Energyの略で、4.0から登場した規格になります。現在は5.3が最新版で、iPhone 14からサポートしています。Androidで5.3をサポートしているのはOPPO A77くらいのようです(2023年03月現在)。

基本的にバージョンが上がる毎に消費電力効率が向上しています。つまり長時間音楽が聴けるようになっていたり、スマートウォッチなどのバッテリー消費量が下がるようになっています。

BluetoothとiBeaconの違い

Bluetoothとよく一緒に語られるのがビーコン(iBeaconなど)です。Bluetoothのデバイス探索機能を利用したのがiBeaconになります。アプリにあらかじめ登録されているID(UUID)を探索し、それが見つかったタイミングでイベント(通知を出す、画面にモーダルを出すなど)を起こすのがiBeaconの仕組みです。

UUIDはアプリの中にローカルデータとして保存しても良いですし、ネットワークを使って取得することもできます。

Bluetoothとの違いとしては、スマートフォンとiBeaconデバイスは接続しないということです。通常、Bluetoothデバイス(イヤフォンなど)はスマートフォンと無線接続することで利用できます。しかし、iBeaconで必要なのはUUIDだけなので、接続する必要はありません。

電池消費について

スマートフォンが出始めた頃のBluetoothはクラシックであり、Bluetoothをオンにしていると電池消費量が増えてしまいました。そのため、iBeaconを含めBluetoothをオフにしている人は相当多かったでしょう。

最近のBluetooth 5以降であればバッテリー消費量はごくわずかとなっています。iBeaconの探索モードが常時オンになっているのでなければ、普段の利用時にはオンにしていても問題ないでしょう。

通信距離について

Bluetooth機器同士が通信できる距離は「クラス」によって定義されています。クラス1は100m、クラス2は2.5m、クラス3は1m程度となっています。もちろん、この距離は途中にある障害物の有無や、障害物の素材などによって異なります。

このクラスは、他に同じBluetoothデバイスがあった際の混線にも強くなります。たとえばAirPodsはクラス1となっています。100m離れることはまずないと思いますが、それだけ強度の強い通信を行っていると言えます。

なお、Bluetoothは電子レンジと同じ2.5GHz帯を利用しています。そのため通信経路に電子レンジがあり、利用中はノイズが入ることがあります。

Bluetoothのセキュリティ

Bluetoothはとても手軽に利用できる半面、そのセキュリティリスクが常に注目されています。これまでにもBlueBorneやBlueFrag、Apple Bleeeなどといったセキュリティホールや脆弱性をついた攻撃が確認されています。

もちろん、こうしたセキュリティホールはすでに対応済みです。攻撃を防ぐためには、常にOSやデバイスをアップデートする必要があります。

MonacaアプリでBluetoothを扱う

Bluetoothを利用したアプリを作る場合は、Cordovaプラグインを利用しましょう。

  • https://github.com/randdusing/cordova-plugin-bluetoothle
  • https://github.com/don/cordova-plugin-ble-central

Bluetoothを使うことで、たとえば以下のようなアプリ開発ができるでしょう。多くの場合、Bluetoothデバイスに書き込む(送信する)よりも、センサーからデータを収集するものが多くなります。

  • 体重計・心拍計との通信
  • 温度計・湿度計などのセンサーとの連携
  • デジタルサイネージとの連携

Web Bluetooth APIについて

BluetoothをWebブラウザから扱うWeb Bluetooth APIがありますが、現時点ではiOS(Safari)ではサポートされていません。また、Appleは明確にWeb Bluetoothなどのデバイス系APIをSafariへ実装するのを拒否しているため、実現は難しそうです。

Bluetoothを使う際にはCordovaプラグインを使うのがお勧めです。

Apple declined to implement 16 Web APIs in Safari due to privacy concerns | ZDNET

まとめ

Bluetoothはイヤフォンやスマートウォッチなど、各種デバイスと連携するのに用いられています。また、身の回りのデバイスを見てもBluetoothが用意されているものは多いはずです。そうしたデバイスからデータを取り出したり、逆に書き込んでみるのは面白いです。

ぜひMonacaアプリでBluetoothを操作し、各種データを取り出してみてください。