PulseOxyTracker

Nume: Dogaru Laurentiu

Grupa: 333CC

Introducere

  • Dispozitiv care masoara pulsul cardiac, nivelul de oxigen din sange si temperatura, calculand media valorilor din ultimele 15 secunde
  • Rezultatele sunt afisate pe un ecran LCD si trimise prin Bluetooth catre telefon
  • In acelasi timp, un buzzer si un LED vor simula bataile inimii
  • Scopul este simularea unui dispozitiv wearable care inregistreaza marimile mentionate, pe parcursul purtarii

Functionarea senzorului

Senzorul MAX30102, ca orice pulsoximetru optic si detector de puls, este format dintr-o pereche de LED-uri de intensitate inalta (RED - rosu si IR - infrarosu, ambele cu lungimi de unda diferite) si un fotodector. Lungimile de unda ale LED-urilor sunt 660 nm si 880 nm, respectiv.

Acesta functioneaza prin proiectarea ambelor raze de lumina pe deget sau lobul urechii (sau orice parte a corpului in care pielea este mai subtire, astfel incat lumina sa patrunda prin tesut) si masurarea cantitatii de lumina reflectata folosind un fotodetector. Aceasta metoda de detectare a pulsului prin lumina este numita si Fotopletismogramă.

Masurarea pulsului

Hemoglobina oxigenata (HbO2) in sangele arterial este capabila sa absoarba lumina infrarosie. Cu cat sangele este mai rosu (hemoglobina mai ridicata), cu atat este absorbita mai multa lumina infrarosie. Pe masura ce sangele circula prin deget la fiecare bataie a inimii, cantitatea de lumina reflectata se schimba si fotodetectorul debiteaza valori ce formeaza o forma de unda. Pe masura ce lumina este proiectata si output-urile fotodetectorului sunt citite, se obtin valori ale pulsului cardiac.

Pulsoximetria

Este bazata pe principiul ca valorile luminilor RED si IR absorbite variaza in functie de procentul de oxigen din sange. Sangele lipsit de oxigen absoarbe mai multa lumina rosie (660 nm), in timp ce sangele oxigenat absoarbe mai multa lumina infrarosie (880 nm). Prin masurarea proportiei dintre lumina rosie si infrarosie primita de fotodetector, se calculeaza nivelul de oxigen din sange (SpO2).

Descriere generală

Schema bloc

Workflow

  1. Dispozitivul este pornit si reda un mesaj de inceput pe LCD. Sta in aceasta stare pana la apasarea butonului.
  2. In urma apasarii butonului, o intrerupere externa este declansata, prin care sunt setate anumite flag-uri. Odata cu setarea flag-urilor, cu ajutorul unei intreruperi interne, se preiau date de la senzor timp de 15 secunde. Aceasta stare este semnalizata printr-un mesaj specific pe LCD. In plus, in timpul acestei stari, un buzzer si un LED simuleaza frecventa batailor inimii.
  3. Dupa citirea si prelucrarea datelor, rezultatele sunt afisate pe LCD si transmise prin Bluetooth.
  4. Procesul poate fi reluat prin apasarea butonului RESET inclus pe placuta.

Hardware Design

Lista piese:

  • Arduino Uno
  • LCD 1602
  • Modul serial cu Bluetooth HM-10
  • Modul de conversie I2C pentru interfata LCD1602
  • Modul puls si SpO2 MAX30102
  • buzzer
  • Breadboard
  • rezistente
  • led
  • cabluri
  • buton

Software Design

Mediu de dezvoltare

  • Arduino IDE - dezvoltarea codului si incarcarea acestuia pe placuta
  • draw.io - realizarea schemei bloc
  • Autodesk Eagle - realizarea schemei electrice

Biblioteci folosite

  • AltSoftSerial.h - comunicare seriala prin Bluetooth
  • LiquidCrystal_I2C.h - afisare pe LCD
  • Wire.h - comunicarea prin I2C cu senzorul si cu LCD-ul
  • MAX30105.h - prelucrarea datelor primite de la senzor

Functii implementate

  • beep() - functie care inlocuieste functia tone(), fara a folosi Timer2
  • lcd_print() - afiseaza rezultatele pe LCD
  • bluetooth_send() - trimite rezultatele prin bluetooth
  • setup() - activarea si configurarea intreruperilor, LCD-ului, modulului bluetooth, senzorului si afisarea pe LCD a mesajului initial
  • loop() - executarea instructiunilor specifice starii in care se afla dispozitivul, in functie de valoarea flag-urilor setate
  • ISR(PCINT2_vect) - tratarea intreruperii externe (apasarea butonului)
  • ISR(TIMER2_COMPA_vect) - tratarea intreruperii interne (masurarea a 15 secunde pentru preluarea datelor)

Rezultate Obţinute

Concluzii

  • Proiectul a ajutat la familiarizarea cu lucrul cu placile de dezvoltare, dar si cu consolidarea cunostintelor dobandite pe parcursul semestrului, combinand notiuni cuprinse in mai multe laboratoare

Download

Jurnal

27 Aprilie - Alegerea temei proiectului

7 Mai - Crearea paginii de wiki

18 Mai - Milestone hardware

25 Mai - Milestone software

30 Mai - PM Fair

Bibliografie/Resurse

pm/prj2023/dene/pulseoxytracker.txt · Last modified: 2023/05/30 23:06 by laurentiu.dogaru
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