Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Health Band - Ein intelligenter Assistent für ältere Menschen

Komponenten und Verbrauchsmaterialien

Infineon DPS310
× 1
Arduino Nano R3
× 1
Espressif ESP8266 ESP-01
× 1
Jumper (generisch)
× 1
3,7 V LiPo-Akku
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

Arduino-IDE
Blynk

Über dieses Projekt

Ist Ihr Liebling alt und lebt allein? Kein Grund zur Sorge. Mit dem Drucksensor DPS310 von Infineon haben wir einen virtuellen Assistenten entwickelt, der sich in Form eines Bandes um Ihren Arm schmiegt und diese zeitraubende Arbeit erledigt und Ihre Lieben in sicheren Händen lässt!

"Ältere Menschen repräsentieren derzeit etwa 14,5 % der US-Bevölkerung , und bis 2030 wird es etwa 74 Millionen ältere Menschen geben. Da die Gesundheitskosten eskalieren und der Druck auf die Gesundheitseinrichtungen ausgeübt wird, eine angemessene Versorgung bereitzustellen, sind neue Lösungen für das Management der Seniorengesundheit unerlässlich."

Nach einer kurzen Suche und den schockierenden Zahlen ist dies unser Versuch, älteren Menschen zu helfen!

DIE GESCHICHTE

Meine Oma leidet seit einigen Jahren an den ersten Anzeichen von Alzheimer und leider scheint sich ihr Zustand zu verschlechtern. Dies führte zu einer Reihe unerwarteter Probleme wie

1) zur Arbeit wandern (obwohl ihr davon abgeraten wurde)

2) ihre Mahlzeiten auslassen oder manchmal doppelte Mahlzeiten einnehmen

3) macht ihre Übungen nicht

All dies aufgrund des Mangels an Gedächtnis und auch ihrer Unkenntnis ihres Zustands.

Dies führte dazu, dass meine Mutter fast den ganzen Tag bei ihr sein musste, sieben Tage die Woche. Diese Aufgabe erwies sich als sehr ermüdend und zeitaufwendig. Da kam uns die Idee, einen virtuellen Assistenten zu entwickeln, der das Verhalten und die Aktivitäten meiner Oma überwacht und bei Bedarf auch ein Familienmitglied im Notfall alarmiert. Meiner Mutter eine Pause geben und gleichzeitig den Patienten in sicheren Händen halten!

KOMPONENTEN IM SYSTEM / KONZEPT

Obwohl sich dieses System hauptsächlich auf die Probleme eines Alzheimer-Patienten konzentriert, haben wir in unserem Projekt viele andere Systeme entwickelt, die das Leben aller Älteren beeinflussen und ihnen helfen, die Hindernisse ihres täglichen Lebens unabhängig zu überwinden.

Eines der Hauptmerkmale des Drucksensors von Infineon ist seine Größe! Dies macht die Schlüsselkomponente tragbar und super vielseitig. Im Herzen unseres Systems haben wir den Arduino Nano, der dann über den I2C-Bus mit dem Drucksensor DPS310 verbunden wird. Aktionen und Verhaltensweisen werden codiert, um die Live-Bewegung des Patienten zu simulieren. Anhand dieser Grafiken oder Werte ermitteln wir den Zustand des Patienten und alarmieren im Notfall ein Mitglied. Die generierten Daten werden dann mit Blynk in einer kleinen App dargestellt.

Dieses gesamte System wird in ein kompaktes und dennoch gut aussehendes tragbares Band integriert, das diese Technologie nahtlos in das Leben des Patienten einfügt.

FUNKTIONEN UND FÄHIGKEITEN

Hier sind die wichtigsten Funktionen und Bewegungen, die unser Band analysieren/detektieren kann:

Herbst - Studien zeigen, dass das größte Problem bei älteren Menschen darin besteht, dass sie das Gleichgewicht verlieren und hinfallen. Patienten sind oft hilflos und erst nach einiger Zeit kommt Hilfe. Dies könnte mit dem Health Band durch die Erkennung eines plötzlichen Druckabfalls leicht vermieden werden. Sobald dies erkannt wurde, wird automatisch eine Nachricht an die Angehörigen gesendet, um eine Verschlimmerung der Verletzung zu verhindern.

