Sunteți pe pagina 1din 22

Sistem de achiziţie de date pentru monitorizarea stării de sănătate

4.5.1 Introducere

Modulul interfață e-Health permite utilizatorilor cu ajutorul platformelor de dezvoltare


Arduino și Raspberry Pi să realizeze aplicații biometrice și medicale prin monitorizarea unor
parametrii utilizând o rețea de corp cu 9 senzori diferiți. Senzorii oferă informaţiile specifice
fiecăruia, iar prin configurarea sistemului cu un anumit număr de senzori şi cu o anumită
structură a senzorilor putem crea mici aparate medicale, care ne permit să culegem şi să
procesăm informaţii care pot fi folosite clinic sau stocate pentru o analiză ulterioară.
Aceste informații pot fi folosite pentru a monitoriza în timp real starea unui pacient sau
pentru a obține date, în scopul de a fi analizate ulterior pentru un diagnostic medical corect.
Informațiile obţinute pot fi trimise wireless, folosind oricare din cele 6 opțiuni de conectivitate
disponibile: Wi-Fi, 3G, GPRS, Bluetooth, 802.15.4 și ZigBee, în funcție de aplicație.
În cazul în care este nevoie de diagnostic imagine în timp real un aparat foto poate fi atașat la
modulul 3G, în scopul de a trimite fotografii și clipuri video ale pacientului la un centru de
diagnostic medical. Datele pot fi trimise şi în Cloud, în scopul de a efectua stocarea permanentă,
sau vizualizate în timp real, prin trimiterea de date direct la un laptop sau un smartphone.
Aplicațiile pentru iPhone și Android au fost concepute cu scopul de a vedea cu ușurință
informațiile legate de starea pacientului.
Asigurarea intimității pacientului este unul dintre punctele cheie în acest tip de aplicații. Din
acest motiv, platforma include mai multe niveluri de securitate:
- In stratul de legătură de comunicații: AES 128 pentru 802.14.5/ZigBee și WPA2 pentru
Wifi.
- In stratul de aplicație: prin folosirea protocolului HTTPS (sigur) se asigură un canal de
securitate punct la punct între fiecare nod de senzor și serverul web (aceeași metodă care
este utilizată și în transferurile bancare).
Platforma de senzori e-Health a fost proiectată de către Cooking Hacks (divizia de hardware
deschisă de Libelium), în scopul de a ajuta cercetătorii și dezvoltatorii de astfel de echipamente
pentru a măsura datele biometrice pentru aplicații experimentale, de divertisment și de testare.
Cooking Hacks oferă o alternativă ieftină și deschisă față de soluțiile foarte scumpe de pe piața
medicală. Având în vedere că platforma nu are certificări medicale, ea nu poate fi folosită pentru
a monitoriza pacienții critici care au nevoie de supraveghere medicală specială sau cei ale căror
condiții trebuie să fie măsurate cu mare precizie pentru un diagnostic profesional ulterior.

4.5.2 Prezentarea componentelor hardware ale sistemului de achiziţie

Structura sistemului de achiziţie propus porneşte de la componentele paltformei eHealth


care permite conectarea celor nouă senzori. O structură posibilă a acestui sistem de achiziţie de
date este prezentată în figura 4.64. Sistemul are o structură tipică pentru achiziţia de date. Cei
nouă senzori asigură iformaţiile, care prin intermediul interfeţei eHealth sunt preluate de
platforma cu microcontroler Arduino şi furnizate spre un terminal PC pentru stocare şi/sau
analiză, sau prin conectivitatea WiFi pot fi transmise spre o bază de date . Interfaţa eHealth este
o interfaţă tipic medicală, fiind prevăzută cu circuite specifice care asigură pe lângă achiziţia
semnalelor şi siguranţa pacientului.
Figura 4.64. Structura sistemului de achiziţie pentru monitorizarea stării de sănătate

Modulul interfață pentru rețeaua de senzori de corp e-Health este compatibil cu


platformele mai vechi sau mai noi de Arduino versiunea cu USB, Duemilanove și Mega.
Modulul e-Health poate fi alimentat de la PC prin USB sau de la o sursă de alimentare
externă. Unele dintre porturile USB de pe calculatoare nu sunt în măsură să furnizeze curentul
necesar pentru ca modulul să lucreze. Dacă modul are probleme de funcționare, se poate folosi o
sursă de alimentare externă (12V - 2A) pentru un modul Arduino sau RasberryPi. Senzorii care
pot fi conectaţi la acest modul sunt:
- pulsoximetru pentru măsurarea pulsului și a conținutul de oxigen în sânge (SpO2);
- senzor pentru determinarea fluxului de aer care permite măsurarea ritmului respiratoriu;
- senzor de temperatură pentru măsurarea temperaturii corpului;
- senzor pentru răspunsul galvanic al pielii (GSR) care permite măsurarea rezistenței pielii
care este dependentă de nivelul transpirației;
- senzor pentru pentru tensiunea arterială(tensiometru) care permite măsurarea automată a
tensiunii arteriale;
- senzori ECG care permit măsurarea activităţii inimii (ridicarea electrocardiogramei);
- senzori EMG care permit măsurarea activității musculare(electromiograma);
- accelerometru care permite determinarea unor poziții ale pacientului;
- glucometru care permite măsurarea conținutului de glucoză din sânge.
O imagine a acestei rețele de senzori este prezentată în figura 4.65.

