Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Bande de santé - Un assistant intelligent pour les personnes âgées

Composants et fournitures

Infineon DPS310
× 1
Arduino Nano R3
× 1
Espressif ESP8266 ESP-01
× 1
Câbles de raccordement (générique)
× 1
Batterie LiPo 3,7 V
× 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE
Blynk

À propos de ce projet

Votre proche est âgé et vit seul ? Pas besoin de s'inquiéter. À l'aide du capteur de pression DPS310 d'Infineon, nous avons développé un assistant virtuel qui s'adapte parfaitement à votre bras sous la forme d'un bracelet, qui prend en charge ce travail fastidieux en laissant vos proches entre de bonnes mains !

"Les personnes âgées représentent actuellement environ 14,5% de la population américaine , et d'ici 2030, il y aura environ 74 millions de personnes âgées. Alors que les coûts des soins de santé augmentent et que des pressions sont exercées sur les établissements de santé pour qu'ils fournissent des soins adéquats, de nouvelles solutions pour gérer la santé des personnes âgées sont impératives."

Après une recherche rapide et après avoir vu les chiffres choquants, voici notre tentative d'aider les personnes âgées !

L'HISTOIRE

Cela fait quelques années que ma grand-mère souffre des premiers signes de la maladie d'Alzheimer et malheureusement son état semble se détériorer. Cela a entraîné une série de problèmes inattendus tels que

1) s'en aller travailler (même si on lui a conseillé de ne pas le faire)

2) sauter ses repas ou prendre parfois des repas doubles

3) ne pas faire ses exercices

Tout cela à cause du manque de mémoire et aussi de son ignorance de son état.

Cela a amené ma mère à devoir être avec elle presque toute la journée, sept jours par semaine. Cette tâche s'est avérée très fatigante et chronophage. C'est alors que nous avons eu l'idée de créer un assistant virtuel qui pourrait surveiller le comportement et les activités de ma grand-mère et, si nécessaire, pourrait également alerter un membre de la famille en cas d'urgence. Donner une pause à ma mère et en même temps garder le patient entre de bonnes mains !

COMPOSANTS DU SYSTÈME / CONCEPT

Bien que ce système se concentre principalement sur les problèmes rencontrés par un patient Alzheimer, nous avons inculqué de nombreux autres systèmes dans notre projet qui ont un impact sur la vie de tous les aînés en les aidant à franchir les obstacles de leur vie quotidienne de manière autonome.

L'une des principales caractéristiques du capteur de pression d'Infineon est sa taille ! Cela rend le composant clé portable et super polyvalent. Au coeur de notre système nous avons l'Arduino Nano qui est ensuite connecté au capteur de pression DPS310 via le bus I2C. Les actions et les comportements seront codés pour simuler le mouvement en direct du patient. À l'aide de ces graphiques ou valeurs, nous déterminons l'état du patient et alertons un membre en cas d'urgence. Les données générées seront ensuite représentées sur une petite application utilisant Blynk.

L'ensemble de ce système sera intégré dans un bracelet portable compact mais beau, intégrant cette technologie de manière transparente dans la vie du patient.

FONCTIONS ET CAPACITÉS

Voici les principales fonctions et mouvements que notre groupe pourra analyser/détecter :

Automne - des études montrent que le plus gros problème avec les aînés est qu'ils perdent l'équilibre et tombent. Souvent, les patients sont impuissants et ce n'est qu'après un certain temps que l'aide arrive. Cela pourrait être facilement évité avec le Health Band par la détection d'une chute soudaine de pression. Une fois détecté, un message est automatiquement envoyé aux proches, afin d'éviter que la blessure ne s'aggrave.

Exercice - pour les personnes âgées, il peut être assez difficile de les faire faire de l'exercice ou de se promener, même si cela les maintiendra en forme et en bonne santé. Nous avons pensé qu'un moyen de les motiver pourrait être de leur montrer le nombre de pas effectués ou le temps qu'ils ont passé à marcher, afin qu'ils aient quelque chose pour les pousser à faire de l'exercice.

Et dans le cas de ma grand-mère, les médecins lui ont dit de faire environ 1000 pas, elle est prête mais elle perd le compte. Un compteur l'aide aussi !

Une fois que le Health Band détecte un mouvement de « vague », il en déduit que le patient a commencé son exercice. De crête à crête ou de creux à creux marque un cycle. Au fur et à mesure que les pas sont effectués, le nombre de cycles est généré puis affiché, créant ainsi votre propre compteur de pas.

Fièvre - celui-ci est assez simple, le capteur donne également la température. La bande étant en contact avec le bras donne la température en direct du patient. Tout pic ou chute sera à nouveau alerté automatiquement par message aux proches.