Übung - Für alte Menschen kann es ziemlich schwierig sein, sie zu Bewegung zu bringen oder spazieren zu gehen, obwohl dies sie fit und gesund hält. Wir dachten, dass eine Möglichkeit, sie zu motivieren, darin bestehen könnte, ihnen die Anzahl der Schritte oder die Zeit, die sie gelaufen sind, zu zeigen, damit sie etwas haben, das sie zum Training antreibt.

Und im Fall meiner Oma haben die Ärzte ihr gesagt, dass sie ungefähr 1000 Schritte gehen soll, sie ist bereit, aber sie zählt nicht mehr. Eine Theke hilft ihr auch!

Sobald das Gesundheitsband eine "Wellen"-Bewegung erkennt, leitet es daraus ab, dass der Patient mit seiner Übung begonnen hat. Kamm zu Kamm oder Tal zu Tal markiert einen Zyklus. Wenn Schritte ausgeführt werden, wird die Anzahl der Zyklen generiert und dann angezeigt, um Ihren eigenen Schrittzähler zu erstellen.

Fieber - Dieser ist ziemlich einfach, der Sensor gibt auch die Temperatur an. Das in Kontakt mit dem Arm befindliche Band gibt die Live-Temperatur des Patienten an. Eventuelle Spitzen oder Tropfen werden wieder automatisch per Nachricht an die Angehörigen gewarnt.

Bundesland - teilt den Angehörigen den Lebenszustand des Patienten mit. Wenn das Gesundheitsband beispielsweise keine großen Druckänderungen erkennt, könnte der Patient schlafen.

Wir haben drei Zustände:Schlafen, Wachen und Trainieren. (allerdings haben wir diese Funktion noch nicht perfektioniert, da wir manchmal falsche "States" erhalten haben. Wir planen auch, weitere Staaten hinzuzufügen)

KREIS

Der leistungsstarke DPS310-Sensor von Infineon lässt sich per Bluetooth mit einer App synchronisieren. Die App generiert visuelle Live-Darstellungen des Sensors. Obwohl es nützlich war, hatte es seine Grenzen für unser Konzept.

Um den Datenstrom des Sensors anzuzapfen, haben wir einen Arduino Nano über den I2C-Bus angeschlossen. Dies ermöglichte es uns, die Daten zu berechnen, die es ermöglichten, verschiedene Szenarien abzuleiten, in denen sich der Patient befand.

Nachdem wir das geklärt hatten, verbanden wir das Arduino mit einem ESP8266-WLAN-Modul, das ihm die Möglichkeit gab, mit einer mobilen App zu kommunizieren.

EINRICHTEN

Bevor Sie alles einrichten, müssen Sie dem Sensor Pins hinzufügen. Schneiden Sie zwei Längen von sieben Stiften ab und löten Sie sie an. Sie können ein Steckbrett verwenden, um die Dinge zu vereinfachen.

  • Drucksensor DPS310 zu Arduino Nano (I2C)

HINWEIS :die Ausrichtung des Sensors ist wie im Bild gezeigt

Pin 1 (SDA) am Sensor => Analog Pin 4 auf Arduino

Pin 2 (SCL) am Sensor => Analog Pin 5 auf Arduino

Pin 8 (GND) am Sensor => GND auf Arduino

  • Arduino Nano zu ESP8266 (WiFi-Modul)

HINWEIS :die Ausrichtung des Moduls ist wie im Bild gezeigt

Pin 1 am WiFi-Modul => Digital Pin 11 auf Arduino

Pin 2 am WiFi-Modul => Digital Pin 10 auf Arduino

Pin 7 (GND) am WLAN-Modul => GND auf Arduino

Pin 8 (Strom) auf WiFi-Modul => 3v3 auf Arduino

MACHEN SIE DIE BAND

Alle Komponenten sind klein und passen perfekt an Ihr Handgelenk. Um die eigentliche Band zu erstellen, haben wir Canvas verwendet und Schaum um die Komponenten einzubetten. Und dann Klettverschluss, um die Riemen zu bilden.

