2016-06-29 26 views
2

Ich habe zwei Boards: Board 1: PixiePro läuft Arch Linux, Bluez 5.4 | Onboard Bluetooth Adapter Board 2: Raspberry Pi mit Raspbian, Bluez 5.39 | USB Bluetooth DongleWarum zeigen zwei verschiedene BLE-Adapter beim Scannen unterschiedliche Geräte an?

Bei der Verwendung von hcitool zum Scannen nach BLE-Geräten (iBeacon) auf Board 1, erhalte ich nur die Adresse eines einzelnen Geräts (Bild unten).

Ich habe mehr als 10 iBeacons, die der Adapter finden sollte. Ich habe die folgenden Techniken versucht:

starten hcitool lescan, das Entfernen von Duplikaten

sudo hcitool lescan --duplicates 

single BLE device detected on Board 1 (PixiePro)

starten hcitool lescan Prozess & Lesen von Daten aus hcidump

sudo hcitool lescan --duplicates 1>/dev/null & 
sudo hcidump --raw 

single BLE device detected on Board 1, <code>hcidump</code> output

Diese beiden zeigen nur eine oder zwei verschiedene Mac-Adressen. Es sollte mehrere verschiedene Mac-Adressen für die verschiedenen iBeacons in meiner Nähe geben.

Hier wird ausgegeben von Brett 2 einen USB-Bluetooth-Dongle für den Vergleich mit:

sudo hcitool lescan 

basic <code>hcitool lescan</code> in same physical location, from Board 2

Wie Sie sehen können, gibt es durchaus ein paar verschiedene Geräte, von denen einige sofort als Kontakt iBeacons. Hinweis: Die meisten Beacons um mich herum sind nicht Kontakt iBeacons

Gibt es eine Einstellung, die ich vermisse oder die ich bei der Verwendung von hcitool lescan aktivieren muss?

Antwort

1

Ich werde versuchen, Ihnen mit diesem zu helfen.

Es scheint, dass es etwas falsches gibt mit Ihrem PixiePro Gerät, aber Informationen, die Sie zur Verfügung gestellt haben, ist nicht genug, um das Problem zu diagnostizieren.

Es könnte ein Problem entweder mit dem Gerät selbst oder Bluez Stack sein, oder einfach, weil die Geräte außerhalb der Reichweite des PixiePro-Geräts liegen.

Um das Problem zu debuggen, können Sie versuchen, die folgendes zu tun:

  • Vor allem Check mac-Adressen, UUID, Haupt- und Nebenwerte von Ihre Geräte. Normalerweise finden Sie diese Informationen auf dem Web-Portal Ihres iBeacon-Anbieters;

  • Stellen Sie sicher, dass alle Geräte eingeschaltet und funktionsfähig sind. Der einfachste Weg ist zu überprüfen, ob sie von einem Mobiltelefon erkannt werden.Sie können free iOS oder Android Anwendung installieren. Sie sollten alle Ihre Geräte erkennen können. Überprüfen Sie auch die RSSI-Werte jedes iBeacon-Geräts. Bitte beachten Sie, dass die Werte variieren, obwohl sie sich vom Telefon zum iBeacon in der gleichen Entfernung befinden. Das Verhalten sollte jedoch, während Sie es weiter oder näher zum empfangenden Gerät bewegen, von der mobilen Anwendung eindeutig erkannt werden.

  • Sobald Sie 100% sicher sind, dass alle der IBeacon Geräte sind richtig funktioniert, sollten Sie in der Lage sein, die Mac-Adressen auf Ihre Bordgeräte zu erkennen. Um dies zu tun, würde ich empfehlen, die hcitool in das erste Terminalfenster und das hcidump Werkzeug in der zweiten ohne zusätzliche Parameter zu betreiben. Im Gegensatz zu den hcitool Befehl wird es auch geben die RSSI-Werte von erfassten Pakete wie folgt aus:

    HCI Event: LE Meta Event (0x3e) plen 42 
    LE Advertising Report 
    ADV_NONCONN_IND - Non connectable undirected advertising (3) 
    bdaddr 02:AB:26:D4:9A:EE (Public) 
    Flags: 0x1a 
    Unknown type 0xff with 25 bytes data 
    RSSI: -72 
    

Diese Werte werden Ihnen helfen, das Verhalten des Scannens auf verschiedenen Geräten zu vergleichen. NICHT erwarten, dass sie überall gleich sind, dies sind einfach relative Werte. Versuchen Sie nun, jedes Ihrer Geräte in die Nähe Ihrer empfangenden Platine (n) zu bringen, und Sie sollten seine Mac-Adresse in der Ausgabe des hcidump Tools sehen können.

  • In diesem Fall, wenn Sie Ihre IBeacon Geräte sehen nicht noch dann für sicher gibt es ein Problem irgendwo in Ihrem Brettern. Es könnte entweder Hardware oder Software sein. Dies ist, wo ich empfehlen würde:

    1. Installieren Sie den neuesten Firmware, die Fehler in dem BLE Stapel Implementierung beheben kann.
    2. Wenn dieser Ansatz nicht hilft - dann bedeutet es, dass das Problem irgendwo in der Hardware liegt und daher das einzige, was Sie tun können, ist Ihr Board-Gerät zu ersetzen.

Viel Glück!

Bei Fragen zögern Sie nicht zu fragen!