Figura 4.65. Rețeaua de senzori conținută de platform e-Health

Caracteristicile principale ale acestei aplicații sunt:


- Conține 8 senzori medicali neinvazivi și un sensor medical invaziv
- Permite memorarea și utilizarea măsurătorilor de glucoză din sânge
- Permite monitorizarea semnalului ECG.
- Permite monitorizarea semnalelor EMG.
- Permite măsurarea ritmului respiraţiei.
- Permite prelevarea de date legate de temperatura corpului.
- Permite efectuarea de măsurători legate de răspunsul galvanic al pielii.
- Permite detectarea poziției corpului.
- Permite monitorizarea pulsului și a conținutului de oxigen din sânge .
- Permite monitorizarea presiunii arteriale.
- Conține mai multe sisteme de vizualizare a datelor.
- Este compatibilă cu toate dispozitiv UART.
În figura 4.66 este prezentat modulul interfață e-Health și modul de conectare a senzorilor la
această platformă.

Figura 4.66. Modul de conectare a senzorilor la modulul interfață e-Health

Datorită unor limitări hardware în cazul folosirii platformei Arduino UNO, trebuiesc făcute
câteva observații privind modul de conectare a senzorilor la interfața e-Health:
- Modulul de afișare LCD și modulele tensiometru și comunicații folosesc portul UART
și nu pot lucra simultan.
- Glucometrul este compatibil cu alte dispozitive UART și are propriul conector, dar nu
poate lucra cu tensiometrul conectat.
- Senzorii EMG și ECG nu pot lucra simultan. Pentru a stabili care din ei lucrează sunt
utilizați jumperi integrați pe modul pentru a stabilii utilizarea tipului de senzori doriți.
Pentru a utiliza senzorul EMG, va trebui ca jumperii să fie în poziția EMG, iar pentru a
utiliza senzorul ECG, va trebui ca jumperii să fie în poziția ECG.
Unele din aceste limitări pot fi eliminate prin folosirea unor platforme cu microcontroler mai
puternice, care pot asigura o mai mare conectivitate.

4.5.3 Aplicația software pentru achiziţia de date

Platforma de senzori e-Health lucrează cu o bibliotecă C ++ care ne permite să citim cu


ușurință toți senzorii și să transmitem informațiile prin utilizarea oricarei dintre interfețele radio
disponibile. Această bibliotecă oferă un sistem open source simplu de utilizat. Pentru a asigura
același cod care să fie compatibil în ambele platforme (Arduino si Raspberry Pi), sunt folosite
bibliotecile ArduPi care permit dezvoltatorilor să utilizeze același cod. Trebuie să descărcăm
biblioteca în funcție de data achiziționării sistemului în special pentru senzorul pusoximetru.
Software-ul platformei e-Health include funcții de bibliotecă la nivel înalt pentru o gestionare
uşoară a sistemului. Toate fișierele necesare sunt grupate în două foldere separate, "e-Health" și
"PinChangeInt". Biblioteca "PinChangeInt" este necesară numai atunci când utilizăm senzorul
pulsoximetru. Aceste foldere trebuiesc copiate în folderul Arduino IDE " libraries ".
Bibliotecile sunt deseori distribuite ca un fișier sau un folder ZIP. Numele folderului este numele
bibliotecii. În interiorul folderului sunt fișierele .cpp, fișierele .h și de multe ori un fișier
keywords.txt, folderul Exemple, precum si alte fișiere cerute de bibliotecă.
Pentru a instala biblioteca, mai întâi trebuie să ieșim din aplicația Arduino și apoi decomprimăm
fișierul ZIP care conține biblioteca. Pentru instalarea bibliotecii e-Health ,trebuie să
decomprimăm fișierul e-Health.zip. Acesta conține un folder numit "e-Health", cu fișierele,
eHealth.cpp și eHealth.h în interior și un folder numit "PinChangeInt". Tragem folderele e-
Health și PinChange în acest dosar (folderul biblioteci). Sub Windows, acesta va fi numit "My
Documents \ Arduino \ libraries". Pentru utilizatorii de Mac, acesta va fi numit "Documents /
Arduino / libraries". Pe Linux, acesta va fi folderul " libraries" în sketchbook. Biblioteca nu va
funcționa dacă punem fișierele .cpp și .h direct în folderul "libraries" sau dacă acestea sunt
ascunse într-un dosar suplimentar.După această operațiune repornim aplicația Arduino și ne
asigurăm că noua bibliotecă apare în elementul de meniu Sketch->Import Librarya software-ului.
Funcțiile generale ale platformei e-Health sunt legate de funcționarea celor nouă senzori
conținuți de platform eHealth și sunt folosite de software-ul Arduino.

 Funcțiile senzorului pulsoximetru


