生のシリアル端末をBluetooth接続に接続するにはどうすればよいですか?


10

Bluetoothドライバーを提供していないTotalstationに接続しようとしています。私は純粋に診断上の理由でこれを行っているので、確立されたシリアル接続からの生の出力を確認したいと思います。

Bluetooth接続からのすべての出力をターミナルにパイプするために何をしなければなりませんか?


Bluetooth->シリアル、シリアル-> Bluetooth、または双方向のどちらを実行していますか?
nanofarad 2013年

Totalstation Bluetooth <-> Ubuntu Bluetooth。トータルステーションがUSB経由の標準シリアル設定を持っていることを考えると、Bluetooth経由でシリアル接続を確立しているのではないかと思います。もちろん、私は完全に間違っている可能性があります。その時点で、私が間違っていて、BluetoothがXYZを使用しているという答えは完全に許容されます。
Brian Ballsun-Stanton 2013

双方向の証明に関しては、「画面」を介して空白のシリアル接続を確立できました。キーボードのキーを押すと、デバイスでエラービープ音が発生します。だから、私はそこに半分いるのではないかと思っています。
Brian Ballsun-Stanton 2013

簡単な図を作成できますか?シリアルオーバーなのかBluetoothオーバーシリアルなのか、誰がどこにデータを転送しているのか理解できません。GIMPなどで実行して、ここにアップロードしてください
nanofarad '29年

非常にうまく機能しますが、RFCOMMでいくつかの不具合に遭遇しました。SCREENで接続すると、一部のAT-Sequencesに自動的に「ATE1 E0」<RETURN>が3回入力されます。そのため、Raspi側に「Login failed」と表示されることがあります。その後、問題なくログインしてターミナルセッションを使用できます。
コーディ

回答:



12

1)hcitool scanデバイスのMacアドレスを見つけるために使用します。

デバイスは既知のピンでスレーブモードに設定する必要があります。既知のピンを使用しない場合、ubuntuがピンを構成し、通常、測定ツールの不格好なメニューに入力する時間がありません。

2)これが必要かどうかは完全にはわかりませんが、Bluetooth GUIメニューでデバイスをペアリングします。

3)/etc/bluetooth/rfcomm.conf

rfcomm0 {
        bind no;
        device 00:07:80:44:4F:37;
        channel 1;
        comment "Serial Port";
        }

「bind no」は重要です。それ以外の場合は、自動的にバインドしようとします。これにより、実際にデバイスにアクセスする際にあらゆる種類の問題が発生します(関連付けられている場合は非常にうるさいため)

4) sudo rfcomm connect 0

エラーが発生した場合は、bluetoothサービスを再起動してください。

5) screen /dev/rfcomm0

この方法で送信される実際のシリアルコマンドについては、ベンダーに問い合わせてください。


3
「rfcomm connect 0」を実行しようとすると「Missing dev parameter」が表示される
someonewithpc

confファイルを正しく編集しましたか?
Brian Ballsun-Stanton 2016

5
sudo rfcomm connect rfcomm0 00:07:80:44:4F:37
elopio

@elopiaのワンライナーは非常にシンプルです。それは私のために働いた
ptetteh227 2018年

10

これが私のarduinoに接続されたHC-05 Bluetoothデバイスに接続するための私の方法です。ブライアンの答えのようにファイルを書き込む必要はありませんが、考え方は似ています。HC-05デバイスのボー9600レート設定でテストしました。

最初のステップ:デバイスをペアリングしてPINを提供する

ペアリングをGUIからセットアップしようとしましたが、機能しませんでした。これは私のために働いたコマンドラインの方法です。まず、コマンドラインからデバイスをペアリングしましょう。実行:

sudo bluetoothctl

Bluetoothデバイスが起動していることを確認します。

# power on

ここで、「ピンを記憶する」エージェントを開始しますrfcomm

# agent on

次に、スキャンモードを有効にしてデバイスを見つけ、ペアリングできるようにします。

# scan on

数秒後、デバイスのMACが表示されます。後ほど表記します。次に、このようにデバイスをペアリングする必要があります:

# pair <MAC>

PINの入力を求められます。デフォルトで1234は、私のHC-05デバイスにあります。デバイスが接続してから、そのようなメッセージで切断する可能性があることに注意してください:

[CHG] Device 20:16:10:24:29:77 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 20:16:10:24:29:77 ServicesResolved: yes
[CHG] Device 20:16:10:24:29:77 Paired: yes
Pairing successful
[CHG] Device 20:16:10:24:29:77 ServicesResolved: no
[CHG] Device 20:16:10:24:29:77 Connected: no

しかし、それは問題ではありません。接続する必要がないため、とbluetoothctl入力して終了できますCtrl + D

使用可能なファイルを提供する /dev/rfcomm0

まず、以前にrfcommコマンドを実行していないことを確認してください。実際、Ctrl+Cプログラムを終了しても、バックグラウンドで実行されます。

sudo killall rfcomm

これで、実行できます

sudo rfcomm connect /dev/rfcomm0 20:16:10:24:29:77 1 &

rfcomの入力に書き込もうとしても、何も起こらないことに注意してください。別のプログラムを使用する必要があります。

3番目と最後のステップ:に書き込み /dev/rfcomm0

ファイルに書き込む方法はいくつかありますが、続行するにはすべてrootを使用することに注意してください。ここでは、それを実行できるいくつかのプログラムについて説明します(必要に応じて、またはシステムにインストールされているものなどに応じて選択できるようにします)。rootとしてプログラムを実行するのを忘れた場合、エラーが発生する可能性があります。

stty: /dev/rfcomm0: Device or resource busy

最初のオプション:を使用して接続する screen

画面は非常に強力なツールです。あなたはそれを使ってそれをインストールすることができます(それは常にもう便利です):

sudo apt-get install screen

そして実行する

sudo screen /dev/rfcomm0

rootで実行するのを忘れると、Aleksanderのようなエラーが発生します。

[screen is terminating]

終了するには、「(CTRL + A)+:quit」と入力します

2番目のオプション:接続を使用して minicom

インストールする

sudo apt-get install minicom

そして実行する

sudo minicom -D /dev/rfcomm0

rootで実行するのを忘れると、次のようなエラーが発生します。

minicom: cannot open /dev/rfcomm0: Device or resource busy

終了するには、「Ctrl + A X」と入力します。

3番目のオプション:Pythonスクリプトミニターム

このスクリプトをダウンロードし実行します。

chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0

ファイルに直接書き込む

まず、次のコマンドを実行します(9600はボーレートです)。

sudo stty -F /dev/rfcomm0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts 

これで、クラシックファイルのようにこのファイルに書き込むことができます。

sudo su -c "echo 'message' > /dev/rfcomm0"

理論的にはそれを使用してそれから読み取ります

sudo tail -f /dev/rfcomm0

しかし、あなたの誰かがアイデアを持っているなら、私は読書がうまくいかないことを知りません...


/def/rfcomm0する必要があります/dev/rfcomm0
stewSquared
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.