web-dev-qa-db-fra.com

Impossible de se connecter à un périphérique BLE sur Raspberry Pi

J'essaie de me connecter à un appareil BLE (capteur de fréquence cardiaque, Polar H7) sur un Raspberry Pi 2. J'utilise la dernière version de bluez (5.35) trouvée ici: http://www.bluez.org/ download/ Mais lorsque j'essaie de me connecter avec gatttool, j'ai toujours l'erreur "connexion refusée".

Voici ce que je fais:

pi@raspberrypi ~ $ Sudo su
root@raspberrypi:/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

root@raspberrypi:/home/pi# hciconfig dev up
root@raspberrypi:/home/pi# hcitool lescan
LE Scan ...
00:22:D0:6D:E0:E6 (unknown)
00:22:D0:6D:E0:E6 Polar H7 6DE0E61C
^Croot@raspberrypi:/home/pi# hcitool lecc 00:22:D0:6D:E0:E6
Connection handle 64
root@raspberrypi:/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]> 

J'ai essayé de suivre ce sujet: BLE gatttool ne peut pas se connecter même si le périphérique est détectable avec hcitool lescan mais cela n’a pas fonctionné pour moi.

10
palador

J'ai dû désactiver le plugin pnat dans /etc/bluetooth/main.conf -> DisablePlugins=pnat. J'ai lu que c'est instable, mais je ne connais pas grand chose à ce plugin.

0
Teepeemm

J'ai pu me connecter via Bluetooth à partir de Raspberry à mon appareil à l'aide de:

Sudo gatttool -t random -b DD:9D:0B:43:A1:77 -I
connect
18
Pedro Lobito

Par défaut, GATT n'est pas activé. Ajoutez les lignes ci-dessous à /etc/bluetooth/main.conf

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

Si vous vous demandez toujours pourquoi le hasard a fonctionné. J'ai parcouru le code et c'est ce que j'ai trouvé.

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

Une adresse aléatoire ou statique est une adresse générée aléatoirement sur 48 bits et doit répondre aux exigences suivantes:

• Les deux bits les plus significatifs de l’adresse statique doivent être égaux à «1»

• Tous les bits de la partie aléatoire de l’adresse statique ne doivent pas être égaux à «1»

• Tous les bits de la partie aléatoire de l’adresse statique ne doivent pas être égaux à «0»

( La source )

0
ArmCoder