Forum: HF, Funk und Felder Bluetooth Sensor auslesen


von Markus L. (markus_fh)


Lesenswert?

Hallo,

ich habe hier einen Bluetooth-Sensor, der mittels APP für Android 
ausgelesen werden kann. Ich würde das Teil gerne mit meinem Rechner 
verbinden und die Daten in Matlab weiterverarbeiten. Leider gibts die 
Software nur als Androidapp.

Meine Frage wäre, ob es ein Programm gibt, mit dem man die eingehenden 
Datenpakete der Bluetooth Schnittstelle monitoren kann. Wenn das 
Protokoll nicht zu komplex ist, kann man vielleicht rauskriegen was da 
die Nutzdaten sind.

Oder hättet ihr noch ne andere Idee?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Versuche mal mit 
https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp

Ob du das protokoll am handy auslesen kannst. Dann kann man weiter sehen 
wie es am pc am besten geht.

Wie heist der Sensor ? Also modell nr. etc.

Mfg

von Carsten F. (carsten_f664)


Lesenswert?

Bei meinem Android Handy findet sich in den Einstellungen bei den 
Entwickleroptionen eine Einstellmoeglichkeit zum Bluetooth Trace Log. 
D.h. es koennte sein dass dein Handy das bereits kann und du es nur 
einschalten mustt. Ich habe es selber noch nicht genutzt.
Es koennte sein dass Du die Entwickleroptionen auch erst aktivieren 
musst auf deinem Handy, bei mir war es glaube ich ein paar mal auf die 
Systeminfos tippen, dann wurde es sichtbar, dass muesstest Du fuer dein 
Handy aber mal googeln,
Viel Erfolg

von Markus L. (markus_fh)


Lesenswert?

Es geht um das Teil hier: 
https://www.phywe.de/de/cobra-smartsense-force-50-n.html#tabs4

Ist an sich schon Schrott, dass man das nur mit Android-App liefert. 
Wobei ich noch nicht mal ein Tablett o.ä. habe um das mit deiner App zu 
testen. Und nein, es ist nicht auf meinem Mist gewachsen das Teil zu 
kaufen.

von Harald W. (wilhelms)


Lesenswert?

Markus L. schrieb:

> Ist an sich schon Schrott, dass man das nur mit Android-App liefert.

Wieso? Für den angedachten Zweck (Schülerversuche) dürfte das wohl
passen. M.E. für die Firma Phywe ein ausgesprochen niedriger Preis.

von Markus L. (markus_fh)


Lesenswert?

Ein Sensor, bei dem man nicht an die Messdaten rankommt, ist m.E. 
Spielzeug. Mir ist schon klar, dass Phywe ein anderes Zielpublikum hat 
bzw. würde es über Android als Umweg wahrscheinlich auch funktionieren. 
Der Sensor ist jetzt halt da, und die Frage ist, ob ich mit vertretbarem 
Aufwand da an Messdaten rankomme. Ein Android-Gerät habe ich nicht und 
müsste das erst anschaffen.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Markus L. schrieb:

> Meine Frage wäre, ob es ein Programm gibt, mit dem man die eingehenden
> Datenpakete der Bluetooth Schnittstelle monitoren kann. Wenn das
> Protokoll nicht zu komplex ist, kann man vielleicht rauskriegen was da
> die Nutzdaten sind.

Du kannst Dich mal mit einem generischen GATT-Client (z.B. 
https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-mobile) 
auf das Gerät verbinden und Dir Struktur des GATT Servers angucken. 
Evtl. ist die trivial und evtl. sogar selbstbeschreibend.

Wenn das nicht hilft, dann brauchst Du einen Sniffer. Nordic und TI 
bieten sehr günstige Lösungen, die auf deren Eval-Boards aufsetzen.

> Oder hättet ihr noch ne andere Idee?

