【意外と便利?!】Bluetoothキーボードみたいにデータを送れるHOGP対応BLEモジュール
こんにちは。ムセンコネクト三浦です。
今日はHOGP機能を利用したLINBLEの試作機をご紹介します。
HOGP機能を利用したLINBLEとは?
今回作成した試作機は「HOGP対応LINBLE」です。
HOGPとはHID over GATT Profileの略で、BluetoothキーボードやBluetoothマウスで利用されるプロファイルのことです。
Bluetooth Classicの時代ではHIDという言葉でよく使われていましたが、Bluetooth Low Energyに限定するとHOGPという言葉で使われます。
※HID = Human Interface Device
HOGP、HIDについては、こちらの記事にも記載されています。
本来HOGPは、キーボードやマウスなどの入力機器とパソコンやタブレットを接続するための通信方式です。
図にすると下記のような使い方になります。
Bluetoothキーボードやマウスを利用したことがある人も多いと思いますのでイメージが付きやすいかもしれません。
専用のアプリをインストールする必要はなく、OSの「Bluetoothの設定」画面からマウスやキーボードを選択するだけで無線接続して、簡単に使い始めることが出来ます。
これをIoT機器がデータ通信する仕組みに利用すると下図のようになります。
予めパソコンの「Bluetoothの設定」画面から「HOGP対応LINBLE」を接続しておきます。(パソコンからするとBluetoothキーボードに接続したようなイメージになります。)
ホストマイコンはセンサから温度データを読み出し、読み出したセンサ値を文字列として今回の試作機「HOGP対応LINBLE」に送信します。すると、パソコン側ではあたかも自動的にキーボードが押されたかのようにセンサ値が表示されます。
HOGPって何が便利?
通常のLINBLE-Z1はLINBLE UART Serviceという独自のデータ通信の仕組みを利用していますが、これをHOGPに置き換えると、どのような効果があるのでしょうか?
ホストマイコンとしての手間はほとんど変わりません。通常のLINBLE-Z1に対して行うことと、ほとんど同じことを行えば良いだけです。
通常のLINBLE-Z1 | HOGP版LINBLE | |
---|---|---|
通信方式 | BLE (LINBLE UART Service) | BLE (HOGP) |
方向 | 双方向通信 | デバイスからパソコンへの片方向 |
通信速度 | 速い | 遅い |
専用のアプリ | 必要 | 不要 (メモ帳などの汎用アプリでデータを受信できる) |
BLE接続 | 専用のアプリで接続 | OSのBluetooth設定画面から接続 |
複数のOS種別対応 | 各OS向けに専用アプリを作る必要がある | 互換性があるので複数OSに対応できる |
通常のLINBLE-Z1を利用する場合、必ずパソコンやタブレットに専用のアプリをインストールする必要がありました。
(先の例でいうと「温度センサ受信アプリ」みたいなアプリを開発し、インストールしておく必要があります。)
HOGP版のLINBLEでは、専用のアプリが不要になります。温度センサデバイスはキーボードに見せかけてパソコンに接続し、センサ値が文字入力のように表示されるので、入力先のアプリはメモ帳でも、WordでもExcelでも何でも構いません。
専用のアプリが要らないというのは大きなメリットだと思います。
また、HOGPは互換性の高い規格なので、Windows、iPad、AndroidのそれぞれのOSで同じ様に動作することができます。
一方、LINBLE-Z1では双方向の通信が出来ますが、HOGP版LINBLEでは片方向の通信しか出来ません。データを文字として送るので、それほど多くのデータを送るのにも向いていません。
LINBLE Keyboardとの違いは?
「LINBLEをKeyboardのように使える・・・」といえば、ムセンコネクトではiOS向けにLINBLE Keyboardアプリをリリースしています。
こちらはiOS向けのキーボード着せ替えアプリです。LINBLE-Z1から受信したデータをキーボード入力に変換して、メモ帳などの他のアプリに文字入力ができるものです。
LINBLE Keyboardは通常のLINBLE-Z1と通信します。このときの通信方式はHOGPではなくLINBLE UART Serviceを利用しています。
「HOGP対応LINBLE」と同じ様な使い方ができて便利なのですが、LINBLE Keyboardアプリをインストールして、OSのキーボード設定を行う必要があります。
また、ムセンコネクトではiOS版のみ公開していますので、AndroidやWindowsには対応できません。
実際に試した動画を公開
実際に試してみた動画を公開します。
【デモ①】パソコンのターミナルソフトに入力したテキストをiPadのメモアプリに表示
左にiPadが置いてあります。
右にパソコンがあり、HOGP版LINBLEをUSBアダプタに載せて接続しています。予めTeraTermでCOMポートを開いています。
- iPad側ではBluetoothの設定画面を開いて、周囲のBluetoothデバイスをスキャンしています。
- HOGP版LINBLEに「BTAコマンド」を送りアドバタイズを開始させます。iPad側の周囲のBluetoothデバイスのリストに「LINBLE-HOGP」が表示されました。
- 「LINBLE-HOGP」をタップするとペアリングをするかどうか選択するメッセージが表示されました。「ペアリング」をタップします。
無事に「LINBLE-HOGP」とiPadが接続されました。 - iPadをメモ帳アプリに切り替えます。
- TeraTermからLINBLE-HOGPに「Test」「1234567890」と入力すると、iPadのメモ帳アプリに文字列が表示されました。
デモ② HOGPモジュールを使ったセンサデータのBLE転送
環境光センサの値をマイコンで取得し、HOGPモジュールを使ってBLE転送・iPhoneの標準メモアプリに入力しています。
まとめ
今回、HOGP版LINBLEを試作しました。
ちょっとしたセンサデータを送りたいだけというシーンは意外に多いので、そのような場合にはLINBLE-Z1を使うよりも手軽に利用できそうです。
LINBLEの本機能として実装するかどうかはまだ決定していませんが、興味がある方がいましたら、お問い合わせいただければ嬉しいです。
(2023年7月追記)
HOGP機能を搭載した「LINBLE-Z2」を発表しました。下の記事も是非御覧ください。