Bonjour,
mon projet “ monitoring temps réel des données cardiaques”
int32_t heartRate; //heart rate value
int32_t spo2; //SPO2 value
les données sont remontées en mqtt via mosquito mqtt Nodered, enregistrer dans Influxdb et visualiser avec Grafana. une vérification d’apnée est réalisée avec le test suivant. tout ce processus fonctionne et je peux visualiser les graphes sur mon smartphone.
if (Spo2 < 90)
{
apnnee_detectee = true ; // si spo2 < 90% on détecte une apnée
apnee = apnee + 5 ; // si spo2 < 90% on incrémente la variable apnee
fin_apnnee_detectee = false ;
}
else
{
// si spo2 > 90% on arrête le compteur de l'apnee
if (fin_apnnee_detectee == false)
{
fin_apnnee_detectee = true ;
time_apnee_en_cours = apnee ; // on sauvegarde la valeur de l'apnee
time_apnee_heure = time_apnee_heure + time_apnee_en_cours;
compteur_apnee_heure ++;
apnnee_detectee = false ; // si spo2 > 90% on n'a pas d'apnée
apnee = 0; // si spo2 > 90% on remet la variable apnee à 0
}
Voilà le projet qui permet de déterminer si vous faites de l’apnée. vous devez etre appareiller si votre nombre d’apnées / heure dépasse 20.
cependant il me reste un problème que je comprend pas car la donnée est calculée dans la librairie " SparkFun_MAX3010x_Pulse_and_Proximity_Sensor_Library-1.1.2" . le battement de coeur “heartRate” semble etre le double voire le triple de la valeur réelle. Il me donne des valeurs de 160 alors que assis à mon bureau j’ai 63 battements/s mesurés avec un tensiomètre électronique. ce qui est bon car ma balance Whithings donne à peu près la même chose au lever.
la phase de calibration est issue de l’exemple “Example8_SPO2.ino” ainsi que la partie mesure temps réel. j’utilise un module MAX30102.
Avez vous rencontrer ce problème ?
Merci pour vos réponses.
Joël