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.
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.
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
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.
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 )