Um Ihr DIY-Gesundheitsband herzustellen, schneiden Sie zunächst den Schaumstoff auf die Breite Ihrer Hand. Ordnen Sie dann die verschiedenen Sensoren an und schneiden Sie die endgültige Größe aus. Runden Sie die Kanten ab, um ein ordentlicheres Aussehen zu erzielen. Drücken Sie die Stifte in den Schaumstoff (um ihn zu schützen und zu greifen) und betten Sie den Akku in einen kleinen Schlitz ein.

Drehen Sie nun das Band um und löten Sie die Anschlüsse, die Pins sollten nur herausragen ... Machen Sie einen Testlauf, um zu sehen, ob alles funktioniert.

Fügen Sie Klettstreifen hinzu, um Riemen zu machen. Wickeln Sie das Band in Segeltuch und kleben Sie es mit Heißkleber fest, das sorgt für ein sauberes Finish und ein angenehmes Gefühl!

Da wir keinen 3D-Drucker haben, planen wir, diesen Prototyp in Zukunft mit einem 3D-Drucker aufzurüsten, der perfekte Steckplätze für alle Komponenten hat, die unserem Gesundheitsband ein ergonomisches Design verleihen!

***Wir werden dieses Projekt aktualisieren, wenn wir unser endgültiges 3D-Druckmodell mit Bildern und Druckdateien drucken***

KODIEREN DER VERSCHIEDENEN ALGORITHMEN

Bevor wir mit der Programmierung unseres Systems beginnen, müssen Sie bestimmte Bibliotheken installieren, damit das Programm funktioniert. Die Bibliotheken, die Sie herunterladen müssen, sind:

  • Drahtbibliothek (In der Regel vorinstalliert, dieser ist für die Kommunikation zwischen Arduino Nano und DPS310 Drucksensor zuständig) https://github.com/PaulStoffregen/Wire
  • Drucksensorbibliothek DPS310 https://github.com/Infineon/DPS310-Drucksensor
  • Blynk-Bibliothek (damit der Arduino Nano mit der Blynk Cloud kommunizieren kann) https://github.com/blynkkk/blynk-library

Nachdem Sie jede der Bibliotheken heruntergeladen haben, folgt die Installation für jede dem gleichen Vorgang:Öffnen Sie die Arduino IDE und gehe zu Skizze (oben im Fenster). Klicken Sie dann in der Dropdown-Liste auf Bibliothek einschließen . Klicken Sie anschließend auf ZIP-Bibliothek hinzufügen . Navigieren Sie nun zu dem Ort, an dem Sie die heruntergeladenen Dateien gespeichert haben, und klicken Sie auf öffnen. Wiederholen Sie den Vorgang für alle drei Bibliotheken.

Jetzt können Sie versuchen, den Testcode herunterzuladen und überprüfen Sie, ob es kompiliert. Laden Sie es auf Ihren Arduino Nano hoch und stellen Sie sicher, dass Sie Live-Daten erhalten, indem Sie den seriellen Monitor öffnen (angezeigt durch das Monitorsymbol in der oberen rechten Ecke der IDE).

Wenn das gut funktioniert, laden Sie den Hauptcode hoch, und Sie können dann mit der Erstellung Ihrer App beginnen.

ERSTELLEN DER APP

Um eine Verbindung zum Internet herzustellen, verwenden wir eine vorgefertigte Plattform namens Blynk, die aus dem Android Play Store heruntergeladen werden kann, Link unten. Es gibt unzählige Beispiele für die Verwendung der App mit dem Arduino, die alle unter Dateien verfügbar sind in der Arduino IDE, dann Beispiele und unter der Blynk-Liste

Link zur blynk-App :https://play.google.com/store/apps/details?id=cc.

Wir haben die App verwendet, um eine benutzerfreundliche Darstellung der Daten zu ermöglichen.

Wählen Sie Arduino Nano als Ihr Mikrocontroller und als ''Verbindungstyp'' WiFi . Sie erhalten dann eine E-Mail mit dem "Auth-Token", den Sie im Code eingeben müssen (im Code erwähnt).

