Ich versuche, eine Verbindung zu einem BLE-Gerät (Herzfrequenzsensor, Polar H7) auf einem Raspberry Pi 2 herzustellen. Ich verwende die letzte Version von bluez (5.35), die hier zu finden ist: http://www.bluez.org/ download/ Aber wenn ich versuche, eine Verbindung mit gatttool
herzustellen, wird immer der Fehler "Verbindung abgelehnt" angezeigt.
Folgendes mache ich:
[email protected] ~ $ Sudo su
[email protected]:/home/pi# hciconfig dev
hci0: Type: BR/EDR Bus: USB
BD Address: 5C:F3:70:69:54:3D ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:616 acl:0 sco:0 events:34 errors:0
TX bytes:380 acl:0 sco:0 commands:34 errors:0
[email protected]:/home/pi# hciconfig dev up
[email protected]:/home/pi# hcitool lescan
LE Scan ...
00:22:D0:6D:E0:E6 (unknown)
00:22:D0:6D:E0:E6 Polar H7 6DE0E61C
^[email protected]:/home/pi# hcitool lecc 00:22:D0:6D:E0:E6
Connection handle 64
[email protected]:/home/pi# gatttool -b 00:22:D0:6D:E0:E6 -I
[00:22:D0:6D:E0:E6][LE]> connect
Attempting to connect to 00:22:D0:6D:E0:E6
Error connect: Connection refused (111)
[00:22:D0:6D:E0:E6][LE]>
Ich habe versucht, diesem Thema zu folgen: BLE gatttool kann keine Verbindung herstellen, obwohl das Gerät mit hcitool lescan erkannt werden kann aber es hat bei mir nicht funktioniert.
Ich musste das Plugin pnat
in /etc/bluetooth/main.conf
-> DisablePlugins=pnat
deaktivieren. Ich habe gelesen, dass es instabil ist, aber ich weiß nicht viel über dieses Plugin.
Ich konnte über Bluetooth
eine Verbindung von Raspberry
zu meinem Gerät herstellen, indem ich Folgendes verwendete:
Sudo gatttool -t random -b DD:9D:0B:43:A1:77 -I
connect
Standardmäßig ist GATT nicht aktiviert. Fügen Sie die folgenden Zeilen zu /etc/bluetooth/main.conf hinzu
EnableLE = true // Enable Low Energy support. Default is false.
AttributeServer = true // Enable the GATT attribute server. Default is false.
Das Problem mit der Verbindungsverweigerung (111) in meinem Raspberry Pi 3B, auf dem der Raspbian Buster läuft, wurde behoben, indem BlueZ über apt-get aktualisiert/installiert wurde
> Sudo apt-get install --no-install-recommends bluetooth
und wieder laufen
> Sudo gatttool -t random -b E9:1C:89:B7:16:F9 -I
Wenn Sie sich immer noch fragen, warum der Zufall funktioniert hat. Ich habe den Code durchgesehen und das gefunden.
-t (Addr:Type: Set LE Address Type) Public | random Default: Public
Eine zufällige oder statische Adresse ist eine zufällig generierte 48-Bit-Adresse und muss die folgenden Anforderungen erfüllen:
• Die beiden höchstwertigen Bits der statischen Adresse müssen gleich "1" sein.
• Alle Bits des zufälligen Teils der statischen Adresse dürfen nicht gleich "1" sein.
• Alle Bits des zufälligen Teils der statischen Adresse dürfen nicht gleich "0" sein.
( Quelle )