raspberry piとcitizenをBluetoothで接続する方法
こんにちは。福井です。 Pythonでcitizenのプリンタをシリアル通信で操作するシステムを作ったのですが、 これをraspberry piに接続したいと思いまして… じゃあ、早速接続してみようとやってみたがあれ?… 繋がらい…
原因
シリアル通信を行うにはCOMポートとつなげなければいけないわけだが、 Bluetoothで繋げるには仮想COMにつなげなければいけないらしい。Windows で繋げたときは、Bluetoothを繋げただけで仮想COMに繋げてくれるらしいのだが Linux上だと自動では繋げてくれないらしい。
解決策
terminalを開いて、ペアリングを行う。この辺りはググったらいくらでも出てくるのであっさりいきます。
pi@raspberrypi:~ $ bluetoothctl
Bluetoothのaddressを探索
[bluetooth]# scan on
[bluetooth]# scan off
[bluetooth]# pair 〇〇:〇〇:〇〇:〇〇:〇〇:〇〇(address)
[bluetooth]# connect 〇〇:〇〇:〇〇:〇〇:〇〇:〇〇(address)
....
このような感じでBluetoothとペアリングを行う。次が肝である。シリアル通信の設定を行わなければならない。シリアル通信の設定というと非常に大雑把だが、まぁ、comポートを作るってことだと思う。多分…
pi@raspberrypi:~ $ sudo rfcomm bind 0 〇〇:〇〇:〇〇:〇〇:〇〇:〇〇
pi@raspberrypi:~ $ cat /dev/rfcomm0
これで完了。catコマンドは正しく動作しているか確認するためのものですね。sudo rfcomm0はcomポートにバインドするためのコマンドです。これで、comポートdev/rfcomm0にシリアルコマンドを送ってあげれば、シリアル通信ができますね。