initPulsioximeter () // Inițializează senzorul pulsoximetru.
readPulsioximeter () // Se citește o valoare de la senzorul pulsoximetru.
getBPM () // Returnează bătăile inimii /minut.
getOxygenSaturation () // Returnează saturația de oxigen din sânge în procente.

 Funcția senzorului ECG


getECG () // Returnează o valoare analogică pentru a reprezenta electrocardiograma.

 Funcția senzorului EMG


getEMG () // Returnează o valoare analogică pentru a reprezenta electromiograma.

 Funcțiile senzorului pentru respirație


getAirFlow () // Returnează o valoare analogică pentru a reprezenta ritmul respirației.
airFlowWave () // Tipărește forma de undă a ritmului respirației pe monitorul serial.
 Funcția senzorului pentru temperatură
getTemperature() // Returnează valoarea temperaturii corpului.

 Funcțiile senzorului pentru tensiunea arterială


initBloodPressureSensor () // Inițializează și măsoară senzorul pentru tensiunea arterială.
getBloodPressureSensor () // Returnează datele stocate în senzorul pentru tensiunea arterială.

getSystolicPressure (i) // Returnează valoarea tensiunii arteriale sistolice i.


getDiastolicPressure (i) // Returnează valoarea tensiunii arteriale diastolice i.

 Funcțiile senzorului pentru determinarea poziției corpului


initPositionSensor () // Inițializează senzorul pentru poziția corpului.
getBodyPosition () // Returnează un număr care reprezintă poziția corpului.
printPosition () // Tipărește poziția corpului curentă.

 Funcțiile senzorului GSR


getSkinConductance () // Returnează valoarea conductanței pielii.
getSkinResistance () // Returnează valoarea rezistenței pielii.
getSkinConductanceVoltage () // Returnează valoarea conductanței pielii în valoare de tensiune.

 Funcțiile senzorului glucometru


readGlucometer () // Citește valorile stocate în glucometru.
GetGlucometerLength () // Returnează numărul de date stocate în glucometru.
numberToMonth () // Conversia variabilei referitoare la lună din numeric în caracter.

4.5.4 Achiziţia de date de la senzori


Așa cum am precizat mai sus în această aplicație folosim opt senzori neinvazivi și un
sensor invaziv. În continuare sunt prezentate caracteristicile, principiile de funcționare și modul
de achiziție a datelor de la cei nouă senzori.

4.5.4.1. Măsurarea temperaturii corpului uman


În medicină, măsurarea temperaturii este de o foarte mare importanță. Motivul este, că un
număr mare de afecțiuni au ca efect schimbarea temperaturii corpului. De asemenea, parcursul
anumitor boli poate fi monitorizată prin măsurarea temperaturii corpului, iar eficiența unui
tratament inițiat poate fi evaluat de medic. Temperatura corpului depinde de locul din organism
la care se face măsurarea, ora din zi și nivelul de activitate al persoanei. Temperatura medie, de
baza acceptată (luată intern) este de 37.0 ° C (98.6 ° F). Stările posibile ale organismului uman în
funcţie de temperature corpului sunt:
- Hipotermie <35.0 °C (95.0 °F)
- Normal  36.5–37.5 °C (97.7–99.5 °F)
- Febra sau hipertermie >37.5–38.3 °C (99.5–100.9 °F)
- Hiperpirexie >40.0–41.5 °C (104–106.7 °F)

Precizia senzorului de temperatură este cam aceeași în majoritatea aplicațiilor, dar putem mări
această precizie cu ajutorul unui proces de calibrare. Când folosim senzorul de temperatură, de
fapt măsurăm o tensiune. Dacă putem evita erorile în măsurarea tensiunii și putem reprezenta
relația dintre tensiune si temperatură cu mai mare precizie, vom putea obține rezultate termice
mai exacte. Calibrarea este un proces de măsurare a tensiunii si a valorii reale a rezistenței. În
fişierul eHealth.cpp, putem găsi funcția de achizţie a temperaturii. Valorile [Rc, Ra, Rb,
RefTensiune] sunt implicit definite într-un mod imprecis. Circuitul de adaptare conținut în
platforma interfaţă este prezentat în figura 4.67.
Figura 4.67. Senzorul de temperatură şi circuitul de adaptare pentru măsurarea temperaturii
Pentru măsurarea temperaturii, se conectează senzorul în conectorul jack. Trebuie avut
grijă ca să avem un contact bun între partea metalică și pielea pacientului, eventual se poate
folosi o bucată de bandă adezivă pentru a ține senzorul lipit de piele. Secvenţa de cod pentru
citirea temperaturii este:

float temperature = eHealth.getTemperature();


Serial.print("Temperature (ºC): ");
Serial.print(temperature, 2);
Serial.println("");

4.5.4.2. Măsurarea tensiunii arteriale.


Tensiunea arterială este inregistrată ca 2 numere: presiunea sistolică (așa cum bate inima)
si presiunea diastolică (așa cum inima se relaxează intre bătăi). Monitorizarea presiunii arteriale
de acasă este foarte importantă pentru o mulțime de oameni, în special pentru cei care au o
tensiune arterială ridicată. Tensiunea arterială nu rămâne la fel tot timpul, ea se modifică in
funcție de nevoile organismului. Este afectată de diferiți factori, incluzând poziția corpului,
respirația sau stările emoționale, exercițiile sau somnul. Este cel mai bine să măsurăm tensiunea
arterială atunci când subiectul este relaxat si stă jos sau întins. În vederea comparării datelor
achiziţionate cu anumite limite cunoscute, prezint clasificarea tensiunii arteriale pentru adulți în
tabelul 1.
Tabelul 4.3. Clasificarea tensiunii arteriale
  Sistolică (mm Hg) Diastolică (mm Hg)
Hipotensiune < 90 < 60
Dorită 90–119 60–79
Hipertensiune arterială 120–139 80–89
Stadiul 1 Hipertensiune 140–159 90–99
Stadiul 2 Hipertensiune 160–179 100–109
Criză hipertensivă ≥ 180 ≥ 110
Tensinea arterială crescută (hipertensiunea) poate duce la probleme serioase cum ar fi infarctul,
accident vascular sau boli de rinichi. De obicei tensiunea arterială mărită nu are nici un fel de
simptome, aşa că cel mai bine este să măsurăm tensiunea periodic.
Precizia senzorului de măsurarea a presiunii sângelui (tensiometru) este suficientă în cele
mai multe aplicații, dar putem îmbunătații această precizie printr-un proces de calibrare.
Calibrarea acestui senzor este mai dificilă, producătorii ocupându-se de calibrarea senzorului și
oferind o valoare precisă de calibrare. Trebuie doar să modificăm parametrul în codul nostru.
Ca să avem o măsurare cât mai precisă, trebuie sa luăm tensiunea de mai multe ori. Primele
măsuratori vor fi elimiate. Dacă găsim abateri în măsurarea presiunii sângelui se poate efectua
din nou procesul de calibrare. Este recomandat să facem calibrarea pentru fiecare pacient.
Pentru o calibrare cât mai corectă se efectuează măsurători și se notează într-un tabel, notând
valoarea tensiunii afișate pe ecran, valoarea tensiunii măsurată pe platformă şi valoarea
corespunzătoare a tensiunii arteriale. Un exemplu este prezentat mai jos în figura 4.68.

Tensiunea măsurată pe Tensiunea arterială Valoarea tensiunii


Diferenţa
platforma Arduino [V] citită afişate [V]
1.17 94 1.24 0.07
... ... ... ...

Fig.4.68. Rezultate măsurători pentru calibrare

După mai multe măsurători putem calcula o valoare medie. Această valoarea este rezultatul
calibrării şi o vom folosi în continuare prin setarea ei în soft.
Conectarea senzorului pentru măsurarea tensiunii arteriale la interfață se face pritr-un jack.
Pentru o măsurarea corectă plasăm tensionometrul pe braț, cu palma în sus, înfășurând manșeta
în jurul încheieturii mâinii stângi, fiind important să se mențină mâna în paralel cu inima, în plan
orizontal. Se apasă butonul pornit/oprit și așteptăm ca tensionometrul să ia tensiunea. După
câteva secunde rezultatul este afișat pe tensionometru si pe monitorul sistemului de achiziţie.
O secvenţă din codul pentru citirea tensiunii arteriale este:
eHealth.initBloodPressureSensor(parameter);

Serial.println("****************************");
Serial.print("Systolic blood pressure value : ");
Serial.println(eHealth.getSystolicPressure());
delay(10);

Serial.println("****************************");
Serial.print("Diastolic blood pressure value : ");
Serial.println(eHealth.getDiastolicPressure());
delay(10);

Încărcăm codul și urmărim pe monitorul terminalului PC utilizând terminalul portului serial


Arduino IDE aşa cum este prezentat în figura 4.69.
Figura 4.69. Informațiile achiziţionate pe portul serial la calculator

4.5.4.3 Măsurarea pulsului şi a conţinutului de oxigen din sânge