Dem Hersteller eine EMail schicken und ihn höflich darum bitten, Dir die 
Dokuentation der BLE Schnittstelle zukommen zu lassen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Dazu gibt es auch ein "Schüler-Interface". Früher nannte sich sowas 
"Nürnberger Trichter" und wurde am Hirn angebracht.

Kann man das Teil hier öffnen, um den verbauten Chip oder Modul zu 
erkennen? Vielleicht ist das ein Standardbauteil wie die FTDI-Chips für 
USB/RS232 oder ähnliches. Die Entwickler sind nicht immer so begeistert, 
alles selbst bauen zu müssen.

von Joachim S. (oyo)


Lesenswert?

Ich habe schon bei einigen Geräten, die per Bluetooth 4 ("BTLE") mit 
einem Smartphone kommunizieren, und für die es eben nur eine 
Smartphone-App gibt, das Protokoll erfolgreich reverse engineered, um 
das Gerät auch ohne die Hersteller-App bzw. mit eigener Software nutzen 
zu können.

Deine Chancen stehen meiner Einschätzung nach gut, und es ist 
tatsächlich gar nicht mal sooo schwer. Man braucht dazu üblicherweise 
auch keinerlei zusätzliche Hardware; Carsten F. hat das entscheidende 
Stichwort bereits genannt:

Bei den meisten modernen Android-Smartphones genügt es, die 
"Entwickleroptionen" freizuschalten (im Zweifelsfall kurz danach 
googlen, wenn Du nicht weisst, wie das geht), und dann in den 
"Entwickleroptionen" die Option "Bluetooth HCI-Snoop-Protokoll" temporär 
zu aktivieren.

Mit dieser Option aktiviert, startest Du die zum Gerät zugehörige 
Smartphone-App, machst einige Messungen, damit einige Daten gesendet 
werden. Dann kannst Du die "Bluetooth HCI-Snoop-Protokoll"-Option wieder 
deaktivieren.

Die "Bluetooth HCI-Snoop-Protokoll"-Option erzeugt eine Log-Datei, die 
Du einfach per USB-Kabel o.Ä. auf Deinen Computer überspielen und dort 
mit dem beliebten Open Source-Programm "Wireshark" öffnen kannst. Dann 
siehst Du ganz bequem, was da an Bluetooth-Kommunikation stattgefunden 
hat, kannst es nach Belieben filtern etc., besser geht es kaum.

Die Messwerte werden vermutlich als immer gleich aufgebaute Datenpakete 
von maximal 20 Bytes gesendet; es wird vermutlich genügen, einige dieser 
Datenpakete mit unterschiedlichen Messwerten zu sammeln, zu vergleichen, 
welche Bytes sich ändern, und das sind dann die Nutzdaten/Messwerte.

Ist jetzt etwas verkürzt und vereinfacht ausgedrückt, aber so in etwa 
solltest Du grundsätzlich vorgehen.

: Bearbeitet durch User
von Uhu U. (uhu)


Angehängte Dateien:

Lesenswert?

Markus L. schrieb:
> Ich würde das Teil gerne mit meinem Rechner
> verbinden und die Daten in Matlab weiterverarbeiten.

Das Gerät arbeitet mit Bluetooth 4 alias Bluetooth Low Energy. Das hat 
mit dem "Blutooth classic" nur den Namen geneinsam, die Systeme sind 
inkompatibel.

Ich hatte dasselbe Problem mit einem Eigenbau, den ich über ein Android 
Smartphone mit BLE steuern und am PC entwickeln will.

BT classic hat ein serielles Profil definiert und man muss nur ein BT 
2.x USB-Dongel in den PC stecken, es über die BT-Software aktivieren und 
connecten und schon hat man das Gerät unter Linux über /dev/rfcommx als 
tty zugreifbar.

Bei BTLE ist alles "besser": es gibt kein serielles Profil und die 
gesamte Protokollverarbeitung ist vom System- in der Anwendungsbereich 
verlagert. Mit Standardsoftware kann man zwar testen, aber einen 
regulären Zugang bekommt man nicht so einfach hin, wenn überhaupt.

