以前にWebシリアルAPIとUSBシリアルI2C変換基板を用いてI2Cデバイスをブラウザから制御して、取得したデータからChart.jsで可視化するデモツールを紹介しました。今回はBLE5モジュール変換基板、BLE5モジュール変換基板V2とブラウザを介してシリアル通信できるツールを紹介したいと思います。BLE5モジュール変換基板、BLE5モジュール変換基板V2はWireless Xpressファームウェアが実装されているため、簡単にスマートフォン等と通信することが可能です。スマートフォン向けにはBGX Commanderアプリ(iOS/Android)が提供されています。
一方、PC版は提供されていないため、今回はWeb Bluetooth APIを用いて、ブラウザを介してシリアル通信できるツールを実装してみました。ツールはこちらから利用できます。
Web Bluetooth APIの制約で事前にOS側の設定画面でBluetoothデバイス追加が必要です。追加後、接続ボタンを押すと検出されたBLE5モジュール変換基板もしくはBLE5モジュール変換基板V2が表示されます。接続後は双方向に文字列を送ることが可能です。今回はモジュールをUSBシリアルに接続してテストしてみました。ブラウザから文字列を送信したり、逆にTeratermからUARTに文字列を送信して、ブラウザに文字列が表示されることを確認しました。デフォルトはシリアル通信を双方向に行うためのストリームモードとなっていますが、モードをコマンドモードに設定することでBLEモジュールの設定を遠隔で行うことも可能です。
実際にはBLE5モジュール変換基板をマイコン等に接続し、BLE5モジュールとペアリングしたPCのブラウザから遠隔でデバッグして使用します。Web Bluetooth APIの制約でOS側で事前にBluetoothデバイスの追加しない場合、データ書き込み時にGATT Error: Not pairedの例外エラーが発生します。事前のデバイス追加が必要なものの、ブラウザから簡単にBLEデバイスと通信することができるのは非常に便利だと思いました。なお、WebシリアルBLEツールのjsコードやcss含めてすべてhtml内に記述しているため、本ツールにアクセスして右クリックで「ページのソース表示」でソースを確認することができます。今後は他にも応用的な機能を実装したいと思います。