Wir haben mehrere Widgets hinzugefügt, wie zum Beispiel ein Messgerät um die Live-Temperatur darzustellen, eine Wertanzeige für den Schrittzähler und ein LCD-Display zeigt den gegenwärtigen Zustand. Dies sind die Grundbausteine, denen Sie viele weitere Funktionen für andere spezielle Fälle hinzufügen können.

SCHLUSSFOLGERUNGEN, IM GANZEN ERFOLGREICH!

Das Projekt hatte einige Fehler und Fehlinterpretationen. Einer war die Körpertemperatur. Die vom HealthBand gemessene Temperatur betrug 36° Celsius (Handgelenktemperatur), während das medizinische Thermometer 36,8° Celsius (Achseltemperatur) anzeigte.

Unsere Algorithmen für die Schritte erwiesen sich anfangs als falsch, aber nach mehreren Änderungsversuchen funktionierte es ziemlich genau. Ein weiteres Problem lag in der Staatsfunktion. Wir haben weitere Variablen und Anweisungen hinzugefügt, um andere Zustände besser zu verstehen.

Am Ende konnten wir die Probleme durch eine Neukalibrierung beheben und das HealthBand sammelt erfolgreich die benötigten Daten. Meine Oma war die letzten zwei Wochen ohne Assistentin und die Band hat super geklappt!

Bisher wurden die Sturz- oder Fiebermeldungen nicht getestet, da es solche Situationen nicht gegeben hat, aber theoretisch funktionieren sie!

Das war ein tolles Projekt und lässt sich relativ einfach umsetzen. Wir hoffen, dass diese Band Leben retten und alte Menschen in sicheren Händen halten kann!

Code

  • Test zum Generieren von Daten
  • HealthBand mit Blynk-Anwendung
