2017-09-04 11 views
0

Je travaille sur une application React qui utilisera 3 valeurs de données de capteur en temps réel.Lecture des données de capteur envoyées par Bluetooth dans le navigateur

Les données sont envoyées via bluetooth à partir d'une puce nRF52840.

Au début, j'essayé la bibliothèque Noble pour bluetooth et cela a fonctionné tout de suite avec un minimum de code: Noble bluetooth code

Le résultat de l'exécution du code ci-dessus ressemblait à ceci: Sensor data logging

Cependant quand j'ai essayé d'intégrer Noble dans mon application React j'ai eu des erreurs avec les dépendances quand Webpack faisait une DLL donc je n'ai pas trouvé un moyen de l'intégrer.

J'ai essayé l'API Web Bluetooth à la place en utilisant l'exemple ici: Web Bluetooth heart rate sensor Je l'ai essayé en utilisant un Polar H10 que j'ai et qui a bien fonctionné, puis je l'ai modifié pour fonctionner avec mon capteur.

Maintenant, je peux lire les valeurs des capteurs dans le navigateur, mais je sais que ce sont des valeurs erronées ... elles sont toujours autour de 50-60 ish et ne changent pas lorsque je change de capteur. Je pense que j'ai besoin d'un code d'analyse, comme le code du capteur de fréquence cardiaque. Cependant, ce code utilise des opérations & au niveau du bit, et il assume des données little-endian. Je ne sais pas si mes données sont petites ou non ou d'autres détails au niveau du bit, donc je préfèrerais ne pas écrire de code d'analyse.

Je sais que Noble par exemple peut le lire hors de la boîte donc je veux quelque chose de similaire, est-ce possible? Existe-t-il une sorte de norme Bluetooth pour lire les données ou est-ce spécifique au matériel? Il n'y a pas de documentation sur mon matériel, donc je ne peux pas lire à ce sujet. Voici le code que je suis actuellement en utilisant, semblable au rythme cardiaque code du capteur: Bluetooth sensor reading code

Répondre

1

Il y a la norme Bluetooth services & characteristics, mais tout matériel peut choisir (ou le besoin) d'utiliser des méthodes personnalisées. Il n'y a pas de standard, pas même de style de codage tel que little/big endian ou bytes vs strings.

Options pour comprendre les données doivent utiliser des outils qui peuvent lire les données dans de multiples formats, tels que HCI logging, nRF Connect (desktop) ou Chrome chrome://bluetooth-internals.

+0

Très bien merci pour l'aide. J'ai réussi à découvrir qu'il envoyait du code ASCII sous la forme d'une chaîne de valeurs séparées par des virgules. Cela a rendu assez facile d'écrire du code d'analyse. J'aurais peut-être dû deviner quand les valeurs étaient pour la plupart des valeurs similaires autour de 48-57 (la représentation ASCII des nombres). –