Bouw een betrouwbare infrarode hartslagsensor met Arduino: stapsgewijze handleiding
Onderdelen en benodigdheden
| Arduino UNO | × | 1 |
| IR-zender (standaard) Je kunt ook een IR-proximitysensor gebruiken door de ontvanger te verwijderen of te blokkeren. |
× | 1 |
| IR-ontvanger (standaard) Verwijder deze keer de zender. |
× | 1 |
| USB-A naar Mini-USB kabel | × | 1 |
Apps en online services
- Arduino IDE
Over dit project
Hoe dit tot stand kwam
De recente coronavirus-uitbraak heeft wereldwijde chaos veroorzaakt, de vraag naar medische instrumenten zoals ventilatoren is dramatisch gestegen, wat leidt tot schaarste. Er is een serieuze behoefte aan goedkopere apparatuur. Deze DIY-hartslagsensor kost minder dan 15 dollar en kan effectief worden gebruikt voor het detecteren van hartslagen en het realtime plotten ervan. De enige moeite is je vinger op de sensor leggen voor de metingen.
Werking
De werking berust op de differentiële ondoorzichtigheid van een object (in dit geval de vinger) in aanwezigheid van vloeistof erin (bloed). Wanneer het hart bloed pompt, is er meer bloed in de bloedvaten van de vinger, wat deze ondoorzichtiger maakt. Wanneer het bloed terugtrekt, is er minder bloed, de vinger wordt doorzichtiger. Door de ondoorzichtigheid van de vinger te meten kunnen we de curve plotten die varieert met de hoeveelheid bloed. Voor deze meting gebruiken we de IR-emitter en -ontvanger.
De IR-emitter zendt continu licht uit op de vinger, een deel wordt geabsorbeerd, een deel gereflecteerd, een deel getransmitteerd. We moeten de data plotten met deze zeer kleine hoeveelheid getransmitteerd licht (licht dat doorheen gaat). De detector aan de andere kant van de vinger detecteert deze kleine hoeveelheid getransmitteerd licht. De intensiteit varieert echter met de hoeveelheid bloed in de vinger, dus door de waarden van de detector te plotten krijgen we de realtime plot van de hartslag van de persoon.
De uitvoerplot kan bekeken worden in de seriële plotter van de Arduino IDE.
Nauwkeurigheid: data filteren voor ruiswaarden
Dit omvat het verwijderen van fouten in sensorwaarden door omgevings-IR-straling, afgestraald door veel objecten, zelfs ons! De Arduino berekent van tevoren het gemiddelde ruiswaarde en trekt dit af om de originele, nauwkeurige waarden te krijgen. Dit gebeurt met de volgende code:
// Voor debugging
for(int i=0; i<5; i++) {
reading = reading + analogRead(A0);
}
reading_final = reading / 5;
Gemiddelde ruiswaarde berekend.
delay(100);
Heart_rate = analogRead(A0) - reading_final;
Eindwaarde, veel nauwkeuriger. Vervolgens wordt de variabele Heart_Rate geplottet.
Sensorhardware opzetten
De sensor bestaat uit een IR-emitter en -ontvanger. Dit is het schakelingsschema voor de bedrading.
De hardware-opstelling ziet er als volgt uit:
Uitvoer
Hier is een korte video die de DIY-sensor demonstreert. De realtime plot van mijn hartslag wordt getoond. Klik op deze link: Video demonstratie.
******************************************************************************
Hier is een hack als je de benodigde materialen niet hebt:
Een IR-TV-of-andere-apparaat-remote kan ook als emitter dienen met een knop constant ingedrukt. En een lichtgevoelige weerstand (LDR) kan als ontvanger dienen, pas de drempel aan voor IR-detectie via datasheets van het internet.
******************************************************************************
Ik hoor graag van iedereen die dit project probeert. Verbetervoorstellen en ideeën voor nieuwe projecten zijn welkom in de reacties.
Code
heart_Beat_sensor_101/code
// 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 = reading + analogRead(A0);
}
reading_final = reading / 5;
delay(100);
Heart_rate = analogRead(A0) - reading_final;
Serial.println(Heart_rate);
}
Schema
Schema voor het aansluiten van de IR-ontvanger en -emitter aan de Arduino.
Productieproces
- Kunstmatig Hart: Technologie, Geschiedenis en Toekomstperspectieven
- Een DIY Infrarood Bewegingssensor Bouwen voor Raspberry Pi – Stapsgewijze Handleiding
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Temperatuur- en vochtigheidsdata overdragen tussen twee Arduinos via Firebase
- Bouw een DIY Photoshop-bedieningsconsole met Arduino Nano RP2040
- Arduino Uno Gebaseerde Mensendetectie Robot: Stap-voor-stap Sensorintegratie
- Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
- Real-time IoT hartslagmonitor met Arduino en MAX30100
- Bouw een Slimme IoT Pot met ESP8266, Arduino & Ultrasonische Sensor – Real-time Monitoring
- Bouw een Sensor Toren met Arduino Cloud: Temperatuur, Beweging & Gas Monitoring
- Real-time hartslag LED-visualisator aangedreven door ECG