Mittwoch, Januar 22, 2020

Kann keine Verbindung zu BLE Gerät auf Raspberry Pi

Ich versuche, eine Verbindung zu einem BLE-Gerät (Herzfrequenz-sensor Polar H7), die auf einen Raspberry Pi 2. Ich benutze die Letzte version von bluez (5.35) finden Sie hier: http://www.bluez.org/download/
Aber wenn ich versuche zu verbinden mit gatttool, ich habe immer „Verbindung verweigert“ – Fehler.

Hier ist was ich tun :

[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, Folgen diesem Thema: BLE gatttool kann nicht verbinden obwohl das Gerät ist sichtbar mit hcitool lescan
aber es hat nicht funktioniert für mich.

  • Wenn Sie Bluez, warum man nicht einfach bluetoothctl?
  • Ich ging durch und bearbeitet Ihre post. Es ist viel einfacher zu suchen und den text Lesen, der nicht in einem Bild. Auch, auf, SO dass wir nicht Bearbeiten, eine Lösung in der Frage. Anstatt, wir posten Sie als Antwort, so dass der ursprüngliche Fragesteller (du) überprüfen Sie die box, dass dies Ihre Frage beantwortet.
InformationsquelleAutor palador | 2015-10-05

5 Kommentare

  1. 0

    Musste ich deaktivieren, das plugin pnat im /etc/bluetooth/main.conf -> DisablePlugins=pnat. Ich habe gelesen, dass es instabil ist, aber ich weiß nicht viel über dieses plugin.

  2. 21

    War ich in der Lage, eine Verbindung über Bluetooth aus Raspberry zu meinem Android Gerät durch Einstellung der LE address type zu random mit der -t random argument, d.h. :

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

    Vom gatttool Mann

    --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
    
    • Das ist eine Arbeit… aber warum? Können Sie das noch näher erläutern?
    • -t random ist die Magie. Das problem scheint zu sein, im Zusammenhang mit der LE address type sind, muss festgelegt werden, um random mit -t random. manpages.ubuntu.com/manpages/cosmic/man1/gatttool.1.html
  3. 2

    Standardmäßig GATT nicht aktivieren. Fügen Sie die folgenden Zeilen zu /etc/bluetooth/main.conf

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

    Wenn Sie immer noch Fragen, warum die zufällige gearbeitet. Ich habe gegangen durch den code, und das was ich gefunden habe.

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

    Zufällige oder statische Adresse ist eine 48-bit-zufällig generierte Adresse und genügt der folgenden
    Anforderungen:

    • Die zwei signifikantesten bits des statischen Adresse ist gleich ‚1‘

    • Alle bits der zufälligen Teil der statischen Adresse wird nicht gleich ‚1‘

    • Alle bits der zufälligen Teil der statischen Adresse ist nicht gleich ‚0‘

    (Quelle)

    • Einen link als Kommentar auf meine Antwort wäre besser geeignet, als das erstellen einer neuen Antwort.
  5. -1

    Könnten Sie versuchen, zu verwenden gatttool -b 00:22:D0:6D:E0:E6 -I und dann verbinden, kurz nach der Entdeckung der MAC ohne die Verbindung vorher mit hcitool lecc 00:22:D0:6D:E0:E6

Kostenlose Online-Tests