Pulsoximetru

Introducere

Proiectul consta intr-un dispozitiv de masurare a pulsului folosind un senzor si afisarea pulsului pe un ecran LCD, si aprinderea unui LED rosu de fiecare data cand este detectata o bataie a inimii.
Nivelul pulsului este afisat prin intermediul unor LED-uri RGB.

Descriere generală

Schema Bloc

  1. Arduino Uno R3
    • Mediaza fluzul de date intre senzor si LCD 16×2.
  2. Senzor Puls
    • Trimite o unda de lumina, la o frecventa cunoscuta prin deget, si masoara catitatea de lumina returnata cu ajutorul unui senzor.
  3. LCD-I2C
    • La inceput este afisat un mesaj care anunta utilizatorul ca poate sa puna degetul pe senzor pentru a incepe procesul de masurare a pulsului.
    • Afiseaza valoarea curenta a pulsului.
    • Daca pulsul are valori anormale, este afisat un mesaj care anunta utilizatorul ca nu utilizeaza corect senzorul si trebuie sa modifice pozitia degetului.
  4. LED Rosu
    • Se aprinde de fiecare data cand este detectata o bataie.
  5. LED-uri RGB
    • Reprezinta nivelul pulsului la un moment dat.
      1. Verde - Puls intre 60-100 BPM
      2. Galben - Puls intre 100-140 BPM
      3. Rosu - Puls intre 140-160 BPM
    • Daca este depasita valoarea de 160 BPM, cele 3 Led-uri se schimba toate in rosu si se aprind si se sting timp de 3 secunde.

Hardware Design

Lista de piese

Nume Numar piese
Arduino Uno R3 1
LED-Rosu 1
LED-uri RGB 3
LCD 1
Breadboard 1
Senzor Puls 1
Fire tata-tata
Fire mama-tata

Schema electrica

Conectare Senzor Puls

Senzorul de puls are 3 pini: VCC, GND si SIGNAL. Pinii VCC si GND se conecteaza la pinii corespunzatori de pe Arduino si pinul SIGNAL se conecteaza la pinul A0 de pe Arduino.

Conectare LCD-I2C

Ecranul LCD se conecteaza la Arduino folosind interfata seriala I2C, prin pinii GND, VCC, SDA, SCL care sunt legati la placuta Arduino. LCD-ul a venit cu modulul I2C conectat si nu a fost nevoie sa fac conexiunea cu pinii de la LCD, reducand numarul de pini folositi de pe Arduino.

Software Design

  • Limbaj de programare folosit: C
  • Mediu de dezvoltare si compilare: Arduino IDE

IMPLEMENTARE

Biblioteci folosite
  • LiquidCrystal_I2C.h - pentru LCD
  • PulseSensorPlayground.h - pentru Pulse Sensor
Program
  1. Inainte de Setup():
    • Initializare de variabile.
    • Setez valorile pentru amplitudine, threshold, peak si trough.
  2. Setup():
    • Seteaza senzorul sa citeasca un semnal la fiecare 2ms.
    • Initializeaza LCD- ul.
    • Seteaza pinul de Output pentru LED-ul Rosu si initializeaza LED-urile RGB.
  3. Loop():
    • Asteapta confirmarea ca a fost detetata o bataie si apeleaza functia BeatHappens().
  4. BeatHappens():
    • Verifica in ce interval se incadreaza pulsul si aprinde LED-urile RGB in functie de asta.
  5. setColorRGB():
    • Seteaza culoarea pentru un LED RGB.
  6. ISR():
    • Se citeste semnalul de la senzor si se calculeaza valoarea pentru puls.

Rezultate Obţinute

Am obtinut un dispozitiv care prin pozitionarea degetului pe un senzor intr-o anumita pozitie poate determina pulsul unei persoane si afiseaza valoarea pe un ecran LCD. In plus prin intermediul unui LED ulilizatorul poate sa vada fiecare bataie a inimii detectata dar si nivelul in care se incadreaza pulsul la momentul respectiv.

Place Finger Place Finger Correctly

BPM 60-100 BPM 100-140

BPM 140-160 BPM > 160

Video: https://youtu.be/7aDmEaxLYng

Concluzii

Proiectul este complet functional si poate fi folosit la masurarea pulsului.

Download

Bibliografie

pm/prj2021/agrigore/pulsoximetru.txt · Last modified: 2021/05/30 17:16 by mihai.godinel
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