Abo
  • Services:
Anzeige
Raspberry Pi mit Bluetooth-Dongle und Breadboard
Raspberry Pi mit Bluetooth-Dongle und Breadboard (Bild: Golem.de)

Erste Versuche

Anzeige

Das Henne-Ei-Problem: Wer einen Sender und Empfänger für irgendetwas implementieren will, müsste eigentlich beides zur gleichen Zeit programmieren - und riskiert etwas zu bauen, das auch nur in dieser Kombination funktioniert, nicht aber mit anderen Programmen.

Deswegen verwenden wir erst einmal existierende Hardware und Programme, um später beides durch eigene Entwicklungen zu ersetzen. Auch wer nur etwas über seine eigenen Bluetooth-Geräte lernen will, ohne gleich selbst zu programmieren, wird in diesem Abschnitt fündig.

Die Hardware, die wir anschauen wollen, ist das Alcatel Smartband. Mit der dazugehörigen Android-App kann es derzeit die Schritte des Trägers zählen.

  • Lightblue für OS X: Anzeige der BluetoothLE-Geräte (Bild: Golem.de)
  • Lightblue: Anzeige der Services des Armbandes (Bild: Golem.de)
  • Lightblue: Anzeige der Characteristics eines Services (Bild: Golem.de)
  • Lightblue: Anzeige des Wertes eines Characteristics (Bild: Golem.de)
  • Lightblue: Beim Armband kann merkwürdigerweiser der Produktname geändert werden. (Bild: Golem.de)
  • nRF Master Control Panel für Android: Anzeige der BluetoothLE-Geräte (Bild: Golem.de)
  • nRF Master Control Panel: Anzeige der Services mit ihren Namen (Foto: Golem.de)
  • nRF Master Control Panel: Anzeige der Characteristics mit ihren Namen (Foto: Golem.de)
  • Unser einfaches Projekt: Eine LED und ein Taster auf einem Breadboard. Im Raspberry Pi steckt ein Bluetooth-Dongle für USB. (Golem.de)
Lightblue für OS X: Anzeige der BluetoothLE-Geräte (Bild: Golem.de)

Statt der App nutzen wir aber LightBlue, um auf das Armband zuzugreifen. Dieses Programm für OS X unterstützt den Roh-Zugriff auf BluetoothLE-Geräte. Eine vergleichbare App ist nRF Master Control Panel für Android-Smartphones.

Die Anwendung

Für beide Programme gilt: starten, warten bis BluetoothLE-Geräte erkannt wurden und dann einfach verbinden. Erst jetzt wird es etwas kryptisch, denn nun werden die Services des Gerätes angezeigt. Die Services werden über 16 und 128 Bit lange Universally Unique Identifier (UUID) identifiziert. Services mit kurzen, 16 Bit langen UUID sind in der GATT-Spezifikation von Bluetooth definiert.

Einige Services geben Auskunft über allgemeine Eigenschaften der Geräte, zum Beispiel Informationen zum Hersteller oder dem Batteriestand, andere sind anwendungsspezifisch - zum Beispiel ein Service für Temperaturangaben von einem Temperatursensor. Diese Art von Service ist noch am ehesten mit den klassischen Profilen von Bluetooth vergleichbar, denn die Eigenschaften und Datenformate sind vorgegeben. Neben den UUIDs gibt die Spezifikation auch noch die entsprechende Bezeichnung vor, die uns die nRF-App direkt anzeigt, Lightblue leider nicht.

Schauen wir uns den Service mit der UUID 0x180F an, dem Batteriestatus. Nach einem Klick werden uns die Characteristics des Services angezeigt, also die Schlüssel des jeweiligen Services.

Hier finden wir das Characteristic mit der UUID 0x2A19 - laut Spezifikation repräsentiert es den Batterieladezustand in Prozent. Damit wir ihn aber tatsächlich sehen, müssen wir bei Lightblue noch einen Button drücken beziehungsweise bei nRF den Download-Pfeil berühren. Je nach Eigenschaft des Characteristics können wir verschiedene Aktionen über das Programm mit ihm durchführen: einen Wert hineinschreiben (Write), einen Wert auslesen (Read) oder ein Characteristic abonnieren(Notify bzw. Subscribe). Diese Abonnement-Funktion werden wir uns später noch anschauen.

BluetoothLE lässt Produzenten die freie Wahl, welche dieser vordefinierten Services ein Gerät anbietet. Die Services 0x1800 (Generic Access) und 0x180A (Geräte-Informationen) sind aber praktisch immer implementiert, um sich gegenüber Gerätenutzern eindeutig identifizieren zu können.

Herstellerspezifische Services

Ein Blick in die Bluetooth-Spezifikation verrät uns, dass es keinen vordefinierten Service für die Funktion "Schritte zählen" im Armband gibt. Diesen Teil übernimmt in irgendeiner Form der Service mit dem 128-Bit-Schlüssel. Solche langen Schlüssel kommen immer zum Einsatz, wenn ein Gerät eigene Services und Schlüssel implementieren will, die nicht vom Standard abgedeckt sind.

