web-dev-qa-db-ja.com

デバイスがhcitoollescanで検出可能であっても、BLEgatttoolが接続できません

USBBluetoothドングルでRPiを実行しています。 hcitoolを使用すると、SmartTagデバイスを見つけることができます。しかし、gatttoolを使用すると、接続できません。 「ホストがダウンしています(112)」と表示されます。これが私のコマンドです:

$ Sudo hcitool lescan
LE Scan ...
BC:6A:29:AB:DE:2B (unknown)
BC:6A:29:AB:DE:2B SensorTag

RPiでBluetoothアダプターをチェックしています。

$ hcitool dev
Devices:
        hci0    5C:F3:70:60:E6:1B

次に、このようにgatttoolを使用すると、次のようになります。

$ Sudo gatttool -i hci0 -b BC:6A:29:AB:DE:2B -I
[   ][BC:6A:29:AB:DE:2B][LE]>

Connectと入力すると、次のようになります。

[   ][BC:6A:29:AB:DE:2B][LE]> connect
Connecting... connect error: Host is down (112)
[   ][BC:6A:29:AB:DE:2B][LE]>

「ホストがダウンしている」という情報は、Bluetoothセンサーが検出可能モードになっていないことを意味します。しかし、これはSmartTagに関する限り正しくありません。これは、TIがセンサーの1つのボタン(サイドボタン)を押して検出可能にするためにプッシュするように指示しているためです。そして、同じものがhcitoollescanによってデバイスを見つけるために使用されます。また、Androidアプリが携帯電話から実行され、同じボタンが押されたときにSmartTagセンサーをスキャン、接続、および読み取ります。

誰かが問題が何であるか知っていますか?前もって感謝します

10
user3788217

私は同じ問題を抱えていました、この方法は私のために働きました:

USBモジュールを取り外し、RPiを再起動します。

Sudo shutdown -r now

編集:編集したい場合があります/ etc/apt/sources.list以下にリストされているライブラリを正常にインストールするため。

nano /etc/apt/sources.list

deb http://archive.raspbian.org/raspbian wheezy main contrib non-free
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free

そうしないと、次のエラーに遭遇する可能性があります

checking for GLIB... no
configure: error: GLib >= 2.28 is required

変更を有効にするために、更新することを忘れないでください。

Sudo apt-get update

Bluezインストールを削除し、更新を実行します。

Sudo apt-get --purge remove bluez
Sudo apt-get update

/etc/apt/sources.listを編集して、必要なライブラリをインストールできるようにすることができます。

必要なライブラリがあることを確認してください。

Sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev

最新のBluezバージョン(5.21の時点)をダウンロードして抽出します。

Sudo wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.21.tar.xz
Sudo tar xvf bluez-5.21.tar.xz

Bluezフォルダーに移動し、構成してインストールします(Sudo make行の処理には時間がかかります)。

cd bluez-5.21
Sudo ./configure --disable-systemd
Sudo make
Sudo make install

RPiをオフにして、Bluetoothドングルを接続できるようにします。もう一度オンにします。

Sudo shutdown -h now

USBドングルの電源を入れる必要がある場合があります。

Sudo hciconfig hci0 up

その後、LESCANを再試行できます。

Sudo hcitool lescan

そして、それが適切に機能したと仮定すると、あなたは常に接続することになります:

Sudo hcitool lecc BC:6A:29:AB:DE:2B
Sudo gatttool -b BC:6A:29:AB:DE:2B --interactive

[   ][BC:6A:29:AB:DE:2B][LE]> connect
[CON][BC:6A:29:AB:DE:2B][LE]>

接続された「[CON]」行が表示されるまでに時間がかかる場合は、センサータグのサイドボタンを押して、再度表示されるようにしてください。


これは、次の2つのリンクからの情報の組み合わせでした。

http://mike.saunby.net/2013/04/raspberry-pi-and-ti-cc2541-sensortag.htmlhttps://learn.adafruit.com/pibeacon- ibeacon-with-a-raspberry-pi/settings-up-the-pi

14
kha