過去数時間、HC-05 arduino bluetoothモジュールとUbuntuマシンをペアリングしようとしましたが、成功しませんでした。
次のコマンドを実行しました。
sdptool add --channel=1 SP
hcitool scan
Sudo rfcomm bind rfcomm0 <MAC address of the HCO5 module>
しかし、次のコマンドを発行して接続しようとすると:
Sudo rfcomm connect 0
エラーが表示されます:
Can't connect RFCOMM socket: Connection refused
/etc/bluetooth/rfcomm.conf
ファイルも次のように編集しました。
##RFCOMM構成ファイル。 #
rfcomm0 {
# # Automatically bind the device at startup
bind yes;
#
# # Bluetooth address of the device
device 20:14:02:17:17:38;
#
# # RFCOMM channel for the connection
channel 1;
#
# # Description of the connection
comment "Arduino Bluetooth module";
}
ただし、常にConnection refused
エラーが発生します。また、Bluetoothマネージャーアプレットのモジュールとペアリングを試みました。デフォルトのピンは1234
で、Android電話を介してBluetoothモジュールに正常に接続しました。しかし、ここではHC-05モジュールがUnknown
としてリストされているので、デフォルトのピンに接続しようとすると、Bluetoothマネージャーがランダムなピンを生成し、他のデバイスにそのピンを入力して明らかにできないペアリング要求。
rfcomm connect
を試しても、Android電話で行ったようにピンを打ち込むことができるペアリングリクエストウィンドウが表示されません。
ブログを読んで、BluetoothモジュールをLinuxマシンに接続できるので、簡単なものが欠けていると確信しています。どんな助けも大歓迎です。
あなたが説明したのと同じ問題がありました。Bluetoothアプレットがランダムなピンを生成し、HC-05に入るために接続が失敗したと言うだけです。このチュートリアルは私のために働いた:
raspberry Pi用ですが、ubuntuインスタンスでも同様に機能します。基本的に1234ピンを追加するように指示します
/var/lib/bluetooth/xx:xx:xx:xx:xx:xx/pincodes
ここで、xx:xx:xx:xx:xx:xxは、BluetoothドングルのMACアドレスです(HC-5ではありません)。 /var/lib/bluetooth/xx:xx:xx:xx:xx:xx
ディレクトリは、ドングルを差し込むと自動的に作成されるので、/var/lib/bluetooth/
の下に正しいディレクトリが1つだけあると思います。
少なくとも2つの異なる場所で管理することはかなりあります。
実際のHC-05には、MACアドレス、デフォルトのPIN番号(1234)、およびデフォルトのパブリックID(HC-05)があります。これらはセキュリティを向上させるために変更できますが、デフォルトを設定すると学習しやすくなります。これらを早期に変更する場合は、変更を記憶する必要があります。
Linux側では、これらのデフォルト(または最終的に変更するもの)を認識するようにソフトウェアをセットアップする必要があります
また、Linux側では、INITリストを変更してLinuxコンピューターを再起動するたびにデーモンを起動しない限り、使用するたびにBluetoothのデーモンを起動する必要があります。
さらに、/ dev/rfcomm0をチェックして、Bluetoothシリアルポートを使用するUnix権限を正確に持っている人を確認する必要があります。 ls -lでリストを見てください。通常のログインを特別なグループに割り当てる必要がある場合、rfcomm0はあなたを無視します。