Problem
IntelのNUC DN2820FYKHには内蔵のBluetoothが付属してます。
こいつを使えるようにしてみましょう。
Preparation
といっても、RHEL 7.3には最初からbluetoothのプロトコルスタックBlueZがインストールされていました。
インストールされているかどうかは
1 | bluetoothctl |
でわかります。
インストールされていないなら、
1 | sudo yum install bluez |
でインストールできます。
次に下記のコマンドを叩きます。
1 | sudo hciconfig up |
ここで、DOWNと出ている場合は、本体のbluetoothが準備できていないので、
1 | sudo hciconfig hci0 up |
と叩きます。
これにより
1 | sudo hciconfig up |
UP RUNNINGに変化しました。
続いて、接続したいbluetoothデバイスを待機状態にし、下記のコマンドを叩きます。
1 | sudo hcitool lescan |
待機状態のデバイスが認識されました。
Ctrl+Cでスキャンを解除できます。
Try
続いて、デバイスに接続を行います。
1 | sudo gatttool -b 54:6C:0E:79:1A:87 --interactive |
入力モードに切り替わるので、
1 | [54:6C:0E:79:1A:87][LE]> connect |
とします。
ここで、
1 | Error: connect error: Connection refused (111) |
が出力された場合、デバイスの待機状態や電源が切れていますので、接続からやり直します。
接続が完了しましたら、実際にデータを送信してみます。
下記は、私が接続したデバイスから、計測した温度を取得するコマンドです。
1 | [54:6C:0E:79:1A:87][LE]> char-write-cmd 0x24 01 |
最初が、温度の計測を有効にし、次が温度を実際に取得するコマンドになります。
ここのコマンドは一例ですので、必要に怖じてデバイスのマニュアルを読む必要があります。