スマートフォンで使える無線通信としてWiFi、Bluetooth、NFCがあります。その中でもアプリでよく使われるのはBluetoothではないでしょうか。
この記事ではBluetoothの種類や使い方などについて解説します。
Bluetoothの種類
Bluetoothと一言で言ってもいくつかのバージョンがあります。まず大別すると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を操作し、各種データを取り出してみてください。