Centre de santé portable : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
Ligne 6 : Ligne 6 :
 
  |titre = Centre de santé portable
 
  |titre = Centre de santé portable
 
  |cadre= Projets Réseaux Mobiles et Avancés
 
  |cadre= Projets Réseaux Mobiles et Avancés
  |equipe= Melvin GAULT, Raphael AMARANTE, Marcio IVAN, William SCHMITT
+
  |equipe= Melvin GAULT, Raphael CHYPRIADES JUNQUEIRA AMARANTE, Marcio Ivan DE OLIVEIRA COELHO FILHO, William SCHMITT
 
  |encadrants=[mailto:Franck.Rousseau@imag.fr Franck Rousseau]
 
  |encadrants=[mailto:Franck.Rousseau@imag.fr Franck Rousseau]
 
}}
 
}}

Version du 31 janvier 2020 à 01:37


Project schedule.png
Titre du projet Centre de santé portable
Cadre Projets Réseaux Mobiles et Avancés

Équipe Melvin GAULT, Raphael CHYPRIADES JUNQUEIRA AMARANTE, Marcio Ivan DE OLIVEIRA COELHO FILHO, William SCHMITT
Encadrants Franck Rousseau


Présentation

Introduction

Le cadre du cours "Réseaux Mobiles et Avancés" a pour objectif principal l'exploration et la compréhension de thèmes tels que l'IoT, et les implémentations de réseaux sans fil et mobiles. À ce titre, l'idée choisie pour le projet en tant que représentant de tous ces sujets est un centre de santé portable et personnel, visant à mesurer la fréquence cardiaque de l'utilisateur.

De manière générale, cela permettra une intégration d'un capteur via un microcontrôleur, d'une application mobile via Bluetooth et d'un serveur Web via Internet, ce qui rendra finalement un projet final qui traverse le spectre des sujets traités.

Contexte

L’idée d’un centre de santé portable et personnel qui lit la fréquence cardiaque de l’utilisateur n’est certes pas nouvelle, mais les moyens d’atteindre le résultat final sont différents, tant par la capture des données que par la présentation ultérieure des données.

La méthode choisie pour capturer les données était d'utiliser un capteur de pouls, pressé par l'utilisateur, émettant de la lumière et relisant son intensité, qui varie en fonction de le flux sanguin sur le bout des doigts de l'utilisateur. Les données brutes recueillies sont ensuite traitées afin de filtrer le bruit et de permettre une identification précise de la fréquence cardiaque de l'utilisateur en BPM (battement par minute), pour avoir l’information du capteur en fonction d’un graphique mais aussi avec les mesures compréhensibles à une personne. Enfin, ces données transformées sont envoyées via Bluetooth au portable de l'utilisateur.

L'application mobile à laquelle les données sont envoyées est une application Android qui présentera à l'utilisateur quelques options d'action. Parmi les actions autorisées, l'utilisateur pourra non seulement communiquer avec le capteur, mais aussi avec un serveur Web.

Ce dernier composant principal du projet, le serveur Web, expose une API REST permettant d'envoyer et de récupérer des mesures de fréquence cardiaque, et qui permet de stocker des mesures en continu, créant en fait un historique utilisateur, qui peut ensuite être utilisé pour explorer davantage la visualisation des données. Cette visualisation, à son tour, se fera via une application web.

De plus, il faut dire que la fonctionnalité est basique puisqu'il n'y a pas d'authentification ni de pagination, et que le front-end et les différents fichiers statiques sont également servis intégralement par le même serveur node, et non pas par un serveur Apache ou nginx.

Matériel utilisé

  • 1 Carte Arduino UNO
  • 1 Module bluetooth Arduino HC05
  • 1 Capteur PulseSensor (SEN-11574)
  • 1 cable USB-B
  • 7 fils

Architecture

Architecture
Architecture

L'architecture est l'intégration de trois composants principaux. Tout d'abord, il y a le microcontrôleur et le capteur qui capture le rythme cardiaque de l'utilisateur au bout de ses doigts. Ensuite, il y a l'application mobile Android qui, dans cette première instance du projet, sert à récupérer les données du microcontrôleur via Bluetooth, puis à les envoyer au serveur via une API REST. Et enfin, il y a le serveur, qui stocke les données et permet sa visualisation dans une page Web.

Tutoriel

Prérequis

Pour exécuter le code source, l'utilisateur doit déjà avoir installé les composants suivants avec leurs versions respectives:

  • nodejs: 10.x+
  • npm: 6.x+
  • mongodb: 3.x+

De plus, étant une application Android, l'utilisateur doit avoir à sa disposition un téléphone portable avec ce système d'exploitation.

Installation

L'installation est exécutée via la seule commande, qui installera toutes les dépendances nécessaires au fonctionnement de l'application :

npm install

Mode d'Utilisation

Pour exécuter le projet en mode production, la commande suivante démarrera le serveur :

npm start


Pour exécuter le projet en mode développement, qui permettra au serveur de redémarrer automatiquement lorsque des changements sont détectés, la commande suivante est utilisée :

npm run watch

API

Routes :

/

Page de visualisation de base, affiche un graphique linéaire avec toutes les données stockées dans la base de données.

/api/v0/healthmetric


POST :

Insère une nouvelle valeur pour une métrique donnée, par exemple:

{"variant": "cardfreq", "value": 65, "date": 8}

  • Variant: peut être l'un des 'cardfreq', 'spo2', 'respfreq', par défaut 'cardfreq'
  • Value: la valeur mesurée pour la métrique
  • Date: la date à laquelle la mesure a été prise (un entier signifie une date en millisecondes de l'époque Unix, mais il peut également recevoir un objet Date javascript)


GET :

Récupère la mesure de l'id :id dans un tableau de la structure mentionnée ci-dessus, utilisé pour construire le graphique.

/api/v0/healthmetric/:id


DELETE :

Supprime la mesure de l'id :id

Données

Le flux de données a déjà été expliqué dans les sections précédentes. Ici, ce n'est que sa présentation, d'abord sur l'application mobile, puis sur le web.

Rétrospective

Avantages

Un avantage qui est ressorti de ce projet est, bien sûr, que, bien que ce ne soit pas l'outil le plus précis du marché qui effectue cette tâche, il est beaucoup moins cher qu'un ECG (électrocardiographie).

De plus, le fait qu'il soit portable et personnel implique une relation beaucoup plus intime avec les données. Ils sont mis à jour automatiquement, quand et où l'utilisateur le souhaite, et ils sont stockés pour une utilisation ultérieure, que ce soit pour une régulation personnelle ou des consultations médicales.

Evolution

La version finale de ce projet a beaucoup de marge d'amélioration dans les développements futurs.

La plus évidente est une authentification de l'utilisateur, qui non seulement rendrait les données plus sécurisées, mais permettrait également une base de données plus complexe, stockant les résultats d'un grand nombre d'utilisateurs différents.

L'idée logique suivante est, bien sûr, de prendre en charge plusieurs capteurs sur le même réseau, ce qui permettrait également à plus d'utilisateurs, complétant ainsi l'amélioration précédente.

Ensuite, lorsque les améliorations sont liées à la robustesse de l'ensemble de l'application, un chemin évident consiste à ajouter un cache sur l'application mobile, afin de résister aux pannes de réseau.

Enfin, lors de l'amélioration de la flexibilité de l'application, contribuant à l'expérience utilisateur, il serait intéressant que l'utilisateur puisse changer l'adresse du serveur via l'application mobile.

Sources