Ca şi principiu de funcţionare, pulsoximetrul combină două tehnici: spectrofotometria
care măsoară concentraţia de hemoglobină din sânge şi pletismografia optică care măsoară
schimbările pulsatile în volumul sângelui arterial. Absorbţia luminii este în funcție de gradul de
oxigenare a sângelui, iar schimbările pulsatile în transmiterea luminii prin țesuturi sunt
datorate variaţiilor de volum sanguin arterial în ţesuturi. Măsurarea are la bază un principiu
optic, având două surse de emisie una de lumină roşie cu lungimea de undă de 660 nm şi una
în infraroşu cu lungimea de undă de 940 nm şi cel puţin un fotodetector. În infraroşu
coeficientul de absorbţie al oxihemoglobinei este mai mare decât al hemoglobinei reduse. Partea
electronică măsoara raportul dintre lumina pulsatilă și lumina nepulsatilă la lungimi de undă
în rosu şi infraroşu şi o transpune în procent de saturaţie în oxigen. Absorbția în infraroşu
se datorează sângelui din capilare. Fluxul capilar este mai mare in sistolă si mai mic in diastole,
rezultând modificari ciclice ale absorbției în infraroşu. Frecvența de variație a absorbției este
egală cu frecvența cardiacă, adică pulsul, iar gradul de absorbție depinde de concentrația de
hemoglobină oxigenată din sânge. Evaluarea frecvenței pulsului este un mod simplu de a afla cât
de repede bate inima. Senzorii pot fi plasaţi la nivelul degetului, a lobului urechii sau a
antebrațului.
Pulsoximetria este o metodă neinvazivă de monitorizare a saturaţiei în oxigen a
hemoglobinei şi, deci, nu furnizează exact aceleaşi informaţii ca şi analiza gazelor sanguine.
Este important de reţinut că pulsoximetrul măsoara oxigenul saturat. Precizia determinărilor cu
pulsoximetrul este redusă în situații anormale cum ar fi prezența unor anemii severe sau a
hemoglobinopatiilor, a artefactelor de mişcare, a unghiilor acoperite cu lac, sau în absenţa
unui flux arterial pulsatil (hipotensiune, stop cardiac, folosirea concomitentă a manşetei
tensiometrului).
Un pulsoximetru este util în orice cadru unde oxigenarea pacientului este instabilă,
inclusiv în terapie intensivă, de exploatare, de recuperare, setările de urgență, pentru piloții dintr-
un avion nepresurizat, pentru evaluarea oxigenării unui pacient, și determinarea necesarului de
oxigen suplimentar. Valorile normale pentru conţinutul de oxigen din sânge acceptabile pentru
pacienți sunt în limitele 95-99 %, pentru cei cu o probleme hipoxice se așteaptă ca valorile să fie
cuprinse între 88-94 %, valori de 100 % putând indica intoxicație cu monoxid de carbon.
Senzorul trebuie să fie conectat la sistemul de achizţie printr-un circuit de interfaţare prezentat în
figura 470.
Figura 4.70. Senzorul pulsoximetric şi circuitul interfaţă pentru achiziţia datelor

Senzorul are un singur mod de conectare pentru a preveni erorile și a face conexiunea mai
ușoară. Pentru achiziţia de date introducem degetul în senzor și apăsăm butonul.După câteva
secunde, vom obține valorile pe ecranul senzorului şi pe monitorul PC. Pentru citirea acestui
senzor folosm întreruperi și este necesar să se includă o bibliotecă special, < PinChangeInt.h >.
O parte din secvenţa de cod pentru citirea valorilor date de pulsoximetru este:

Serial.print("PRbpm : ");
Serial.print(eHealth.getBPM());
Serial.print(" %SPo2 : ");
Serial.print(eHealth.getOxygenSaturation());
Serial.print("\n");
Serial.println("=============================");
delay(500)
4.5.4.4 Măsurarea rezistenţei pielii
Galvanic skin rezistance (GSR) este o metodă de măsurare a conductanței electrice a
pielii, care variază în funcție de nivelul de umidificare a acesteia. Acest lucru este esenţial
deoarece glandele sudoripare sunt controlate de sistemul nervos, deci momentele de emoție
puternică, modifică rezistența electrică a pielii. Conductanţa pielii este utilizată ca o indicație de
excitare psihologică sau fiziologică. Senzorul GSR măsoară conductivitatea electrică între 2
puncte, și este în esență un fel de ohmmetru. Conductivitatea electrică a pielii este măsurată la
buricul degetului şi pentru măsurare se conectează cei doi electrozi pe două degete apropiate.
Măsurarea conductanței pielii este o componentă a dispozitivelor poligraf și este folosită în
cercetarea științifică în domeniul excitării emoţionale sau fiziologice.
Senzorul GSR are două contacte care funcționează ca un ohmmetru măsurând rezistenței
materialelor, în cazul nostru a pieli. Principiul de măsurare reiese din circuitul prezentat în figura
4.71, în care se compară tensiunea furnizată de senzor cu o tensiune de referinţă şi rezultatul este
apoi convertit în valoare de conductanţă sau rezistenţă, prin softul de achiziţie a datelor.
Figura 4.71. Senzorul GSR şi circuitul de adaptare conţinut în iterfaţă

