Cursul Nr. 10-Sistem de Achiziţie de Date Pentru Monitorizarea Stării de Sănătate [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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 eHealth ș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) getDiastolicPressure (i) 

// Returnează valoarea tensiunii arteriale sistolice i. // Returnează valoarea tensiunii arteriale diastolice i.

Funcțiile senzorului pentru determinarea poziției corpului

initPositionSensor () getBodyPosition () printPosition ()

// Inițializează senzorul pentru poziția corpului. // Returnează un număr care reprezintă poziția corpului. // 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 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ă

≥ 110

≥ 180

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 platforma Arduino [V]

Tensiunea arterială citită

Valoarea tensiunii afişate [V]

Diferenţa

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 dintrun 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