LoRa-fähiges COVID-19 Patienten-Monitoring für Remote Healthcare
Komponenten und Materialien
| The Things Network The Things Uno (LoRa Board) | 1 |
| The Things Network The Things Gateway (LoRa Gateway) | 1 |
| Maxim MAXREFDES117# Herzfrequenz & Pulsoximetrie Entwicklungsplattform | 1 |
| Seeed Grove Temperatursensor | 1 |
| Jumper-Wires (diverse) | 1 |
| DFRobot Gravity Digital Taster (Gelb) | 1 |
| Seeed Grove Vibrationssensor (SW-420) | 1 |
| Summer | 1 |
| LED (allgemein) | 1 |
| Seeed Grove BME680 (Temperatur, Feuchte, Druck, Gas) | 1 |
Benötigte Werkzeuge und Maschinen
- Heißklebepistole (allgemein)
- Lötkolben (allgemein)
Apps und Online-Dienste
- Android Studio
- Arduino Web Editor
- Amazon Web Services AWS IoT
- Microsoft Visual Studio Code Extension für Arduino
Über dieses Projekt
Zusammenfassung
Wir schlagen ein intelligentes Patienten-Monitoring-System vor, das den Gesundheitszustand von Patienten automatisch über sensorbasierte vernetzte Systeme überwacht. Speziell für COVID-19-Patienten entwickelt. Mehrere Sensoren erfassen biologische Parameter. Die relevanten Informationen werden an die IoT-Cloud weitergeleitet. Das System erkennt kritische Zustände durch Verarbeitung der Sensordaten und sendet sofort Push-Benachrichtigungen an Ärzte/Pflegepersonal sowie Krankenhausverantwortliche. Ärzte und Pfleger profitieren durch Fernüberwachung ohne persönliche Visiten. Angehörige erhalten begrenzten Zugriff.
Beschreibung
Als Hauptcontroller dient ein The Things UNO (LoRa-Entwicklungsboard). Es sammelt Patientengesundheitsdaten von diversen Sensoren (siehe Komponentenliste) und überträgt sie an das LoRa-Gateway (The Things Gateway). Das Gateway ist mit AWS Cloud verbunden. AWS IoT dient als IoT-Cloud-Plattform.
Hardware-Komponentenliste
(Bild im Originalprojekt)
Der Notfallzustand eines Patienten wird durch eine einfache mathematische Gleichung (Gleichung I) bestimmt, wobei Schwellenwerte in Tabelle 1 definiert sind.
Mobile & Desktop Anwendungen
Wir entwickelten eine Mobile App zur Visualisierung der Sensordaten. Verschiedene Charts und Gauges zeigen Echtzeit-Gesundheitsparameter. Ärzte/Pfleger können Patienten remote überwachen, ohne die ICU zu betreten. Durch die Intelligenz des Systems werden Push-Benachrichtigungen bei Notfällen gesendet (basierend auf Gleichung I). Krankenhausverantwortliche überwachen mehrere Patienten simultan über eine Web-basierte Cloud-Desktop-Anwendung – Effizienzsteigerung der ICU. Alle Apps visualisieren Echtzeitdaten via Gauges, Sparklines, Text etc.
Fazit
Das System ermöglicht Ärzten, Pflegern und Klinikverantwortlichen Echtzeit-Überwachung von ICU-Patienten – Effizienz- und Qualitätssteigerung. Riesiges Potenzial zur Erweiterung als Wearable für Remote-Überwachung älterer Menschen oder Babys.
Referenz
Uddin, M. S., Alam, J. B., & Banu, S. (2017). Real time patient monitoring system based on internet of things. ICAEE 2017, 516-521. DOI: 10.1109/ICAEE.2017.8255410
Code
Arduino Sketch (The Things UNO)
#include
#include
#include
#include
#include
// AppEUI & AppKey (platzhalter)
const char *appEui = "0000000000000000";
const char *appKey = "00000000000000000000000000000000";
#define loraSerial Serial1
#define debugSerial Serial
#define freqPlan REPLACE_ME // TTN_FP_EU868 oder TTN_FP_US915
int bpm, spo2;
float temp;
Adafruit_BME280 bme;
unsigned long currentMillis;
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t tsLastReport = 0;
void onBeatDetected() { /* Serial.println("Beat!"); */ }
void measured_pulse() {
pox.update();
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
bpm = pox.getHeartRate();
tsLastReport = millis();
}
}
TheThingsNetwork ttn(loraSerial, debugSerial, freqPlan);
void setup() {
loraSerial.begin(57600);
debugSerial.begin(9600);
while (!debugSerial && millis() < 10000);
debugSerial.println("-- STATUS");
ttn.showStatus();
debugSerial.println("-- JOIN");
ttn.join(appEui, appKey);
Serial.println(F("BME280 test"));
Serial.println("Initialisiere MAX30100");
pox.begin();
pox.setOnBeatDetectedCallback(onBeatDetected);
bool status = bme.begin();
if (!status) {
Serial.println("Kein gültiger BME280 Sensor gefunden, Verkabelung prüfen!");
while (1);
}
pinMode(7, OUTPUT);
pinMode(A0, INPUT);
pinMode(8, INPUT);
pinMode(6, INPUT);
}
void loop() {
debugSerial.println("-- LOOP");
int h_rate = analogRead(A0);
int button = digitalRead(8);
float temperature = pox.getTemperature();
spo2 = pox.getSpO2();
bpm = bpm;
float humidity = bme.readHumidity();
int movement = digitalRead(6);
byte payload[7];
payload[0] = highByte(bpm);
payload[1] = lowByte((int)temperature);
payload[2] = highByte((int)humidity);
payload[3] = lowByte(movement);
payload[4] = lowByte(spo2);
payload[5] = lowByte(button);
payload[6] = lowByte(h_rate);
debugSerial.print("Temperatur: "); debugSerial.println(temperature);
debugSerial.print("Feuchte: "); debugSerial.println(humidity);
debugSerial.print("BPM: "); debugSerial.println(bpm);
debugSerial.print("SPO2: "); debugSerial.println(spo2);
debugSerial.print("H_rate: "); debugSerial.println(h_rate);
debugSerial.print("Button: "); debugSerial.println(button);
debugSerial.print("Bewegung: "); debugSerial.println(movement);
ttn.sendBytes(payload, sizeof(payload));
delay(20000);
}
Schaltplan
Schaltplan als Bild verfügbar (siehe Originalprojekt).
Herstellungsprozess
- IoT Management meistern: Konnektivitäts- & Bandbreiten-Herausforderungen 2024 überwinden
- Eclipse Hono startet MongoDB-basiertes Device Registry – skalierbar, produktionsreif
- Sichere Device-Authentifizierung mit X.509-Zertifikaten in Eclipse Hono
- Fortschritte in der Medizintechnik verfolgen
- LM35-basiertes Temperatursteuerungssystem mit AT89S52 Mikrocontroller
- Internet of Things überwachen: Sichere, zuverlässige IoT-Netzwerke sicherstellen
- Warum Skalierung Profitabilität in NB-IoT- und LoRa-Netzwerken antreibt
- Zellulare Konnektivität treibt die Zukunft der Telemedizin
- 5 essenzielle Schritte zum Meistern von Account-Based Marketing
- Schlüsselfaktoren für die Entwicklung erfolgreicher Medizinprodukte