Hur mäter jag hjärtfrekvensen med hjärtslagsensorn?
Hjärtfrekvens eller puls är den viktigaste parametern som mäts inom medicinområdet. Det finns två sätt på vilka hjärtfrekvensen kan mätas. Det ena är att manuellt kontrollera handleden med hjälp av ett stetoskop och gissa hjärtfrekvensen, den andra metoden är att använda en pulssensor. En pulssensor får några avläsningar av pulsen och skickar en elektrisk signal till mikrokontrollen, dessa avläsningar beräknas sedan och den exakta pulsfrekvensen visas.
Hur en pulssensor mäter pulsen?
Eftersom vi vet vad vi ska göra, så låt oss börja arbeta med det här projektet.
Steg 1: Samla in komponenterna
Att göra en lista över komponenter och studera hur dessa komponenter fungerar är det bästa tillvägagångssättet innan något projekt startas. Nedan följer de komponenter som kommer att användas i vårt projekt:
Steg 2: Att känna till de använda komponenterna
Eftersom vi har listan över apparater som vi ska använda. Låt oss nu se hur dessa komponenter fungerar.
Arduino Uno är ett mikrokontrollkort som används för att styra olika kretsar. Den använder en C-kod som ger instruktioner för att utföra en uppgift. Andra ersättare för detta mikrokontrollerkort som finns på marknaden är Arduino Nano, Node MCU, ESP32, etc.
SEN-11574 är en plug and play-pulsgivare som är integrerad med Arduino. Den har två sidor. På ena sidan placeras en led som avger ljus. Denna led ska placeras direkt på toppen av en ven. Som vi vet att volymen blod i venen är större när hjärtat pumpar, så när det finns mer blod i venen kommer mer ljus att reflekteras till sensorn. Denna förändring i ljuset som mottas av sensorn analyseras över tiden och hjärtfrekvensen mäts. På andra sidan av sensorn finns en krets som är ansvarig för förstärkning och brusavlägsnande av den mottagna signalen.
Steg 3: Montering av komponenterna
- Som vi vet att huden är en människokropp, är ibland fuktig eller fet. Detta kan resultera i kortslutning av sensorn som ger falska mätningar. Det är bättre att applicera ett lager av en vinylklistermärke på sensorns LED-sida för att förhindra att den blir fuktig på huden.
- När du har gjort detta, ta en bit svart vektortape och klistra in den på andra sidan av sensorn. Detta förhindrar ljus från omgivningen att avbryta sensorns ljus.
- Anslut nu Vcc och jordstift på sensorn till Arduino och sensorns analoga stift till A0 på Arduino.
Alla apparater är nu inställda och redo att användas. Vi sätter sensorn direkt på venen, antingen på fingret eller örat för att mäta hjärtfrekvensen.
Steg 4: Komma igång med Arduino
Om du inte har arbetat med Arduino IDE tidigare, oroa dig inte eftersom proceduren för att bränna en kod på mikrokontrollkortet med Arduino IDE ges nedan.
- När du har anslutit ditt Arduino-kort till din dator, gå till Kontrollpanelen> Hårdvara och ljud> Enheter och skrivare för att kontrollera namnet på porten som Arduino är ansluten till. Det är annorlunda på olika datorer.
- Öppna Arduino IDE och ställ in styrelsen som Arduino / Genuino UNO.
- Ställ nu in porten som du observerade tidigare på kontrollpanelen.
- Ladda ner koden nedan och öppna den. Bränn koden på ditt Microcontroller-kort genom att klicka på Ladda upp knapp.
Klicka här för att ladda ner koden.
Steg 5: Kod
Koden för att mäta pulsfrekvensen är lite lång och komplicerad. Någon del av koden förklaras nedan.
1. I början definieras alla stift som ska användas. Alla variabler som kommer att användas i olika funktioner och ISR (Interrupt Service Routine).
2. ogiltig installation () är en funktion där Pins är definierade för att användas som INPUT eller OUTPUT. baudhastighet ställs också in i denna funktion. Baudhastighet är den hastighet med vilken mikrokontrollern kommunicerar med andra komponenter. ISR kallas också för denna funktion.
3. ogiltig slinga ()är en funktion som löper kontinuerligt i en cykel. Här finns pulsfrekvensen och den bestämmer när den ska tona när ett hjärtslag hittas.
void loop () {serialOutput (); if (QS == true) {// Ett hjärtslag hittades // BPM och IBI har bestämts // Kvantifierat själv "QS" sant när arduino hittar ett hjärtslag fadeRate = 255; // Gör att LED-tonade effekten händer // Ställ in 'fadeRate' variabel till 255 för att blekna LED med puls serialOutputWhenBeatHappens (); // A Beat Happened, mata ut det till serie. QS = falskt; // återställ den kvantifierade självflaggan för nästa gång} ledFadeToBeat (); // Gör fördröjning av LED-blekningseffekten (20); // ta en paus }
4. ogiltig serialOutput ()är en funktion som bestämmer hur man ska visa utdata på den seriella bildskärmen.
ogiltig serialOutput () {switch (outputType) {case PROCESSING_VISUALIZER: sendDataToSerial ('S', Signal); // går till sendDataToSerial funktionsavbrott; fall SERIAL_PLOTTER: // öppna Arduino Serial Plotter för att visualisera dessa data Serial.print (BPM); Serial.print (","); Serial.print (IBI); Serial.print (","); Serial.println (Signal); ha sönder; standard: bryta; }}
5. ISR är ett avbrott som genereras av hårdvaran och skickas till CPU: n för bearbetning. när avbrottet genereras slutar processen, som redan pågår och avbrottet behandlas. efter att avbrottet har behandlats återupptas den tidigare processen.
void interruptSetup () {// KONTROLLERA Timer_Interrupt_Notes TABBEN FÖR MER PÅ AVBRYT #ifndef ESP32 // Initierar Timer2 för att kasta ett avbrott varannan ms. TCCR2A = 0x02; // INAKTIVERA PWM PÅ DIGITALA PINS 3 OCH 11 OCH GÅ IN I CTC-LÄGE TCCR2B = 0x06; // TÄCK INTE JÄMFÖR, 256 PRESCALER OCR2A = 0X7C; // INSTÄLL RÄKNATILLSTÅNDET TILL 124 FÖR 500Hz PROVTAL TIMSK2 = 0x02; // AKTIVERA AVBROTT PÅ MATCH MELLAN TIMER2 OCH OCR2A sei (); // SE TILL ATT GLOBALA AVBRYT ÄR AKTIVERAD // Skapa semafor för att informera oss om timern har avfyrat #else timerSemaphore = xSemaphoreCreateBinary (); // Använd första timern på 4 (räknat från noll). // Ställ in 80 avdelare för förkalkare (se ESP32 Technical Reference Manual för mer // info). timer = timerBegin (0, 80, true); // Bifoga onTimer-funktionen till vår timer. timerAttachInterrupt (timer, & onTimer, true); // Ställ in alarmet för att ringa på Timer-funktionen varje sekund (värde i mikrosekunder). // Upprepa timer (tredje parameter) timerAlarmWrite (timer, 2000, sant); // Starta en alarmtimerAlarmEnable (timer); #endif}
Tillämpningar:
Nu som vi vet hur man mäter pulsen med en pulssensor. Nu kan vi använda den för att skapa olika projekt till exempel
- Hälsoband.
- Ångestmonitor.
- Sömnspårning.
- Fjärrövervakning / larmsystem för patienter.
- Avancerade spelkonsoler