Calibrarea este un proces de măsurare a valorilor reale ale tensiunii pe modulul interfaţă şi dacă
aceasta diferă de valoarea 0.5V care este definită in mod implicit, modificăm în soft noua valoare
citită. La conectarea senzorului nu contează modul cum legăm cele două fire deoarece nu avem
polaritate. O parte din secvenţa de cod pentru citirea senzorului este:
Serial.print("Conductance : ");
Serial.print(conductance, 2);
Serial.println("");
Serial.print("Resistance : ");
Serial.print(resistance, 2);
Serial.println("");
Serial.print("Conductance Voltage : ");
Serial.print(conductanceVol, 4);
Serial.println(""); Serial.print("\n"); // wait for a second

4.5.4.5 Măsurarea ritmului respirației


Senzorul pentru fluxul de aer nazal este un dispozitiv folosit pentru a măsura ritmul
respiraţiei la un pacient care are nevoie de ajutor respiratoriu. Acest dispozitiv constă dintr-un fir
flexibil, care se potrivește în spatele urechilor, și un set de doi dinți cu găuri care sunt introduşi în
nări, respiraţia fiind măsurată prin aceste orificii. Această structură permite senzorului
termocuplu să fie plasat în poziția optimă pentru a sesiza corect fluxul de aer nazal, precum și
temperatura aerului nazal. Senzorul şi circuitul de adaptare din interfaţă sunt prezentate în figura
4.72.

Figura 4.72. Senzorul pentru respiraţie şi circuitul de adaptare din interfaţă

Pentru măsurarea corectă senzorul se pune pe poziție exact în calea fluxului de aer.
Un om normal adult are o rată respiratorie de 15-30 respirații pe minut. La conectarea senzorului
trebuie să ţinem cont de polaritate, aşa cum reiese şi din figura 4.72, firul roșu se conectează la
borna pozitivă şi firul negru la borna negativă.
Pentru achiziţia de date, senzorul pentru măsurarea fluxului de aer este conectat la modulul
Arduino pe de o intrare analogică și redă pe serial o valoare între 0-1024. Putem obține această
valoare în mod direct sau se poate reprezenta sub formă de grafic pe monitorul serial. Secvenţa
de cod pentru aceasta este:
int airFlow = eHealth.getAirFlow();
eHealth.airFlowWave(air);

4.5.4.6 Măsurarea activităţii inimii.Electrocardiograma (ECG)


Electrocardiograma (ECG sau EKG) este un instrument de diagnosticare, care este de
obicei folosit pentru a evalua funcțiile electrice și musculare ale inimii. Măsurarea ECG a ajuns
să fie unul dintre testele medicale cel mai frecvent utilizat in medicina moderna. Utilitatea în
diagnosticul la o multitudine de patologii cardiace, de la ischemia miocardică și infarct, la
sincope şi palpitaţii, a fost un ajutor de nepreţuit pentru medici de zeci de ani. Forma de undă
pentru reprezentarea unei electrocardiograme normale este prezentată în figura 4.73.
Figura 4.73. Forma de undă pentru reprezentarea unei electrocardiograme normale

Pentru achiziţia de date în vederea ridicării electrocardiogramei senzorul se conectează prin


intermediul unui circuit interfaţă tipic pentru astfel de măsurători, circuit prezentat în figura 4.74.

Figura 4.74. Senzorul ECG şi circuitul de interfaţă utilizat

Cele trei cabluri pentru măsurarea activităţii cardiac (roşu = +, negru = -, gri = neutru) se
conectează pe trei electrozi speciali pentru a asigura contactul cu corpul uman, electrozi plasaţi
după regulile de achiziţie cu trei electrozi a datelor pentru ECG, aşa cum se prezintă în figura
4.75.
Figura 4.75.Conectarea celor trei electrozi pe subiect

La ieşirea circuitului interfaţă avem un semnal analogic, iar sistemul returnează o valoare
analogică între 0şi 5V pentru a reprezenta forma de undă ECG. Secvenţa de cod pentru citirea
senzorului este:

float ECG = eHealth.getECG();


Serial.print("ECG value : ");
Serial.print(ECG, 2);
Serial.print(" V");
Serial.println("");

Încărcăm codul și urmărim pe monitorul serial utilizând terminalul portului serial Arduino IDE.
Pentru măsurarea ritmului respiraţiei şi măsurarea activităţii inimii există şi o aplicaţie pe
smartphone care permite vizualizarea acestor semnale, aşa cum se prezintă în figura 4.76.

