これまではNode.jsを使って、様々なデバイスとの連携を試みてきた。しかしWebエンジニアならば、Webブラウザーから直接デバイスにアクセスしたいところだ。そこで現在、Web標準化団体のW3Cで提案中のAPI「Web Bluetooth」に注目してみよう。

 Web Bluetoothは、Bluetooth Low Energy(BLE)を扱うAPIだ。最新版のMac、Linux、Android M向けの「Chrome」には、Web Bluetoothの多くの機能が実験的に実装されていて、試すことができる。

利用には三つの制約

 Web Bluetoothの利用に際しては主に三つの制約がある。一つめはChromeでWeb Bluetoothを利用する場合、アドレスバーに「chrome://flags」を入力して、フラグオプションの設定画面を開き、「試験運用版の拡張API」を有効にする必要があることだ。

 二つめはWeb Bluetoothが、SSL/TLS接続をするWebページでないと利用できないことだ。さらにWeb Bluetoothを通じて接続する場合は、「ボタンを押す」といったユーザーアクションが必要になる。「ユーザーがページを開いたら勝手にBLEデバイスにアクセスする」といった設定は出来ない。三つめはBLEデバイスを発見する際に、デバイス名やサービスUUIDなど何かしらのフィルター条件を必要とすることだ。

 以上の条件を満たした後に、Web Bluetoothを使ってデバイスを発見する作業を行う。デバイスが見つかると、ユーザーに対して発見されたBLEデバイスの一覧がポップアップする。ユーザーがその一覧からアクセスしたいデバイスを選択して初めて、該当のBLEデバイスに接続できる。

 BLEデバイスとのコネクションを確立したら、あとはBLEを通じて提供する「サービス」のUUIDと、サービスで利用する情報を格納する「キャラクタリスティック」のUUIDを使って、必要なサービスのキャラクタリスティックの値を呼び出したり書き込んだりする。また、Web BluetoothはNotificationsもサポートしているため、BLEデバイスに通知を依頼して、その通知を待ち受けることもできる。