Raspberry Pi Zero WでBluetooth経由でシリアル通信(シリアル接続)続報
- 2018/02/04
- 11:16
Raspberry Pi Zero WでBluetooth経由でシリアル通信(シリアル接続)続報
RoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。
以前、Raspberry Pi Zero WでBluetooth経由でシリアル通信しようということでMacとペアイングするところまではうまくいっていたが、その後どうにもうまくいかない話を書きました。
以前の投稿
ペアリングまで
Raspberry Pi側のBluetoothとシリアルポート登録まで
その後、色々試してうまくいくようになりました。
とりあえず原因ですが、私の持っているMacが古いというのが原因です。
正確には私のMacbook early 2009のBluetoothは2.1でRaspberry Pi Zero Wは4.1 BLEということで、ペアリングまではできるものの、シリアル通信まではできなかったようです。
古いMacbook early 2009でBluetooth 4.X BLEを使う方法は先日の投稿を参照してください。
さてペアリングとRaspberry Pi側のBluetoothの設定は全く同じです。
もう一度、シリアルポートの登録から始めたいと思います。
シリアルポートが登録されているか確認。
pi@raspberrypi:~ $ sudo sdptool browse local | grep -i serial
pi@raspberrypi:~ $
これだけならまだ登録されていないのでシリアルポートを登録。
今回は特に指定していないのでチャンネルは1になります。
pi@raspberrypi:~ $ sudo sdptool add SP
Serial Port service registered
もう一度確認
pi@raspberrypi:~ $ sudo sdptool browse local | grep -i serial
Service Name: Serial Port
"Serial Port" (0x1101)
"Serial Port" (0x1101)
シリアルポートが登録できていることが確認できました。
rfcommセットアップ
以下でrfcommをlistenにする。
pi@raspberrypi:~ $ sudo rfcomm listen /dev/rfcomm0 1
Waiting for connection on channel 1
Rapberry Pi→Macで送受信
Mac側
まずはポートの確認
Jenny-Mac:~ takao$ ls -l /dev/tty.*
crw-rw-rw- 1 root wheel 17, 0 2 4 09:06 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 17, 2 2 4 09:06 /dev/tty.raspberrypi-SerialPort
二つ目がRaspberry Piです。
screenで接続
Jenny-Mac:~ takao$ screen /dev/tty.raspberrypi-SerialPort
Raspberry Pi側で
Connention from XX:XX:XX:XX:XX:XX to /dev/rfcomm0
Press CTRL-C for hangup
と出て、Mac側でも接続済みになります。

Raspberry Pi側でもう一つターミナルを開いて
pi@raspberrypi:~ $ sudo echo ”hello” > /dev/rfcomm0
これでMac側のターミナルにhelloと出ればOK
Mac→Radpberry Piで送受信
Radpberry Piでcatする。
pi@raspberrypi:~ $ sudo cat /dev/rfcomm0
Mac側のscreenで文字を打ち込めば、Raspberry Pi側で表示されればOK

pi@raspberrypi:~ $ sudo cat /dev/rfcomm0
robotakao mac -> raspberry pi
だいぶ試行錯誤しましたがなんとかここまで出来ました。
それでは今回はこの辺で失礼します!ありがとうございます。
スポンサードリンク