Smart Alzheimer-Begleiter: Arduino-basiertes Assistenzsystem
Komponenten und Materialien
- 1× Arduino MKR1000 (WLAN, kompakt)
- 1× Infineon Sensor Hub Nano (DPS310 Barometer, BLE)
- 1× Nokia 5110 LCD (84×48 px)
- 1× HC-05 Bluetooth-Modul (Master-Mode für Sensor Hub)
- 1× Breadboard
- 1× Jumper-Kabel
- 1× Taster 12 mm (Notruf)
- 1× Summer (Piezo)
- 1× FT1235 5 W Sender / FT1236 5 W Empfänger (für drahtloses Laden)
Werkzeuge
- Lötkolben
Apps & Dienste
- Arduino IDE
- Blynk (IoT-App, iOS/Android)
- IFTTT Maker/Webhooks (für SMS/Anruf/E-Mail)
Über das Projekt
Alzheimer-Patienten und Angehörige stehen vor großen Herausforderungen. Dieses tragbare System unterstützt bei:
- Tägliche Erinnerungen (Medikamente, Bewegung)
- Standorterkennung im Haus (Etage, Raum)
- Sturzerkennung (Druckänderung)
- Notruftaste
- Uhrzeit/Datum (Internet-synct)
- Geringe Kosten, einfache Bedienung
Funktionsweise
Der Infineon Sensor Hub Nano (DPS310) sendet Druck/Temperatur/Höhe per BLE. Da das System ohne Smartphone dazwischen funktionieren soll, koppelt ein HC-05 im Master-Modus fest an die MAC-Adresse des Sensor Hub. Der Arduino MKR1000 liest die Daten über Hardware-Serial (Serial1) vom HC-05.
HC-05 Konfiguration (AT-Modus)
- MAC-Adresse des Sensor Hub notieren (via Infineon Android App)
- HC-05 in AT-Modus versetzen (Taste gedrückt halten beim Einschalten – LED blinkt langsam)
- Befehle im Serial Monitor (9600 Baud, NL & CR):
AT+RMAAD // alle Pairings löschen
AT+CMODE=0 // feste Adresse
AT+ROLE=1 // Master
AT+BIND=1234,56,abcdef // MAC des Sensor Hub
AT+UART=115200,0,0 // Baudrate, 1 Stopbit, No Parity
Nach Neustart verbindet sich HC-05 automatisch mit Sensor Hub.
Datenparsing (Sensor Hub → Arduino)
Sensor sendet Stream: $1,t,36.93,1154206 (Temp), $1,p,997.68,... (Druck), $1,a,130.43,... (Höhe). Parsing per readStringUntil() + parseFloat():
void getSensorValues() {
String junk;
if (Serial1.available()) {
junk = Serial1.readStringUntil('\n');
junk = Serial1.readStringUntil('t'); t = Serial1.parseFloat();
junk = Serial1.readStringUntil('p'); p = Serial1.parseFloat();
junk = Serial1.readStringUntil('a'); a = Serial1.parseFloat();
junk = Serial1.readStringUntil('\n');
}
}
Blynk-Integration
Daten an Blynk-App senden (Virtual Pins V0–V2). Eventor-Widget für Erinnerungen (Pillen, Bewegung) → triggert Display-Anzeige + Summer. Webhook-Widget + IFTTT für SMS/Anruf/E-Mail bei Notfall.
Display (Nokia 5110 / u8g2-Lib)
- Standard: Uhrzeit (24 h) + Datum (via Blynk RTC-Widget, Internet-synct)
- Optional: Sensordaten (T, P, A) zur Diagnose
- Erinnerungen: „Zeit für Pillen!“, „Zeit für Bewegung!“
- Sturz: „Sturz erkannt!“
Einfacher Austausch gegen OLED (u8g2 unterstützt viele Displays).
Algorithmen
- Sturzerkennung: Höhenänderung Δa ≈ 0,7 m ± 0,2 m innerhalb 1 s → Sturz. Hinweis: Beschleunigungssensor würde Fehlalarme reduzieren.
- Etagen-Erkennung: Absoluter Höhenwert vs. Referenzwerte
- Temperaturalarm: > 45 °C → Brandwarnung (Sensor-Temp, nicht Körper)
Stromversorgung & Gehäuse
- LiPo an MKR1000 JST-Port
- Induktives Laden: FT1235 Sender (Dock) + FT1236 Empfänger → USB-Micro an MKR1000
- Gehäuse-Design (STL, nicht maßstabsgetreu) für Uhr-Formfaktor

Zukünftige Erweiterungen
- Echtes Gehäuse (3D-Druck/Lasercutter)
- Bluetooth 4.0 (BLE) statt HC-05
- DPS310 direkt an Arduino (kostengünstiger, ohne Sensor Hub)
- Beschleunigungssensor + Bewegungsmelder für robustere Sturz/Ortung
- Pulssensor
- OLED-Display
- Deep-Sleep für längere Akkulaufzeit
Code
1. AT-Commands Sketch (HC-05 Konfiguration)
char c = ' ';
void setup() {
Serial.begin(9600); Serial.println("Arduino mit HC-05 bereit");
Serial1.begin(38400); Serial.println("Serial1 gestartet 38400");
}
void loop() {
if (Serial1.available()) { c = Serial1.read(); Serial.write(c); }
if (Serial.available()) { c = Serial.read(); Serial.write(c); Serial1.write(c); }
}
2. Haupt-Sketch: Alzheimer's Assistant
Vollständiger Code mit BlynkTimer-Funktionen für: Sensoren lesen (1 s), Zeit anzeigen (3 s), Sturzerkennung, Erinnerungen (Eventor), Blynk-Sync. Konfigurierbare Schwellenwerte (FALL, CLEARANCE). Virtuelle Pins für Temp/Druck/Höhe/Eventor/Sturz.
Wichtige Funktionen: initSensorHub(), getSensorValues(), sendSensorValues(), checkIfFalling(), showTimeAndDate(), showPillReminder(), showExerciseReminder(), showFallMessage(), BLYNK_WRITE(vEVENTOR_PIN).
Herstellungsprozess
- TinyML Spracherkennung mit Edge Impulse auf Arduino Nano 33 BLE Sense
- Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
- ATtiny85 Mini-Arcade: Snake – Handheld OLED-Spielekonsole selbst bauen
- Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
- Audio-reaktive Schreibtischlampe mit Arduino Nano bauen
- Autonomes Gesichtsverfolgungs-Robotercar mit Arduino Nano & OpenCV
- Personal Healthcare Assistant (PHA) – Smarte IoT-Lösung für Community Health
- Kupfer-Galvanik-Projekt: Intelligentes System mit Arduino UNO bauen