Das Peripheral-Modul

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.

Stellenmarkt
  1. Anwendungsentwickler (m/w/d) für Bestandssysteme
    RZH Rechenzentrum für Heilberufe GmbH, Wesel
  2. Senior Data Scientist (m/w/d) im Chief Data Office
    Allianz Deutschland AG, Unterföhring
Detailsuche

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

Golem Karrierewelt
  1. Advanced Python – Fortgeschrittene Programmierthemen: virtueller Drei-Tage-Workshop
    23.-25.01.2023, Virtuell
  2. Deep-Dive Kubernetes – Observability, Monitoring & Alerting: virtueller Ein-Tages-Workshop
    22.09.2022, Virtuell
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Noble und BlenoTasterwert lesen und senden 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13.  


ronda-melmag 01. Nov 2019

Und noch heute 4 jahre danach ist das bei Bluez "experimental" das steigert bei mir...

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



Aktuell auf der Startseite von Golem.de
SFConservancy
Open-Source-Entwickler sollen Github wegen Copilot verlassen

Ähnlich wie schon vor Jahrzehnten mit Sourceforge sollen Open-Source-Projekte nun auch Github verlassen.

SFConservancy: Open-Source-Entwickler sollen Github wegen Copilot verlassen
Artikel
  1. Softwareupdate: Teslas können Schlaglöcher erkennen und Federung anpassen
    Softwareupdate
    Teslas können Schlaglöcher erkennen und Federung anpassen

    Durch ein Softwareupdate können Teslas nach Schlaglöchern suchen und bei Bedarf die adaptive Federung ändern.

  2. Wärmeversorgung: Berlin baut Thermoskanne gegen Gasnotstand
    Wärmeversorgung
    Berlin baut Thermoskanne gegen Gasnotstand

    Der Versorger Vattenfall baut in Berlin einen riesigen Warmwasserspeicher, um Häuser im Winter heizen zu können. Das könnte beim möglichen Gasnotstand helfen.

  3. Bundeskartellamt: VW und Bosch dürfen an automatisiertem Fahren forschen
    Bundeskartellamt
    VW und Bosch dürfen an automatisiertem Fahren forschen

    Das Bundeskartellamt erlaubt es VW und Bosch, gemeinsam an der Fortentwicklung des automatisierten Fahrens zu arbeiten.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MSI RTX 3080 12GB günstig wie nie: 949€ • AMD Ryzen 7 günstig wie nie: 259€ • Der beste 2.000€-Gaming-PC • Cooler Master 34" UWQHD 144 Hz günstig wie nie: 467,85€ • Asus RX 6900 XT OC günstig wie nie: 1.049€ • Mindstar (Gigabyte RTX 3060 399€) • Galaxy Watch3 45 mm 119€ [Werbung]
    •  /