无法连接到Raspberry Pi上的BLE设备

时间:2015-10-05 11:43:37

标签: bluetooth raspberry-pi bluetooth-lowenergy bluez

我正在尝试连接到Raspberry Pi 2上的BLE设备(心率传感器,Polar H7)。我使用的是上一版本的bluez(5.35):http://www.bluez.org/download/ 但是当我尝试使用public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 进行连接时,我总是遇到“连接拒绝”错误。

以下是我的工作:

gatttool

我尝试过关注此主题:BLE gatttool cannot connect even though device is discoverable with hcitool lescan 但它对我不起作用。

7 个答案:

答案 0 :(得分:20)

通过使用Bluetooth参数将Raspberry设置为Android,我能够通过LE address typerandom连接到-t random设备,即:

sudo gatttool -t random -b DD:9D:0B:43:A1:77 -I
connect

来自gatttool man

--t, ---addr-type=[public | random] 
# Set LE address type. Default: public
USAGE gatttool [OPTION...]

 Help Options:
     -h, --help                                  Show help options
     -h, --help                                  Show help options
     --help-all                                  Show all help options
     --help-gatt                                 Show all GATT commands
     --help-params                               Show  all  Primary  Services/Characteristics
   arguments
     --help-char-read-write                       Show  all  Characteristics Value/Descriptor
   Read/Write arguments

   Application Options:
     --i, ---adapter=hciX                        Specify local adapter interface
     --b, ---device=MAC                          Specify remote Bluetooth address
     --t, ---addr-type=[public | random]         Set LE address type. Default: public
     --m, ---mtu=MTU                             Specify the MTU size
     --p, ---psm=PSM                             Specify the PSM for GATT/ATT over BR/EDR
     --l, ---sec-level=[low | medium | high]     Set security level. Default: low
     --I, ---interactive                         Use interactive mode

答案 1 :(得分:2)

默认情况下,GATT未启用。将以下行添加到/etc/bluetooth/main.conf

EnableLE = true           // Enable Low Energy support. Default is false.
AttributeServer = true    // Enable the GATT attribute server. Default is false.

答案 2 :(得分:1)

通过apt-get更新/安装BlueZ,修复了运行raspbian buster的raspberry pi 3B中的连接被拒绝(111)问题

> sudo apt-get install --no-install-recommends bluetooth

然后重新运行

> sudo gatttool -t random -b E9:1C:89:B7:16:F9 -I

答案 3 :(得分:0)

我必须在pnat - >中停用插件/etc/bluetooth/main.conf DisablePlugins=pnat。我读到它不稳定,但我对这个插件了解不多。

答案 4 :(得分:0)

如果你仍然想知道为什么随机工作。我已经完成了代码,这就是我找到的。

​-t ​(Addr:Type: Set LE Address Type)     
Public | random    
Default: Public
     

随机或静态地址是48位随机生成的地址,应满足以下要求   要求:

     

•静态地址的两个最高有效位应等于'1'

     

•静态地址的随机部分的所有位不应等于'1'

     

•静态地址的随机部分的所有位不应等于'0'

Source

答案 5 :(得分:0)

我让它运行:

btmgmt le on

答案 6 :(得分:-1)

您可以尝试使用gatttool -b 00:22:D0:6D:E0:E6 -I,然后在发现MAC之后立即连接,而不是先连接hcitool lecc 00:22:D0:6D:E0:E6