Test zum Generieren von DatenArduino
Sobald die verschiedenen Bibliotheken installiert sind, führen Sie dieses Programm aus, um zu sehen, ob alles funktioniert. Sie sollten einen Livestream von Daten oder Werten auf dem seriellen Monitor erhalten.
#include void setup(){ Serial.begin(9600); while (!Seriell); //Aufruf beginnen zu initialisieren ifxDps310 //Der Parameter 0x76 ist die Busadresse. Die Standardadresse ist 0x77 und muss nicht angegeben werden. //ifxDps310.begin (Draht, 0x76); //Verwenden Sie stattdessen die kommentierte Zeile unten, um die Standard-I2C-Adresse zu verwenden. ifxDps310.begin(Draht); // WICHTIGER HINWEIS // Wenn Sie das Problem haben, dass das DPS310 eine Temperatur von etwa 60 °C anzeigt, obwohl es etwa 20 °C (Raumtemperatur) sein sollte, haben Sie möglicherweise einen IC mit einem Sicherungsbitproblem // Rufen Sie die folgende Funktion direkt auf after begin() um dieses Problem zu beheben (muss nur einmal nach dem Start aufgerufen werden) //ifxDps310.correctTemp(); // Temperaturmessrate (Wert von 0 bis 7) //2^temp_mr Temperaturmessergebnisse pro Sekunde Int temp_mr =2; //Temperatur-Oversampling-Rate (Wert von 0 bis 7) //2^temp_osr interne Temperaturmessungen pro Ergebnis //Ein höherer Wert erhöht die Genauigkeit int temp_osr =2; // Druckmessrate (Wert von 0 bis 7) //2^prs_mr Druckmessergebnisse pro Sekunde Int prs_mr =2; //Drucküberabtastrate (Wert von 0 bis 7) //2^prs_osr interne Druckmessungen pro Ergebnis //Ein höherer Wert erhöht die Präzision int prs_osr =2; //startMeasureBothCont aktiviert den Hintergrundmodus //Temperatur und Druck werden automatisch gemessen //Hochpräzise und gleichzeitig hohe Messraten sind nicht verfügbar. //Konsultieren Sie das Datenblatt (oder Versuch und Irrtum) für weitere Informationen int ret =ifxDps310.startMeasureBothCont(temp_mr, temp_osr, prs_mr, prs_osr); //Verwenden Sie stattdessen eine der folgenden kommentierten Zeilen, um nur Temperatur oder Druck zu messen //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 abgeschlossen!"); }}void loop () { unsigned char pressureCount =20; langer int-Druck[pressureCount]; unsigned char temperatureCount =20; long int temperature[temperatureCount]; //Diese Funktion schreibt die Ergebnisse kontinuierlicher Messungen in die als Parameter übergebenen Arrays //Die Parameter temperatureCount und pressureCount sollen die Größen der Arrays temperature und pressure beim Aufruf der Funktion halten //Nach dem Ende der Funktion temperatureCount und pressureCount Halten Sie die Anzahl der in die Arrays geschriebenen Werte // Hinweis:Der Dps310 kann nicht mehr als 32 Ergebnisse speichern. Wenn der Ergebnispuffer voll ist, werden keine neuen Messergebnisse gespeichert int ret =ifxDps310.getContResults(temperature, temperatureCount, pressure, pressureCount); if (ret!=0) {Serial.println(); Serial.println(); Serial.print ("FAIL! ret ="); Serial.println (ret); aufrechtzuerhalten. Sonst {Serial.println(); Serial.println(); Serial.print (temperatureCount); Serial.println ( "Temperaturwerte gefunden:"); for (int i =0; i  
HealthBand mit Blynk-AnwendungArduino
Dies ist das letzte Programm, einige Variablen und Schwellenwerte müssen manuell eingegeben werden, damit das Gesundheitsband gut funktioniert, folgen Sie den Kommentaren und nehmen Sie die Anpassungen vor. Richten Sie die Widgets in der Blynk-App nach Ihren Bedürfnissen ein und Ihr Assistent sollte zum Leben erweckt werden!
#include #include #include #define BLYNK_PRINT Serialchar Auth[ ] ="YourAuthToken";// Ihre WLAN-Zugangsdaten.// Passwort für offene Netzwerke auf "" setzen.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];/*diese Schwellenwerte ändern sich je nachdem, wo Sie sich aktuell befinden Küstenregion, wo die Durchschnittstemperaturen 34 Grad Celsius*/int pressureFallingThresh =1;int pressureSleepingThresh =4;int tempFeverThresh =39;int pressureJogThresh =5;void setup () {Serial.begin (9600); Blynk.begin(auth, ssid, pass); while (!Seriell); ifxDps310.begin(Draht); int ret =ifxDps310.setInterruptPolarity(1); ret =ifxDps310.setInterruptSources(1, 0, 0); // Interrupt-Flag löschen durch Lesen von ifxDps310.getIntStatusFifoFull(); int InterruptPin =3; pinMode (interruptPin, INPUT); attachInterrupt(digitalPinToInterrupt(interruptPin), onFifoFull, RISING); // Start einer kontinuierlichen Messung wie zuvor 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 abgeschlossen!"); }}void loop () { Blynk.run (); Serial.println ("Schleife läuft"); Verzögerung (500); if (pressureCount ==pressureLength &&temperatureCount ==temperatureLength) {//Ergebnisse drucken Serial.println (); Serial.println(); Serial.print (temperatureCount); Serial.println ( "Temperaturwerte gefunden:"); for (int i =0; i  tempFeverThresh) { FieberEmail(); } Serial.println ("Grad Celsius"); } Serial.println(); Serial.print (pressureCount); Serial.println ( "Druckwerte gefunden:"); for (int i =0; i  

Schaltpläne


Herstellungsprozess

  1. Informationen zu den Sicherheitsstandards für intelligente Geräte
  2. Smart Blinds
  3. IOT - Smart Jar mit ESP8266, Arduino und Ultraschallsensor
  4. Iron Man
  5. Finde mich
  6. So misst man die Masse der Erde mit Arduino
  7. Arduino-Befeuchtersteuerung
  8. Finden der Amortisation für intelligente Fertigung
  9. Software für die smarte Fabrik:Die Vorteile hardwareunabhängiger Software
  10. Die manuelle Bandsäge für alle Fälle