Heart Monitor

Introducere

Proiectul consta in realizarea unui aparat ce masoara pulsul unei persoane cu ajutorul unui senzor si afiseaza valoarea sa pe un ecran. Conform unor valori de referinta prestabilite in functie de varsta utilizatorului, diverse LED-uri vor indica atat gradul in care se incadreaza valoarea masurata, cat si frecventa batailor inimii. Am ales acest proiect in urma analizarii functionalitatii bicicletei fitness cu senzori puls. Consider ca acest proiect este util deoarece masoara frecventa cardiaca si semnaleaza o valoare prea ridicata.

Descriere generală

Aparatul masoara pulsul unei persoane prin intermediul unui senzor. Valoarea va fi afisata pe un ecran de tip OLED. Utilizatorul va fi rugat sa isi introduca varsta pentru a fi calculata valoarea maxima pe care o poate avea pulsul. Un led RGB este folosit pentru a indica valoarea pulsului. De asemenea, doua led-uri, unul verde si unul rosu, trebuie sa se aprinda si sa se stinga concomitent cu bataile inimii. La un moment dat va functiona doar unul dintre cele 2, in functie de valoarea pulsului. Un buzzer va genera un zgomot daca valoarea pulsului depaseste valoarea maxima permisa.

Schema bloc

Hardware Design

Schema Electrica

Lista de piese

  • Arduino UNO
  • Senzor de Puls XD-58C
  • Breadboard
  • Ecran OLED
  • Rezistori 220 Ω
  • LED RGB
  • LED verde
  • LED rosu
  • Buzzer
  • fire tata-tata, mama-tata

Software Design

Pentru dezvoltarea software a proiectului am utilizat Arduino IDE. Bibliotecile utilizate sunt:

  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • Wire.h
  • SPI.h
  • avr/interrupt.h

Adafruit_GFX.h si Adafruit_SSD1306.h au fost necesare pentru display-ul OLED.

In cadrul implementarii am folosit convertorul analogic-digital(ADC), precum si intreruperi.

Initial, utilizatorul este rugat sa isi introduca varsta si este calculata valoarea maxima a pulsului pe care o poate avea si stocata in variabila globala max_pulse_value. Variabila heart_beat_val retine valoarea pe care o citeste senzorul de puls si se apeleaza functia find_threshold() care calculeaza pe baza ultimelor 10 valori citite anterior si stocate in vectorul sensor_values[] o limita superioara UPPER_THRESHOLD si o limita inferioara LOWER_THRESHOLD. Daca anterior a fost gasita o valoare mai mica decat limita inferioara, iar valoarea curenta este mai mare decat limita superioara, atunci am gasit o bataie de inima. Dupa fiecare interval de 60 de secunde se afiseazaz numarul de BPM calculat.

Rezultate Obţinute

Concluzii

Proiectul functioneaza asa cum mi-am propus initial. Cu toate acestea, a trebuit sa inlocuiesc senzorul de puls XD-58C cu unul de tip KY-039 ce se foloseste de un LED IR si un fototranzistor iar rezultatele pot fi influentate de lumina primita din jur.

Jurnal

  • 22 - 28 aprilie → achizitionare componente
  • 2 - 7 mai → testare componente
  • 8 - 22 mai → implementare parte software si hardware
  • 22 - 23 mai → finalizare proiect

Download

Bibliografie/Resurse

pm/prj2022/imacovei/heartmonitor.txt · Last modified: 2022/05/27 13:28 by oana_roxana.vrancea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0