Figura 4.76. Aplicaţia pentru vizualizarea ritmului respiraşiei şi a semnalului ECG pe smartphone

4.5.4.7 Detectarea activității musculare. Electromiograma (EMG).


O electromiogramă (EMG) măsoară activitatea electrică a mușchilor în repaus și în
timpul contracției. Electromiografia (EMG) este o tehnică pentru evaluare și înregistrare a
activității electrice produse de mușchii scheletici. Semnalele EMG sunt utilizate în multe
aplicații clinice și biomedicale. EMG este folosit ca un instrument de diagnosticare pentru
identificarea bolilor neuromusculare, evaluarea durerii lombare, kinetoterapie, și tulburări de
control ale mișcării. Acest senzor va măsura activitatea electrică dând un semnal filtrat și
redresat de la un mușchi, în funcție de volumul de activitate din muschiul selectat.
Caracteristicile acestui sistem de achiziţie, aşa cum reiese şi din figura 4.77 unde avem
reprezentat senzorul şi circuitul de adaptare, sunt: câștig reglabil, factor de formă redus și
integrare completă.

Figura 4.77. Senzorul EMG şi circuitul de adaptare din interfaţă

Teoretic putem interacționa cu mediul cu proprii noștri mușchi. Putem folosi mușchii pentru a
controla orice tip de acționare (motoare, servo, lumini, etc). Acest senzor conține toate
instrumentele necesare pentru a începe activitatea de detectare musculară folosind o platform cu
microcontroler Arduino sau Raspberry Pi. Conectarea senzorului se face prin conectarea celor
trei electrozi (MID, END și GND) la interfața eHealth, cei trei electrozi având culori diferite
pentru diferenţierea lor. Un exemplu de conectare al electrozilor pe corp, pentru a măsura
activitatea muşchilor braţului este prezentată în figura 4.78.

Figura 4.78. Conectarea electrozilor pe corp, pentru a măsura activitatea muşchilor braţului

Acești electrozi de unică folosință şi de o bună calitate trebuie să fie utilizaţi pentru a măsura
ECG și EMG. Ei trebuie să fie folosit o singură dată și sunt foarte uşor aderanţi la piele datorită
gelului
integrat. Putem ajusta câștigul senzorului EMG folosind potențiometrul situat pe interfața
eHealth, aşa cum se observă şi în circuitul interfaţă din figura 4.77.
Sistemul de achiziţie pentru senzorul EMG returneaza o valoare analogică în volţi, convertită de
convertorul analog- digital în intervalul 0-1023, folosită pentru a reprezenta grafic semnalul
achiziţionat. Secvenţa de cod care permite citirea senzorului este:

float EMG = eHealth.getEMG();


int EMG = eHealth.getEMG();
Serial.print("EMG value : ");
Serial.print(EMG);
Serial.println("");

4.5.4.8 Determinarea poziției corpului folosind un accelerometru integrat într-o curea de


piept
Senzorul pentru determinarea poziției corpului include în variant iniţială cinci poziții
diferite care pot fi recunoscute (stând în picioare sau şezând, culcat pe față, culcat pe spate,
culcat pe partea stângă, culcat pe partea dreaptă).
În multe cazuri, este necesar să se controleze poziţiile corpului şi mişcările făcute din cauza
corelaţiilor cu anumite boli (mers în somn). Analiza mişcărilor din timpul somnului, ajută de
asemenea la determinarea calitaţii somnului unei persoane. Senzor de poziţie acorpului ar
putea ajuta, de asemenea, pentru a detecta starea de leşin în care se încadrează persoanele în
vârstă sau persoanele cu dizabilităţi.
Acest senzor este dotat cu funcţii integrate care cuprind opţiuni flexibile de programare
pentru utilizator, care pot fi configurate între cei 2 pini de întreruperi.Accelometrul are o scara de
selecţie foarte larga ±2g/±4g/±8g şi permite trecerea datelor filtrate precum si a celor nefiltrate
care sunt disponibile în timp real. Senzorul se poate conecta foarte uşor, având un conector
special. O problemă sensibilă a acestui senzor este conectivitatea lui, el fiind un senzor purtabil
conectat printr-un cablu, cea ce presupune că pentru achiziţia de date este obligatoriu să purtăm
şi sistemul de achiziţie. După ce s-a făcut conectarea la platform cu microcontroler Arduino se
aşează banda neagră care conţine senzorul deasupra pieptului. Cureaua de piept şi modul de
amplasare pe corp a acesteia sunt prezentate în figura 4.79.

Figura 4.79. Cureaua de piept şi modul de amplasare pe corp a acesteia

Secvenţa de cod pentru citirea senzorului de poziţie este:


