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

Das Peripheral-Modul

Anzeige

Die Funktion des Peripheral wird ein Raspberry Pi übernehmen, an ihn schließen wir über dessen GPIO-Pins eine LED und einen Taster an. Dann entwickeln wir einen BluetoothLE-Service mit zwei Characterics: einen um die LED an- und auszuschalten und einen zweiten zum Auslesen des Taster-Status.

Dazu müssen wir mit Hilfe von Bleno den Service sowie die Characteristics implementieren und die notwendige Logik, um auf Schreib- beziehungsweise Leseanfragen zu reagieren. Das vollständige Javascript-Skript für Node.js kann von unserem Webserver unter https://www.golem.de/projekte/btle/bt_peripheral.js heruntergeladen werden.

Wir beginnen damit, Bleno in unserem Skript einzubinden und zwei Event-Handler zu registrieren.

  1. var bleno = require('bleno');
  2.  
  3. bleno.on('stateChange', function(state) {
  4. if (state === 'poweredOn') {
  5. bleno.startAdvertising('led', []);
  6. } else {
  7. bleno.stopAdvertising();
  8. }
  9. });
  10.  
  11. bleno.on('advertisingStart', function(error) {
  12. if (!error) {
  13. bleno.setServices([
  14. new LedService()
  15. ]);
  16. }
  17. });

Der Event 'stateChange' wird aufgerufen, wenn der Bluetooth-Dongle von Bleno angesprochen werden kann - oder auch nicht mehr. Wenn der Dongle bereit ist, versetzt startAdvertising() ihn in einem Modus, in dem er kontinuierlich auf sich aufmerksam macht. Der erste Parameter dieser Methode ist der Name, unter dem das Peripheral für andere Bluetooth-Geräte sichtbar ist.

Der zweite Event wird ausgelöst, wenn das Advertising erfolgreich gestartet werden konnte. Jetzt kann unser eigener Service initialisiert werden. Die Klasse LedService ist abgeleitet von bleno.PrimaryService. Im Konstruktor der Klasse setzen wir die UUID des Service und initialisieren die beiden Characteristics des Services.

  1. function LedService() {
  2. LedService.super_.call(this, {
  3. uuid: '5dfeb700bb8711e393430002a5d5c51b',
  4. characteristics: [
  5. new LedReadCharacteristic()
  6. , new LedWriteCharacteristic()
  7. ]
  8. });
  9. }
  10.  
  11. util.inherits(LedService, bleno.PrimaryService);

Die UUID können wir selbst festlegen, sie sollte laut Bluetooth-Spezifikation 128 Bit lang sein. Eine einfache Generierungsmöglichkeit gibt es auf der Webseite der ITU.

 Noble und BlenoTasterwert lesen und senden 

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. Fresenius Kabi Deutschland GmbH, Oberursel
  2. A. Kayser Automotive Systems GmbH, Einbeck
  3. Robert Bosch GmbH, Bühl
  4. Panasonic Industrial Devices Europe GmbH, Lüneburg


Anzeige
Top-Angebote
  1. 19,99€ inkl. Versand
  2. bei Bezahlung per Paydirekt - 50€ Mindestbestellwert
  3. 289,00€ (Bestpreis!)

Folgen Sie uns
       


  1. Mobilfunkausrüster

    Welche Frequenzen für 5G in Deutschland diskutiert werden

  2. XMPP

    Bundesnetzagentur will hundert Jabber-Clients regulieren

  3. Synlight

    Wie der Wasserstoff aus dem Sonnenlicht kommen soll

  4. Pietsmiet

    "Alle Twitch-Kanäle sind kostenpflichtiger Rundfunk"

  5. Apache-Lizenz 2.0

    OpenSSL plant Lizenzwechsel an der Community vorbei

  6. 3DMark

    Overhead-Test ersetzt Mantle durch Vulkan

  7. Tastatur-App

    Nutzer ärgern sich über Verschlimmbesserungen bei Swiftkey

  8. Kurznachrichten

    Twitter erwägt Abomodell mit Zusatzfunktionen

  9. FTTH

    M-net-Glasfaserkunden nutzen 120 GByte pro Monat

  10. Smartphone

    Google behebt Bluetooth-Problem beim Pixel



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Mobile-Games-Auslese: Würfelkrieger und Kartendiebe für mobile Spieler
Mobile-Games-Auslese
Würfelkrieger und Kartendiebe für mobile Spieler

Hannover: Die Sommer-Cebit wird teuer
Hannover
Die Sommer-Cebit wird teuer
  1. Ab 2018 Cebit findet künftig im Sommer statt
  2. Modell 32UD99 LGs erster HDR-Monitor mit USB-C kommt nach Deutschland
  3. Cloud-Computing Open Source Forum der Cebit widmet sich Openstack

Live-Linux: Knoppix 8.0 bringt moderne Technik für neue Hardware
Live-Linux
Knoppix 8.0 bringt moderne Technik für neue Hardware

  1. Re: Warum Sonnenlicht?

    GangnamStyle | 06:54

  2. Was soll der Aufriss?

    Mik30 | 06:53

  3. Re: Gesetze sollten ein Ablaufdatum haben!

    NaruHina | 06:48

  4. Es werden keine Rundfunkfrequenzen belegt, damit...

    JouMxyzptlk | 06:43

  5. Wie wärs mit hohen Druck?

    DreiChinesenMit... | 06:42


  1. 17:45

  2. 17:32

  3. 17:11

  4. 16:53

  5. 16:38

  6. 16:24

  7. 16:09

  8. 15:54


  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