État - informe les proches de l'état vivant du patient. Par exemple, si la bande de santé détecte peu de changements de pression, le patient pourrait être en train de dormir.

Nous avons trois états :Sommeil, Éveillé et Exercice. (cela dit, nous n'avons pas encore perfectionné cette fonction car parfois nous avons reçu de mauvais "états". Nous prévoyons également d'ajouter d'autres états)

CIRCUIT

Le puissant capteur DPS310 d'Infineon peut être synchronisé via Bluetooth avec une application. L'application génère des représentations visuelles en direct du capteur. Même s'il était utile, il avait ses limites pour notre concept.

Donc, pour puiser dans le flux de données du capteur, nous avons connecté un Arduino Nano, via le bus I2C. Cela nous a permis de calculer les données permettant de déduire les différents scénarios dans lesquels se trouvait le patient.

Une fois que nous avons réglé ce problème, nous avons connecté l'Arduino à un module WiFi ESP8266 lui donnant les moyens de communiquer avec une application mobile.

MISE EN PLACE

Avant de tout configurer, vous devrez ajouter des broches au capteur. Coupez deux longueurs de sept broches et soudez-les. Vous pouvez utiliser une planche à pain pour faciliter les choses.

  • Capteur de pression DPS310 vers Arduino Nano (I2C)

REMARQUE :l'orientation du capteur est comme illustré dans l'image

Broche 1 (SDA) sur capteur => Broche analogique 4 sur Arduino

Broche 2 (SCL) sur le capteur => Broche analogique 5 sur Arduino

Broche 8 (GND) sur capteur => GND sur Arduino

  • Arduino Nano vers ESP8266 (module WiFi)

REMARQUE :l'orientation du module est comme illustré dans l'image

Épingle 1 sur le module WiFi => Digital Pin 11 sur Arduino

Épingle 2 sur le module WiFi => Pin numérique 10 sur Arduino

Broche 7 (GND) sur module WiFi => GND sur Arduino

Broche 8 (Alimentation) sur module WiFi => 3v3 sur Arduino

FAIRE LE GROUPE

Tous les composants étant petits, s'adaptent parfaitement à votre poignet. Pour faire le groupe réel, nous avons utilisé Toile et Mousse pour encastrer les composants. Et puis du Velcro pour former les bretelles.

Pour réaliser votre DIY Health Band, commencez par découper de la mousse de la largeur de votre main. Disposez ensuite les différents capteurs, et découpez la taille finale. Arrondissez les bords pour lui donner un aspect plus soigné. Enfoncez les épingles dans la mousse (ce qui lui confère protection et adhérence) et insérez la batterie dans une petite fente.

Maintenant, retournez le bracelet et soudez les connexions, les broches devraient juste dépasser... Faites un test pour voir si tout fonctionne.

Ajoutez des bandes Velcro pour faire des sangles. Enveloppez la bande dans de la toile et collez-la avec de la colle chaude, cela donne une finition et une sensation soignées !

Comme nous n'avons pas d'imprimante 3D, nous prévoyons de mettre à niveau ce prototype à l'avenir avec une impression 3D qui aura des fentes parfaites pour tous les composants donnant un design ergonomique à notre bande de santé !

***Nous mettrons à jour ce projet, lorsque nous imprimerons notre modèle final imprimé en 3D, avec des images et des fichiers d'impression***

CODAGE DES DIVERS ALGORITHMES

Avant de commencer à programmer notre système, vous devrez installer certaines bibliothèques pour que le programme fonctionne. Les bibliothèques que vous devrez télécharger sont :

  • Bibliothèque de fils (Il est généralement livré pré-installé, il est responsable de la communication entre l'Arduino Nano et le capteur de pression DPS310) https://github.com/PaulStoffregen/Wire
  • Bibliothèque de capteurs de pression DPS310 https://github.com/Infineon/DPS310-Pressure-Sensor
  • Bibliothèque Blynk (pour que l'Arduino Nano puisse communiquer avec le cloud Blynk) https://github.com/blynkkk/blynk-library

Une fois que vous avez téléchargé chacune des bibliothèques, l'installation de chacune suit le même processus :ouvrez l'IDE Arduino et dirigez-vous vers esquisse (en haut de la fenêtre). Ensuite, dans la liste déroulante, cliquez sur inclure la bibliothèque . Cliquez ensuite sur ajouter une bibliothèque .ZIP . Accédez maintenant à l'endroit où vous avez stocké les fichiers que vous avez téléchargés et cliquez sur ouvrir. Répétez le processus pour les trois bibliothèques.

Vous pouvez maintenant essayer de télécharger le code d'essai et vérifiez s'il compile. Téléchargez-le sur votre Arduino Nano et assurez-vous d'obtenir des données en direct en ouvrant le moniteur série (représenté par l'icône du moniteur dans le coin supérieur droit de l'IDE).

Si cela fonctionne bien, téléchargez le code principal, vous pouvez alors commencer à créer votre application.

CONSTRUIRE L'APPLICATION

Pour nous connecter à Internet, nous utilisons une plate-forme pré-construite appelée Blynk, qui peut être téléchargée à partir du Play Store Android, lien ci-dessous. Il existe d'innombrables exemples sur la façon d'utiliser l'application avec l'Arduino qui sont tous disponibles en allant dans fichiers dans l'IDE Arduino, puis exemples et sous la liste Blynk.

Lien vers l'application blynk :https://play.google.com/store/apps/details?id=cc.

Nous avons utilisé l'application pour faire des représentations des données de manière conviviale.

Sélectionnez Arduino Nano comme votre micro contrôleur et comme ''type de connexion'' WiFi . Vous recevrez alors un mail du "auth token" que vous devrez saisir dans le code, (mentionné dans le code).

Nous avons ajouté plusieurs widgets tels qu'une Jauge pour représenter la température en direct, un Affichage de la valeur pour le compteur de pas et un écran LCD montrant l'état actuel. Ce sont les blocs de construction de base que vous pouvez ajouter de nombreuses autres fonctions pour d'autres cas spécifiques.

CONCLUSIONS, RÉUSSIES DANS L'ENSEMBLE !

Le projet comportait des erreurs et des lectures erronées. L'un était la température corporelle. lu par le HealthBand était de 36° Celsius (température du poignet) tandis que le thermomètre de qualité médicale l'indiquait à 36,8° Celsius (température des aisselles).

Nos algorithmes pour les étapes se sont avérés donner des comptes erronés au début, mais après plusieurs tentatives de modification, cela a fonctionné de manière assez précise. Un autre problème était dans la fonction de l'État. Nous avons ajouté plus de variables et d'instructions pour lui permettre de mieux comprendre d'autres états.

En fin de compte, nous avons pu résoudre les problèmes en recalibrant et le HealthBand a réussi à rassembler les données nécessaires. Ma grand-mère a été sans assistante ces deux dernières semaines et le groupe s'est très bien comporté !

Pour l'instant, les messages de chute ou de fièvre n'ont pas été testés car il n'y a pas eu de telles situations mais théoriquement, ils fonctionnent !

Cela a été un grand projet et peut être mis en œuvre assez facilement, nous espérons que ce groupe pourra sauver des vies et garder les personnes âgées entre de bonnes mains !

Code

  • Génération d'un test de données
  • HealthBand avec application Blynk
Génération d'un test de donnéesArduino
Une fois les différentes bibliothèques installées, lancez ce programme pour voir si tout fonctionne. Vous devriez recevoir un flux de données ou de valeurs en direct sur le moniteur série.
#include void setup(){ Serial.begin(9600); tandis que (!Série); //L'appel commence à initialiser ifxDps310 //Le paramètre 0x76 est l'adresse du bus. L'adresse par défaut est 0x77 et n'a pas besoin d'être fournie. //ifxDps310.begin(Wire, 0x76); //Utilisez plutôt la ligne commentée ci-dessous pour utiliser l'adresse I2C par défaut. ifxDps310.begin (fil); // REMARQUE IMPORTANTE // Si vous rencontrez le problème que le DPS310 indique une température d'environ 60 C alors qu'elle devrait être d'environ 20 C (température ambiante), vous pourriez avoir un IC avec un problème de fusible // Appelez la fonction suivante directement after begin() pour résoudre ce problème (ne doit être appelé qu'une seule fois après le démarrage) //ifxDps310.correctTemp(); //taux de mesure de température (valeur de 0 à 7) //2^temp_mr résultats de mesure de température par seconde int temp_mr =2; //taux de suréchantillonnage de température (valeur de 0 à 7) ///2^temp_osr mesures de température interne par résultat //Une valeur plus élevée augmente la précision int temp_osr =2; //taux de mesure de pression (valeur de 0 à 7) //2^prs_mr résultats de mesure de pression par seconde int prs_mr =2; //taux de suréchantillonnage de la pression (valeur de 0 à 7) //2^prs_osr mesures de pression interne par résultat //Une valeur plus élevée augmente la précision int prs_osr =2; //startMeasureBothCont active le mode arrière-plan //la température et la pression sont mesurées automatiquement //La haute précision et les taux de mesure élevés en même temps ne sont pas disponibles. //Consultez la fiche technique (ou les essais et erreurs) pour plus d'informations int ret =ifxDps310.startMeasureBothCont(temp_mr, temp_osr, prs_mr, prs_osr); //Utilisez plutôt l'une des lignes commentées ci-dessous pour mesurer uniquement la température ou la pression //int ret =ifxDps310.startMeasureTempCont(temp_mr, temp_osr); //int ret =ifxDps310.startMeasurePressureCont(prs_mr, prs_osr); if (ret !=0) { Serial.print("Init FAILED! ret ="); Serial.println(ret); } else { Serial.println("Init complete!"); }}boucle vide (){ car ​​non signé pressureCount =20; long int pression[pressionCount]; caractère non signé temperatureCount =20 ; long int temperature[temperatureCount]; //Cette fonction écrit les résultats des mesures continues dans les tableaux donnés en paramètres //Les paramètres temperatureCount et pressureCount doivent contenir les tailles des tableaux température et pression lorsque la fonction est appelée //Après la fin de la fonction, temperatureCount et pressureCount contenir le nombre de valeurs écrites dans les tableaux //Remarque : le Dps310 ne peut pas enregistrer plus de 32 résultats. Lorsque son tampon de résultats est plein, il n'enregistrera aucun nouveau résultat de mesure int ret =ifxDps310.getContResults(temperature, temperatureCount, pressure, pressureCount); if (ret !=0) { Serial.println(); Serial.println(); Serial.print("FAIL! ret ="); Serial.println(ret); } else { Serial.println(); Serial.println(); Serial.print(temperatureCount); Serial.println(" valeurs de température trouvées :"); for (int i =0; i  
HealthBand avec application BlynkArduino
Ceci est le programme final, quelques variables et seuils doivent être entrés manuellement pour que la bande de santé fonctionne bien, suivez les commentaires et effectuez les ajustements. Configurez les widgets sur l'application Blynk selon vos besoins et votre assistant devrait prendre vie !
#include #include #include #define BLYNK_PRINT Serialchar auth[ ] ="YourAuthToken";// Vos identifiants WiFi.// Définissez le mot de passe sur "" pour les réseaux ouverts.char ssid[] ="YourNetworkName";char pass[] ="YourPassword";const unsigned char pressureLength =50;unsigned char pressureCount =0;long int pressure[pressureLength];unsigned char temperatureCount =0;const unsigned char temperatureLength =50;long int temperature[temperatureLength];/*ces seuils changeront en fonction de l'endroit où vous vous trouvez actuellement, ces valeurs ont parfaitement fonctionné dans notre région côtière où les températures moyennes étaient de 34 degrés Celsius*/int pressureFallingThresh =1;int pressureSleepingThresh =4;int tempFeverThresh =39;int pressureJogThresh =5;void setup(){ Serial.begin(9600); Blynk.begin(auth, ssid, pass); tandis que (!Série); ifxDps310.begin (fil); int ret =ifxDps310.setInterruptPolarity(1) ; ret =ifxDps310.setInterruptSources (1, 0, 0); //effacer l'indicateur d'interruption en lisant ifxDps310.getIntStatusFifoFull(); int interruptionPin =3; pinMode(interruptionPin, INPUT); attachInterrupt(digitalPinToInterrupt(interruptPin), onFifoFull, RISING); //début d'une mesure continue comme avant int temp_mr =3; int temp_osr =2; int prs_mr =1; int prs_osr =3; ret =ifxDps310.startMeasureBothCont(temp_mr, temp_osr, prs_mr, prs_osr); if (ret !=0) { Serial.print("Init FAILED! ret ="); Serial.println(ret); } else { Serial.println("Init complete!"); }}boucle vide(){ Blynk.run(); Serial.println("boucle en cours"); retard (500); if (pressureCount ==pressureLength &&temperatureCount ==temperatureLength) { //print results Serial.println(); Serial.println(); Serial.print(temperatureCount); Serial.println(" valeurs de température trouvées :"); for (int i =0; i  tempFeverThresh){ fièvreEmail(); } Serial.println(" degrés Celsius"); } Serial.println(); Serial.print(pressionCount); Serial.println(" valeurs de pression trouvées :"); for (int i =0; i  

Schémas


Processus de fabrication

  1. Comprendre les normes de sécurité pour les appareils intelligents
  2. Stores intelligents
  3. IOT - Smart Jar utilisant ESP8266, Arduino et capteur à ultrasons
  4. Iron Man
  5. Trouvez-moi
  6. Comment mesurer la masse de la Terre à l'aide d'Arduino
  7. Trouver la rentabilité de la fabrication intelligente
  8. Logiciel pour l'usine intelligente :les avantages des logiciels indépendants du matériel
  9. La scie à ruban manuelle pour toutes les occasions