DIY Infrarot-Herzschlag-Sensor mit Arduino: Schritt-für-Schritt-Anleitung
Komponenten und Zubehör
| Arduino UNO | × | 1 |
| IR-Sender (generic) Alternativ: IR-Näherungssensor, Empfänger entfernen/abdecken | × | 1 |
| IR-Empfänger (generic) Sender entfernen | × | 1 |
| USB-A auf Mini-USB Kabel | × | 1 |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Wie es dazu kam
Die Corona-Pandemie hat weltweit die Nachfrage nach Medizinprodukten (Beatmungsgeräte etc.) explodieren lassen – Mangelware. Günstige Alternativen sind dringend nötig. Dieser DIY-Herzschlagsensor kostet unter 15 $ und eignet sich zur Herzschlagerkennung mit Echtzeit-Plot. Einzige „Arbeit“: Finger auf den Sensor legen.
Funktionsweise
Grundlage: differentielle Undurchsichtigkeit des Fingers durch Blutvolumenänderungen. Beim Herzschlag pumpt Blut in die Fingergefäße → Finger wird undurchsichtiger (mehr Lichtabsorption). In der Diastole zieht Blut sich zurück → Finger durchlässiger. Durch Messung der Durchlässigkeit (Transmission) lässt sich die Herzschlagkurve ableiten.
Dafür nutzen wir IR-Emitter und -Empfänger.
Der IR-Emitter beleuchtet den Finger kontinuierlich. Teil wird absorbiert, reflektiert, transmittiert. Wir detektieren das winzige transmittierte Licht auf der Gegenseite. Dessen Intensität schwankt mit dem Blutvolumen → Plot der Detektorsignale = Echtzeit-Herzschlag.
Das Ausgangssignal wird im Serial Plotter der Arduino IDE angezeigt.
Präzision: Störwerte filtern
Umgebungs-IR-Strahlung (von Objekten, Körperwärme) verfälscht die Messung. Der Arduino mittelt vorab 5 „Junk“-Messungen und subtrahiert diesen Mittelwert von den eigentlichen Messwerten.
// Junk-Readings summieren (5x)
int reading = 0;
for (int i = 0; i < 5; i++) {
reading += analogRead(A0);
}
int reading_final = reading / 5; // Mittelwert = Störbasis
delay(100);
int Heart_rate = analogRead(A0) - reading_final; // Korrigierter Wert
Dann wird Heart_rate geplottet.
Sensor-Hardware aufbauen
Sensor = IR-Emitter + Empfänger. Verdrahtung:
Endgültiger Hardware-Aufbau:
Ausgabe
Kurzes Video demonstriert den Sensor: Echtzeit-Plot meines Herzschlags. Video ansehen.
Lifehack ohne Bauteile:
Eine IR-Fernbedienung (TV etc.) mit gedrückter Taste als Emitter nutzen. Als Empfänger einen LDR (lichtabhängigen Widerstand) verwenden, Schwellenwert für IR-Erkennung per Datenblatt einstellen.
Feedback, Verbesserungsvorschläge, neue Projektideen – immer willkommen in den Kommentaren!
Code
heart_Beat_sensor_101/code
Arduino
// code by YaSh
// Heart_Rate_Sensor code
int reading = 0;
int reading_final;
int Heart_rate;
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
}
void loop() {
for (int i = 0; i < 5; i++) {
reading += analogRead(A0); // 5x Junk summieren
}
reading_final = reading / 5; // Mittelwert
delay(100);
Heart_rate = analogRead(A0) - reading_final; // Korrigiert
Serial.println(Heart_rate); // Plotten
}
Schaltpläne
Schaltplan für IR-Empfänger und -Emitter am Arduino.
Herstellungsprozess
- Künstliches Herz: Technologie, Geschichte und Zukunftsperspektiven
- DIY Infrarot-Bewegungsmelder für Raspberry Pi – Schritt-für-Schritt-Anleitung
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Temperatur- und Luftfeuchtedaten zwischen zwei Arduinos via Firebase übertragen
- DIY Photoshop-Steuerkonsole mit Arduino Nano RP2040 bauen
- Arduino-Uno-Roboter zur Personenerkennung – Sensorintegration Schritt für Schritt
- Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
- Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
- Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
- Sensorturm mit Arduino Cloud: Temperatur, Bewegung & Gase überwachen