Ich hab mir per Hardware geholfen:
- einen chinesischen USB <-> ttl-tty-Adapter und einen
- MLT-BT05 BLE-Adapter auf einen Stück Lochraster
mit einem Kabelbinder zusammengeflanscht - siehe Anhang

Der MLT-BT05 läuft auf 3.3 V, der USB-Adapter ebenfalls und der stellt 
freundlcherweise neben den 5 V vom USB auch 3.3 V für ein 
angeschlossenes Gerät bereit.

Wenn man das Teil in die USB-Buchse steckt, ist der BLE-Adapter über 
/dev/ttyUSBx zugreifbar.

Ansprechen konnte ich dann mein BLE-Gerät über das Terminal der 
Arduino-IDE - das ist doof genug, dass es funktioniert, während ich mit 
den üblichen Terminal-Programmen bis jetzt auf keinen grünen Zweig 
gekommen bin.

Den USB-BLE-Adapter muss man dann per AT-Befehl als Master definieren 
und - vermutlich - noch die passenden Kennungen für Profil und 
Charakteristik für das Zielgerät programmieren und dann hoffen, dass man 
an die Daten kommt.

Leider ist das alles ein ziemliches Gefrickel, weil es keine 
vernünftigen Dokumentationen gibt.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Uhu U. schrieb:

> Leider ist das alles ein ziemliches Gefrickel, weil es keine
> vernünftigen Dokumentationen gibt.

Die gänigen Betriebssysteme bieten Schnittstellen an, um auf die BLE 
Hardware zugreifen zu können. Für schnelle Tests bietet sich Noble 
(https://github.com/noble/noble) an.

von Uhu U. (uhu)


Lesenswert?

Torsten R. schrieb:
> Die gänigen Betriebssysteme bieten Schnittstellen an, um auf die BLE
> Hardware zugreifen zu können.

Ja klar, nur muss man die eben per dediziertem Programm bedienen. 
Einfaches Ansprechen über /dev/tty* ist nicht.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Hier der source code der app

https://workupload.com/start/RsnFpQj8

Der Source code ist nicht verschlüsselt dadurch lässt sich recht einfach 
die Funktionen rausfinden habe da nur rüber geschaut sieht aber alles 
sehr einfach aus

: Bearbeitet durch User
von Markus L. (markus_fh)


Lesenswert?

Danke mal für eure Hilfe. Muss mal schauen, was ich davon umsetze. 
Leider habe ich eigentlich keine zeitliche Kapazitäten für sowas, und 
das Auslesen in Matlab wäre auch nur nice2have. Vielleicht kann man auch 
ne Projektarbeit draus machen und nen Studi dransetzen. 
Reverse-Engineering ist eigentlich eine interessante Sache.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Markus L. schrieb:

> Leider habe ich eigentlich keine zeitliche Kapazitäten für sowas, und
> das Auslesen in Matlab wäre auch nur nice2have.

Vielleicht schreibst Du beim nächsten mal, dass Du die Frage nur aus 
langer Weile gestellt hast, dann spare ich mir eine Antwort.

von Markus L. (markus_fh)


Lesenswert?

Torsten R. schrieb:
> Vielleicht schreibst Du beim nächsten mal, dass Du die Frage nur aus
> langer Weile gestellt hast, dann spare ich mir eine Antwort.

Ich habe nicht aus langer Weile geschrieben. Es ist insgesamt nur eben 
auf niedriger Priorität neben dem Tagesgeschäft. Ich werde mir die 
Sachen auch anschauen, und wenn es passt eine Projektarbeit für Studis 
drausmachen (es sei denn ich kriege es in 1-2 h selber hin, es scheint 
mir aber aufwändiger zu sein).

Und wenn ein paar Studis das bearbeiten war deine Antwort doch auch 
nicht umsonst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.