LoginSignup
17
15

More than 5 years have passed since last update.

Raspberry Piでbluetoothシリアル通信

Last updated at Posted at 2018-07-17

RaspberryPiにbluetooth機器を接続してpythonで通信させようとしたけど,うまくいかなかった記録.
とりあえず動くまではいきましたが,まだ不安定な部分があるので日々加筆します.

環境

PC:aRaspberry Pi 3
OS:Ubuntu MATE 16.04

手順

参考1
参考2

デバイスのスキャン

まずはデバイスが認識されているかスキャンしておく

デバイス名の前についてるのはMACアドレス

scan
$ sudo hcitool scan
[sudo] password for pi:
Scanning ...
    00:07:80:3C:xx:xx   device1
    90:CD:B6:37:xx:xx   device2

一応確認のためping飛ばしとく

ping
$ sudo l2ping -c 2 00:07:80:3C:8E:F2
Ping: 00:07:80:3C:xx:xx from B8:27:EB:E3:yy:yy (data size 44) ...
4 bytes from 00:07:80:3C:xx:xx id 0 time 70.46ms
4 bytes from 00:07:80:3C:xx:xx id 1 time 64.60ms
2 sent, 2 received, 0% loss

シリアルポートにバインドする

/dev/rfcommX にバインドすることで,bluetoothで仮想シリアル通信できるようになる.

bind
$ sudo rfcomm bind 1 00:07:80:3C:xx:xx

番号は0から何番かまで使える.

自動設定する

rfcommは再起動すると設定が失われる.
そのため,再起動しても設定を継続したい場合はrfcomm.confを作成する必要がある.

/etc/bluetooth/rfcomm.conf
rfcomm0 {
        # Automatically bind the device at startup
        bind yes;

        # Bluetooth address of the device
        device 00:07:80:3C:xx:xx;

        # RFCOMM channel for the connection
        channel 1;

        # Description of the connection
        comment "IMU config";
}

この方法うまくいかなかったんで誰か教えてください

bluetoothctlからペアリング

bluetoothctlがない人はインストールしてください.

install
# $ sudo apt install bluez bluez-utils

#起動
$ bluetoothctl

対話モードで設定

config
# コントローラ起動
$ power on

#デバイスのMACアドレスを検索
$ devices

# デバイスがないときはスキャン
$ scan on

# ペアリング
$ pair [MAC]

これで接続できる.(はず)

17
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15