Dieser Service besitzt ein Write-Characteristic und ein Read- und Notify-Characteristic. Vermutlich muss an das Write-Characteristic ein bestimmter Kommandowert oder eine Reihe von programmspezifischen Kommandos übergeben werden, worauf das Armband über das Notify-Characteristic das anrufende Programm mit den Daten versorgt. Das ist aber an dieser Stelle nur eine Vermutung. Um diese zu verifizieren, müssten wir tatsächlich die Roh-Kommunikation zwischen Armband und der zugehörigen Original-App verfolgen.

Das ist aber noch einmal ein ganzes Stück aufwendiger und würde endgültig den Rahmen dieses Artikels sprengen.

 iBeaconNoble und Bleno 

eye home zur Startseite
Panzergerd 25. Sep 2015

Inzwischen gibt es bei BlueZ auch GATT-Support via D-Bus. Mit den Beispielprogrammen...

pUiE 10. Jun 2014

Um eine Verbindung von Android Smartphone zu µC herzustellen (zu testzwecken...

Tylon 25. Apr 2014

Sehr schön! An den Threadersteller: wer benötigt auch dB als Angabe bei den...

MarioWario 24. Apr 2014

Ja, im Bereich der Kraft-/Leistungsmesser ist ANT+ noch wichtig (momentan; http://www...



Anzeige

Stellenmarkt
  1. ROHDE & SCHWARZ Meßgerätebau GmbH, Memmingen
  2. Medion AG, Essen
  3. FILIADATA GmbH, Karlsruhe
  4. Helvetia schweizerische Lebensversicherungs-AG, Frankfurt am Main


Anzeige
Spiele-Angebote
  1. 12,99€
  2. 15,99€
  3. ab 129,99€

Folgen Sie uns
       


  1. Hoversurf

    Hoverbike Scorpion-3 ist ein Motorradcopter

  2. Rubbelcard

    Freenet-TV-Guthabenkarten gehen in den Verkauf

  3. Nintendo

    Interner Speicher von Switch offenbar schon jetzt zu klein

  4. Noch 100 Tage

    Unitymedia schaltet Analogfernsehen schrittweise ab

  5. Routerfreiheit

    Tagelange Störung bei Aktivierungsportal von Vodafone

  6. Denverton

    Intel plant Atom C3000 mit bis zu 16 Goldmont-CPU-Kernen

  7. Trotz Weiterbildung

    Arbeitslos als Fachinformatiker

  8. Klage gegen Steuernachzahlung

    Apple beruft sich auf europäische Grundrechte

  9. 3D Studio

    Nvidia spendiert Qt Hunderttausende Zeilen Code

  10. Horizon Zero Dawn im Test

    Abenteuer im Land der Maschinenmonster



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
XPS 13 (9360) im Test: Wieder ein tolles Ultrabook von Dell
XPS 13 (9360) im Test
Wieder ein tolles Ultrabook von Dell
  1. Die Woche im Video Die Selbstzerstörungssequenz ist aktiviert
  2. XPS 13 Convertible im Hands on Dells 2-in-1 ist kompakter und kaum langsamer

Mechanische Tastatur Poker 3 im Test: "Kauf dir endlich Dämpfungsringe!"
Mechanische Tastatur Poker 3 im Test
"Kauf dir endlich Dämpfungsringe!"
  1. Patentantrag Apple denkt über Tastatur mit Siri-, Emoji- und Teilen-Taste nach
  2. Kanex Faltbare Bluetooth-Tastatur für mehrere Geräte gleichzeitig
  3. Surface Ergonomic Keyboard Microsofts Neuauflage der Mantarochen-Tastatur

Hyperloop-Challenge: Der Kompressor macht den Unterschied
Hyperloop-Challenge
Der Kompressor macht den Unterschied
  1. Arrivo Die neuen alten Hyperlooper
  2. SpaceX Die Bayern hyperloopen am schnellsten und weitesten
  3. Hyperloop HTT baut ein Forschungszentrum in Toulouse

  1. Re: Biete Job für Linux-Profi in Bremen

    bjs | 00:19

  2. Re: Positiv betrachtet: preiswert Speicher erweitern

    nolonar | 00:17

  3. Re: Jemanden zu finden der weiß was er tut ist...

    Neuro-Chef | 00:16

  4. Re: wie soll das verlängern überhaupt ohne i-net...

    My1 | 00:16

  5. Re: Also doch nicht 10 Jahre Berufserfahrung ...

    ldaniel | 00:16


  1. 18:30

  2. 18:14

  3. 16:18

  4. 15:53

  5. 15:29

  6. 15:00

  7. 14:45

  8. 14:13


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel