私はラズベリーパイ3(raspbian jessie)を持っており、パイでペアリングをスキャンして起動すると、現在携帯電話とペアリングできますbluetoothctl
。 2つの主な質問があります。
- そのデバイスが携帯電話のBluetoothデバイスリストに表示されません。
- 現在ペアリングするには、Piとの人間の相互作用が必要です。
hcitool
最初の質問は、私が広告しているものに関連している可能性があります。私は過去にパケットを設定し、iOS Bluetooth仕様で作業してきました。
2番目は私が主張することです。理想的には、携帯電話に固定PINを入力して接続することをお勧めします。ところで、この方法は時代に遅れてbluetooth-agent MY_PIN
動作しないという話を聞きました。 (コマンドが見つかりません。)ペアリング認証をオフにしたくありません。これは私の周りの誰もが接続できるからです。
使用できるより良いアプローチがありますか?そうでない場合は、PIN認証をどのように機能させるかについてのガイドラインを探しています。
答え1
私はしばらく(5ヶ月)同じ問題を抱えていたし、偶然発見しました。このページ昨日
最初のいくつかの説明は、PiでBluetooth PINを実装する方法を示しています。インストール後、それは私のために働いたこれ(PINを実装するためにいくつかのファイルを変更する前にこれをインストールしました。
デフォルトでは、手順は次のとおりです。
存在する/etc/apt/sources.list,「deb-src」で始まる行のコメントを外し,aとsudo apt-get update
aを実行します。cd /usr/src; sudo apt-get source bluez
ファイルで/usr/src/bluez-5.23/test/simple-agent
このセクションを変更してください。return ask("Enter PIN Code: ")
次のように入力します。return "1234"
ここで、1234は使用したいピンコードです。
その後、次のスクリプトを生成します。/usr/bin、btscript.shと呼びます。
#!/bin/sh
result=`ps aux | grep -i "simple-agent" | grep -v "grep" | wc -l`
if [ $result -ge 0 ]; then
sudo hciconfig hci0 piscan
sudo hciconfig hci0 sspmode 0
sudo /usr/bin/python /usr/src/bluez-5.23/test/simple-agent &
else
echo "BT Agent already started"
fi
ファイルの前に次の行を追加してsudo chmod +x
スクリプトを実行可能にします。exit 0
/etc/rc.local
/usr/bin/btscript.sh
その後、コンピュータを再起動してください。sudo reboot
PINを使用してPiに接続できる必要があります。
それでも前述したようにここ、iOSデバイスを使用してPiを見ることはできますが、一度だけ見ることができるので、デバイスでPiを忘れないようにしてください。そうしないと、Piに接続できなくなります。
この問題を解決するには、次のスクリプトを作成します。bt_iphone.shと入力して次のコードを入力してください。
#!/bin/sh
sudo hciconfig hci0 sspmode 1 # Activate SSP which is the current standard
# for bluetooth pairing, this will make the RPi discoverable again but
# with a passkey instead of a PIN code
echo -e 'power off\n quit ' | bluetoothctl # Make the RPi undiscoverable
sleep 5
echo -e 'power on\n quit ' | bluetoothctl # Make the RPi discoverable again
sleep 1
sudo hciconfig hci0 sspmode 0 # Deactivate SSP and activate PIN code authentication
exit 0
実行可能にし、sudo chmod +x bt_iphone.sh
crontabを使用して毎分このスクリプトを実行します。crontab -e
ファイルの末尾で、次の操作を行います。
* * * * * sudo bash /path/to/bt_iphone.sh
エレガントではありませんが、うまくいくようです。誰もが最後の問題に対するより良い解決策を持っている場合は、提案を受けることができます。
問題がまだ存在し(iDevicesのみ)、PINコードのタイムアウトが発生し、PINコード画面が表示されてから3秒以内にPINコードを入力して確認しないと接続できません。まだ解決策が見つかりませんでした。