2017-09-04 1 views
0

Ich arbeite an einer React-App, die 3 Sensordatenwerte in Echtzeit verwendet.Lesen von Sensordaten, die per Bluetooth in den Browser gesendet wurden

Die Daten werden über Bluetooth von einem nRF52840-Chip gesendet.

Zuerst habe ich versucht, die Noble Bibliothek für Bluetooth und es funktionierte sofort mit minimalem Code: Noble bluetooth code

Das Ergebnis der Ausführung des Codes oben sah wie folgt aus: Sensor data logging

aber als ich versuchte, Noble zu integrieren in meine React App habe ich Fehler mit Abhängigkeiten bekommen als Webpack eine DLL erstellt hat, also habe ich keine Möglichkeit gefunden sie zu integrieren.

Ich habe versucht, die Web Bluetooth API anstelle des Beispiels hier: Web Bluetooth heart rate sensor Ich habe es ausprobiert mit einem Polar H10 Ich habe und das hat gut funktioniert, dann habe ich es geändert, um mit meinem Sensor zu arbeiten.

Jetzt kann ich Sensorwerte in den Browser lesen, aber ich weiß, dass sie die falschen Werte sind .. sie sind immer um 50-60 ish und ändern sich nicht, wenn ich den Sensor ändere.

Ich denke, ich brauche ein Parsing-Code, wie der Herzfrequenz-Sensor-Code. Dieser Code verwendet jedoch Bit-Level-Operationen &, Flags und nimmt Little-Endian-Daten an. Ich weiß nicht, ob meine Daten Little Endian oder andere Bit-Level-Details sind, also würde ich lieber keinen Parsing-Code schreiben.

Ich weiß, dass Noble zum Beispiel kann es aus der Box lesen, damit ich etwas ähnliches möchte, ist das möglich? Gibt es eine Art Bluetooth-Standard zum Lesen der Daten oder ist diese hardwarespezifisch? Es gibt keine Dokumentation auf meiner Hardware, so dass ich nicht darüber lesen kann. Hier ist der Code, den ich zur Zeit benutzen, ähnlich den Herzfrequenzsensor Code: Bluetooth sensor reading code

Antwort

1

Es gibt Standard-Bluetooth services & characteristics, aber jede Hardware kann (oder muß) wählen benutzerdefinierte Methoden verwenden. Es gibt keinen Standard, nicht einmal einen Encodierungsstil wie Little/Big Endian oder Bytes vs Strings.

Optionen, um die Daten zu verstehen sind Werkzeuge verwenden, um die Daten in verschiedenen Formaten, wie HCI logging, nRF Connect (desktop) chrome://bluetooth-internals oder Chrome lesen kann.

+0

Alles klar, danke für die Hilfe. Es gelang mir herauszufinden, dass ASCII-Code als kommagetrennte Zeichenfolge gesendet wurde. Das machte es ziemlich einfach, einen Parsing-Code zu schreiben. Ich hätte es vielleicht erraten, wenn die Werte meistens ähnliche Werte um 48-57 waren (die ASCII-Darstellung von Zahlen). –

Verwandte Themen