Table des matières:
- Étape 1: Le circuit
- Étape 2: Le code de traitement du signal et les communications du serveur
- Étape 3: Le serveur et les communications de données
- Étape 4: L'application Android
- Étape 5: Conclusion
Vidéo: Moniteur de fréquence cardiaque IOT (ESP8266 et application Android) : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Dans le cadre de mon projet de dernière année, je voulais concevoir un appareil qui surveillerait votre fréquence cardiaque, stockerait vos données sur un serveur et vous avertirait par notification lorsque votre fréquence cardiaque était anormale. L'idée derrière ce projet est venue lorsque j'ai essayé de créer une application fit-bit qui avertit un utilisateur lorsqu'il a un problème cardiaque, mais je n'arrivais pas à trouver un moyen d'utiliser les informations en temps réel. Le projet comporte quatre parties principales. comprenant le circuit physique pour mesurer le rythme cardiaque, un module Wi-Fi ESP8266 avec code de traitement du signal, le serveur pour stocker le code et une application Android pour afficher la fréquence cardiaque.
Une vidéo détaillant le circuit physique peut être vue ci-dessus. Tout le code du projet se trouve sur mon Github.
Étape 1: Le circuit
Il existe deux méthodes principales pour mesurer un rythme cardiaque, mais pour ce projet, j'ai décidé d'utiliser la photopléthysmographie (PPG) qui utilise une source de lumière infrarouge ou rouge qui est réfractée à travers les premières couches de la peau. Un photocapteur est utilisé pour mesurer le changement d'intensité lumineuse (lorsque le sang circule dans un vaisseau). Les signaux PPG sont incroyablement bruyants, j'ai donc utilisé un filtre passe-bande pour filtrer les fréquences spécifiques requises. Un cœur humain bat entre 1 et 1,6 Hz de fréquence. L'ampli-op que j'ai utilisé était le lm324 qui avait le meilleur décalage de tension de tous les amplis-op disponibles. Si vous recréez ce projet, un ampli-op de précision serait un bien meilleur choix.
Un gain de seulement deux a été utilisé car la tolérance de tension maximale sur l'ESP8266 est de 3,3v et je ne voulais pas endommager ma carte !
Suivez le circuit ci-dessus et essayez de le faire fonctionner sur une planche à pain. Si vous n'avez pas d'oscilloscope à la maison, vous pouvez brancher la sortie sur un Arduino et la tracer, mais assurez-vous que la tension n'est pas supérieure à la tolérance de l'arduino ou du microcontrôleur.
Le circuit a été testé sur une planche à pain et un changement dans la sortie a été observé lorsqu'un doigt a été placé sur la LED et le phototransistor. J'ai alors décidé de souder la carte ensemble, ce qui n'était pas montré dans la vidéo.
Étape 2: Le code de traitement du signal et les communications du serveur
J'ai décidé d'utiliser l'IDE Arduino sur l'ESP8266 car il est si facile à utiliser. Lorsque le signal a été tracé, il était encore très bruyant, j'ai donc décidé de le nettoyer avec un filtre à moyenne mobile FIR avec un nombre d'échantillons de dix. J'ai modifié un exemple de programme Arduino appelé "lissage" pour ce faire. J'ai un peu expérimenté afin de trouver un moyen de mesurer la fréquence du signal. Les impulsions étaient de longueur et d'amplitude variables en raison du fait que le cœur avait quatre types d'impulsions différents et les caractéristiques des signaux PPG. J'ai choisi une valeur médiane connue que le signal croisait toujours comme point de référence pour chaque impulsion. J'ai utilisé un tampon en anneau pour déterminer quand la pente du signal était positive ou négative. La combinaison de ces deux m'a permis de calculer la période entre les impulsions lorsque le signal était positif et était égal à une valeur spécifique.
Le logiciel produisait un BPM assez imprécis qui ne pouvait en fait pas être utilisé. Avec des itérations supplémentaires, un meilleur programme pourrait être conçu, mais en raison de contraintes de temps, ce n'était pas une option. Le code peut être trouvé dans le lien ci-dessous.
Logiciel ESP8266
Étape 3: Le serveur et les communications de données
J'ai décidé d'utiliser Firebase pour stocker les données car il s'agit d'un service gratuit et très facile à utiliser avec les applications mobiles. Il n'y a pas d'API officielle pour Firebase avec l'ESP8266 mais j'ai trouvé que la bibliothèque Arduino fonctionnait très bien.
Il existe un exemple de programme que l'on peut trouver sur la bibliothèque ESP8266WiFi.h qui permet de se connecter à un routeur avec le SSID et le mot de passe. Cela a été utilisé pour connecter la carte à Internet afin que les données puissent être envoyées.
Bien que le stockage des données se soit fait facilement, il existe encore un certain nombre de problèmes avec l'envoi des notifications push via une requête HTTP POST. J'ai trouvé un commentaire sur le Github qui utilisait une méthode héritée pour le faire via la messagerie Google cloud et la bibliothèque HTTP pour ESP8266. Cette méthode peut être vue dans le code sur mon Github.
Sur Firebase, j'ai créé un projet et utilisé l'API et les clés d'enregistrement dans le logiciel. La messagerie cloud Firebase a été utilisée avec l'application afin d'envoyer des notifications push à l'utilisateur. Lorsque les communications ont été testées, les données pouvaient être vues dans la base de données pendant que l'ESP8266 était en cours d'exécution.
Étape 4: L'application Android
Une application Android très basique a été conçue avec deux activités. La première activité a connecté l'utilisateur ou l'a enregistré à l'aide de l'API Firebase. J'ai recherché la fiche technique et trouvé divers tutoriels sur l'utilisation de Firebase avec une application mobile. L'activité principale qui affichait à l'utilisateur des données de l'utilisateur un écouteur d'événements en temps réel, de sorte qu'il n'y avait pas de retard notable dans les modifications apportées au BPM de l'utilisateur. Les notifications push ont été effectuées à l'aide de la messagerie cloud Firebase mentionnée précédemment. Il y a beaucoup d'informations utiles sur la fiche technique de Firebase sur la façon de mettre en œuvre cela et l'application peut être testée en envoyant des notifications à partir du tableau de bord sur le site Web de Firebase.
Tout le code des activités et les méthodes de la messagerie cloud se trouvent dans mon référentiel Github.
Étape 5: Conclusion
Il y avait quelques problèmes majeurs avec la mesure du BPM de l'utilisateur. Les valeurs variaient considérablement et n'étaient pas utilisables pour déterminer la santé d'un utilisateur. Cela se résumait au code de traitement du signal qui a été implémenté sur l'ESP8266. Après des recherches supplémentaires, j'ai découvert qu'un cœur avait quatre impulsions différentes avec une période variable, il n'était donc pas étonnant que le logiciel soit inexact. Une façon de lutter contre cela serait de prendre une moyenne des quatre impulsions d'un réseau et de calculer la période du cœur sur ces quatre impulsions.
Le reste du système était fonctionnel mais c'est un dispositif très expérimental que je voulais construire pour voir si l'objet était possible. Le code hérité qui a été utilisé pour envoyer des notifications push sera bientôt inutilisable, donc si vous lisez ceci à la fin de 2018 ou à la fin, une méthode différente serait requise. Ce problème ne se produit qu'avec l'ESP, donc si vous vouliez l'implémenter sur un Arduino compatible WiFi, ce ne serait pas un problème.
Si vous avez des questions ou des problèmes, n'hésitez pas à m'envoyer un message sur Instructables.
Conseillé:
Capteur de rythme cardiaque utilisant Arduino (moniteur de fréquence cardiaque): 3 étapes
Capteur de rythme cardiaque utilisant Arduino (moniteur de fréquence cardiaque) : le capteur de rythme cardiaque est un appareil électronique utilisé pour mesurer la fréquence cardiaque, c'est-à-dire la vitesse du rythme cardiaque. La surveillance de la température corporelle, de la fréquence cardiaque et de la pression artérielle sont les choses de base que nous faisons pour rester en bonne santé. La fréquence cardiaque peut être mon
Moniteur de fréquence cardiaque bricolage (enregistreur): 4 étapes
Moniteur de fréquence cardiaque bricolage (enregistreur): Dans ce projet, je vais vous montrer comment une montre intelligente commerciale mesure et surveille votre fréquence cardiaque et ensuite je vais vous montrer comment créer un circuit de bricolage qui peut essentiellement faire la même chose avec l'ajout qu'il peut également stocker les données de fréquence cardiaque
Respirez l'appareil d'anxiété légère avec moniteur de fréquence cardiaque : 18 étapes (avec photos)
Respirez l'appareil d'anxiété légère avec moniteur de fréquence cardiaque : avec le monde de plus en plus occupé, tout le monde est dans un environnement de plus en plus stressant. Les étudiants du Collège sont encore plus à risque de stress et d'anxiété. Les examens sont des périodes particulièrement stressantes pour les étudiants, et les montres connectées avec exercice de respiration
Mesurer votre fréquence cardiaque au bout de votre doigt : Approche photopléthysmographique pour déterminer la fréquence cardiaque : 7 étapes
Mesurer votre fréquence cardiaque au bout de votre doigt : Approche de la photopléthysmographie pour déterminer la fréquence cardiaque : Un photopléthysmographe (PPG) est une technique optique simple et peu coûteuse qui est souvent utilisée pour détecter les changements de volume sanguin dans un lit microvasculaire de tissu. Il est principalement utilisé de manière non invasive pour effectuer des mesures à la surface de la peau, généralement
Moniteur de fréquence cardiaque sans fil avec 4Duino-24 : 4 étapes
Moniteur de fréquence cardiaque sans fil doté de 4Duino-24 : le moniteur de fréquence cardiaque sans fil est un projet conceptuel conçu pour les hôpitaux et les cliniques, sa fonction principale est de minimiser le temps nécessaire aux infirmières ou aux médecins pour visiter chaque patient dans un hôpital. Habituellement, les médecins et les infirmières visitent chaque patient pour vérifier