nocloud schrieb:
Die meisten dieser Geräte verwenden Bluetooth 4.x bzw. Bluetooth Low
Energy.
Die Bluetooth SIG hat für Bluetooth 4.x zahlreiche "GATT Services"
standardisiert für diverse typische Anwendungsfälle, z.B.
"Körper-Thermometer", "Blutdruckmessung", "Pulsoximeter",
"Herzfrequenzmesser", "Körper-Waage", "Glukose-Messung":
https://www.bluetooth.com/specifications/gatt/services
Wenn Du auf einen der im obigen Link aufgelisteten "Services" klickst,
dann findest Du alle nötigen Informationen dazu, wie man mit
Bluetooth-Geräten kommunizieren kann, die einen der dort aufgelisteten
Services unterstützen (also z.B. als "Körperwaage" oder
"Herzfrequenzmesser" fungieren).
Wenn man das Protokoll erst einmal kennt, ist es üblicherweise nicht
sehr schwer mit solchen Geräten zu kommunizieren; man muss normalerweise
nur eine handvoll Bytes dekodieren. Folgendes in Node.js geschriebenes
Code-Fragment genügt bspw. schon, um sich die die Daten von
Bluetooth-"Herzfrequenzmesser"-Devices ausgeben zu lassen:
1 | bluetooth = require('simble');
|
2 |
|
3 | bluetooth.requestCharacteristic(0x2A37, 0x180D)
|
4 | .then(characteristic => {
|
5 | characteristic.subscribe(event => {
|
6 | console.log('Heart Rate: ' + event.target.value[1]);
|
7 | });
|
8 | });
|
Obiger Code sucht nach einem Gerät, das den Bluetooth Service 0x180D
(="Heart Rate Service":
https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.heart_rate.xml)
unterstützt, und "subscribed" dann auf die Charakteristik 0x2A37
(="Heart Rate Measurement":
https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.heart_rate_measurement.xml).
Jedes auf diese Weise empfangene Datenpaket enthält als zweites Byte die
aktuelle Herzfrequenz.
Das Problem ist nur: Nicht alle "Lifestyle/Fitness-Geräte" mit Bluetooth
4.x-Schnittstelle verwenden den passenden, von der Bluetooth SIG
standardisierten Service, sondern stattdessen ihr eigenes Protokoll!
Beim Kauf solcher Geräte sollte man daher grundsätzlich Geräte nehmen,
die einen von der Bluetooth SIG standardisierten Service aus der obigen
Liste verwenden, und kein proprietäres, hersteller-eigenes Protokoll -
denn dann ist es vglw. leicht, auch ohne die Hersteller-App mit den
Geräten zu kommunizieren; dann ist auch die Chance viel höher, eine
existierende Alternativ-Software zur Hersteller-App zu finden. Leider
steht nicht gross auf der Verpackung, ob dem so ist, man muss also
zumindest etwas Internet-Recherche betreiben... :-(
Um ein vorhandenes Bluetooth 4.x-Gadget mal ein bisschen zu untersuchen,
kann man bspw. die kostenlose Android-App "nRF Connect" benutzen.