Serial.print("Current position : ");
uint8_t position = eHealth.getBodyPosition();
eHealth.printPosition(position);
Serial.print("\n");
4.5.4.9. Măsurarea nivelului de glucoză din sânge

Glucometrul utilizat ăn acest sistem de achziţie este un dispozitiv medical pentru


determinarea concentrației aproximativă de glucoză din sânge. Se foloseşte o metodă invazivă
deoarece este necesară o mică picătură de sânge, care este plasată pe un test de unică folosință
care este citit și utilizat pentru a calcula nivelul de glucoză din sânge.Glucometrul afișează
nivelul de glucose în mg / dl sau mmol / l. Aparatul utilizat în acest sistem de achiziţie şi
circuitul de adaptare din interfaţa sistemului sunt prezentate în figura 4.80.

Figura 4.80. Glucometrul utilizat şi circuitul de adaptare din interfaţa sistemului

Pentru a configurara glucometrul trebuie să setăm parametrii acestuia, putând seta data(ora, ziua,
luna, anul) și unitatea de măsură (mg / dl sau mmol/l). După setare putem obține toate
informațiile dorite (data, valoarea glucozei), pornid glucometrul și punând un test în el când
aparatul este gata. Cantitatea de sânge utilizată este determinată de tipul de bandă pe care o
utilizăm. Picătura de sânge se pune în partea laterală a benzii.
Pentru a achiziţiona datele din glucometru cu platformele cu microcontroller Arduino sau
Raspberry Pi, conectăm cu un cablu aparatul la interfaţa sistemului de achiziţie.
O parte din secvenţa de cod utilizată pentru achiziţie este:

eHealth.readGlucometer();
Serial.print(F("Number of measures : "));
Serial.println(numberOfData, DEC);
Serial.print(F("Date -> "));
Serial.print(eHealth.glucoseDataVector[i].day);
Serial.print(F("Glucose value : "));
Serial.print(eHealth.glucoseDataVector[i].glucose);
Serial.println(F(" mg/dl"));

4.5.5 Rezultate experimentale

În cercetarea mea privind sistemul de achiziţie de date pentru monitorizarea stării de


sănătate, am făcut experimente multiple pe mai mulţi subiecţi umani (inclusive eu). Măsurătorile
efectuate au permis îmbunătăţirea performanţelor sistemului, prin calibrările şi reglajele făcute
atât pe partea de hard cât şi pe partea de soft. Trebuie să menţionez faptul că, deşi producătorul
interfeţei e-Health oferă softul şi bibliotecile aferente pentru toate componentele folosite, acesta
oferă un cadru general şi el trebuie adaptat la particularităţile sistemului. În urma experienţei
căpătate şi a discuţiilor avute cu un cabinet medical privat, m-am hotărât să dezvolt acest sistem
sub forma unui echipament de investigaţie şi diagnoză medicală. În continuare prezint câteva
din experimentele şi rezultatele măsurătorilor efectuate. În figura 4.81 sunt prezentate
măsurarătorilr efecuate cu senzorul pentru ritmul respiraţiei şi cu senzorul pentru măsurarea
rezistenţei pielii.

Figura 4.81 Măsurarea ritmului respiraţiei şi a rezistenţei pieli

Pentru ritmul respiraţiei am făcut şi o reprezentare grafică prezentată în figura 4.82


Figura 4.82. Reprezentarea grafică a ritmul respiraţiei

În figura 4.83. prezentăm măsurătorile efectuate pentru înregistrarea tensiunii arteriale şi


rezultatele înregistrate.

Figura 4.83. Măsurătorile efectuate pentru înregistrarea tensiunii arteriale şi rezultatele


înregistrate

Măsurătorile effectuate pentru ridicarea electrocardiogramei şi rezultatele înregistrate sut prezentate în


figura 4.84.
Figura 4.84. Măsurătorile efectuate pentru ridicarea electrocardiogramei şi rezultatele înregistrate

Eşantioanele de tensiune obţinute în urma măsurătorilor pot fi reprezentate grafic, rezultatul unei astfel de
reprezentări fiind prezentat în figura 4.85.

Figura 4.85 Reprezentate grafică a eşantioanele de tensiune obţinute în urma măsurătorilor

Măsurarea temperaturii şi rezultatul obţinut în urma achiziţiei sunt prezentate în figura 4.86.

Figura 4.86. Măsurarea temperaturii şi rezultatul obţinut în urma achiziţiei

În figura 4.87 este reprezentat grafic rezultatul măsurătorilor de temperatură în două pucte de pe corp,
într-un interval mai mare de timp.
Figura 4.87. Reprezentarea grafică a rezultatului măsurătorilor de temperatură

În figura 4.88 este prezentată reprezentarea grafică a măsurătorilor rezistenţei pielii.

Figura 4.88. Reprezentarea grafică a măsurătorilor rezistenţei pielii

S-ar putea să vă placă și