GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでBluetoothシリアルポートに接続してデータを送信する方法は?

LinuxのUSB-Bluetoothアダプターを介して仮想シリアルポートをセットアップし、Androidデバイスを介してメッセージを送信しようとしています。私はカーネル3.6を使用しています。 gnome-bluetoothを使用してデバイスと正常にペアリングでき、ファイルをデバイスに送信することもできます。

シリアルポートを設定するには、最初にSPプロファイルのチャネルをアダプタに追加します。

sdptool add --channel=22 SP

次に、rfcommで「リッスン」と呼びます:

rfcomm listen /dev/rfcomm0 22

どのブロックをオンにするか

Waiting for connection on channel 22

どうやらrfcommは接続が成功すると/dev/rfcomm0を作成します。それが起こったら、cutecomのようなものを使用して、接続されたデバイスとの間でメッセージを送受信したいと思います。

私のAndroidデバイスで、Bluetooth SPP端末を開いて(いくつかありますが、いくつかの異なるものを試しました)、接続を試みます。それらはすべて失敗します。

正常にペアリングしてファイルを問題なく送信できることを考えると、Bluetoothのペアリングと通信が機能することはわかっています。

他に何ができるかわかりません。ローカルデバイスとAndroidデバイスで「sdptoolbrowse」を使用して、RFCOMMチャネルの競合が発生しないようにしました。

承認された回答:

私は今これが機能しているようです。 Bluetoothは少し厄介なようです。他の誰かがそれが役に立つと思った場合に備えて、私は自分のステップを完全に要約しています(それは私が最初に試したこととほぼ同じですが)。これは、Nexus4およびArchLinux3.6.7-1上のAndroidJB(4.2.2)、Gnome3.6上のbluez4.101(gnome-bluetooth付き)用です。

(この手順では何の役にも立たない場合があります) AndroidのBluetoothをオフにして、LinuxマシンからUSB / Bluetoothアダプターを切断します(または、組み込みのアダプターがある場合は、hcitool devname resetを使用してリセットします)

LinuxでBluetoothアダプターを接続/オンにします。アダプターが表示されていることを確認します(gnome-bluetoothで設定できます。Bluetoothシステムトレイアイコンが表示されます)。

AndroidデバイスでBluetoothをオンにします。 Androidを使用してアダプターとペアリングします(Linuxとは逆にペアリングできませんでした)。キーを要求するダイアログが表示されます。必要なPINを入力します。 Gnomeは、キーを要求する通知をポップアップする必要があります。前に入力したのと同じPINを入力します。この時点で、Androidデバイスとキーをペアリングする必要があります。

Linuxでは、ターミナルを開き、「

」と入力して、利用可能なBluetoothサービスを確認します。
sdptool browse local

すでにシリアルポートサービスを利用している場合は、それがどのチャネルであるかをメモしてください。そうでない場合は、サービスを追加できます:

sdptool add --channel=22 SP

次に、rfcommを使用してこのチャンネルを聴きます:

sudo rfcomm listen /dev/rfcomm0 22

rfcommはブロックし、

のようなメッセージで接続をリッスンします
Waiting for connection on channel 22

Androidに戻ると、BlueTermアプリケーション(http://pymasde.es/blueterm/、Google Playストアでも無料で入手可能)を使用しましたが、同様のアプリケーションは機能するはずです。 BlueTermを開き、[オプション]> [デバイスの接続:ペアリングされたアダプターを選択]に移動します。

関連:Freebsd –コンソールモードでFreeBSDを起動する方法は?

うまくいけば、アプリケーションは接続できました。次のようなメッセージでリスニングをブロックしたターミナルで追加の確認が表示されます:

Waiting for connection on channel 22
Connection from 22:22:22:22:22:22 to /dev/rfcomm0
Press CTRL-C for hangup

BlueTermアプリに入力するものはすべて、/ dev/rfcomm0に移動する必要があります。新しい端末を開いて次のような操作を行うと、入力時に内容が表示されるのを確認できます。

cat /dev/rfcomm0

Linux
  1. シリアルポートにデータを送信して回答を確認するにはどうすればよいですか?

  2. Linux – Raspberrypiシリアルポート?

  3. Linux のシリアル ポートでデータを監視するにはどうすればよいですか?

  1. Linux –シリアルポートを使用してプロセスを見つける方法は?

  2. DAEMON Sync –LinuxからAndroidおよびiOSデバイスへのデータの同期

  3. Linux から添付ファイルと本文を含むメールを送信する方法

  1. Cでシリアルポートを開き、読み書きする方法は?

  2. Linux シリアルポートのリスナーとインタープリター?

  3. Linux の C でのシリアル ポートへの読み取りと書き込み