세계적으로 의료비 절감과 치료의 효율성 증진을 위해 모바일 헬스케어에 대한 관심이 커지고 있다. 이처럼 모바일 헬스케어에 대한 관심이 커지면서 Apple, Google, 삼성전자 등 ICT의 메이저 기업들의 시장 진입과 함께 다양한 신생 기업이 등장하고 있으며 관련 기업에 대한 투자 열기도 높아지고 있다. 한국보건산업진흥원에 따르면 전 세계 헬스 케어 시장은 402억 달러, 국내 시장은 약 3억 달러 수준의 규모를 형성할 것으로 예상된다. 이처럼 헬스 케어 기기와 관련 콘텐츠들이 활발하게 개발되고 있는 실정이다.
현재 출시된 샤오미 미 밴드의 경우 심박 수와 걸음 수 등의 정보를 사용자에게 전달하여 준다. 걸음 수 등의 정보 또한 물론 중요한 정보이지만 본 논문에서는 걸음 수 등 부수적인 요소를 제거하고 인체에게 많은 영향을 주는 심박 수를 측정하여 사용자에게 정보를 전달하려고 한다. 또한 과거의 심박 수를 저장하여 그래프를 통해 사용자에게 심박 수 변화를 한눈에 제공을 하여 사용자의 헬스케어에 도움을 주려고 한다.
위의 내용을 바탕으로 소형의 환자감시장치를 제작하려 한다. 가장 먼저 심박수 측정을 위한 PPG센서를 사용해 심박 데이터를 측정한다.
1. 심박 수 측정 원리
심박 수는 ECG(Electrocardiography) 신호와 PPG(Photoplethysmography) 신호로 측정 가능하다. 혈압과 ECG 신호의 경우 측정하려면 하드웨어가 복잡해지기 때문에 PPG를 이용했다. PPG센서의 경우 투과형과 반사형 두 가지가 있는데 이번 실험에서는 반사형 센서(SZH-SSBH-035 Pulse)를 사용했다.
반사형 센서는 LED에서 빛을 방출하고 측정부위에서 반사된 빛의 양을 측정해 전압으로 출력을 내보낸다. 심장이 박동될 때 동맥에 흐르는 피의 양이 변화하게 되는데 측정 부위의 혈류량에 따라 반사되는 빛의 양이 변하기 때문에 전압의 변화에 따라 심박 수를 계산할 수 있다.
2. 전체 시스템 설계
사용자로 하여금 펄스센서 SZH-SSBH-035를 통해 마이크로컨트롤러 Arduino UNO에서 ADC값을 측정하여 블루투스 모듈 HC-06을 사용하여 스마트폰과 무선통신을 하고 스마트폰에서 실시간 심박 그래프를 모니터링 함과 동시에 심박 수를 출력하여 앱 상에서 확인이 가능하도록 설계하였다.
아래 그림은 심박 수 계산 방법을 보여준다. 최신 10개의 피크 값을 배열에 저장하여 Peak to Peak값을 배열에 저장하여 interval to interval 값을 계산하여 심박수를 구할 수 있다. Raw Data에서 노이즈를 제거하기 위해 문턱 치를 설정하고 thresh값을 설정해 조건을 걸었다.
16x2 LCD 모듈과 RTC모듈에선 RTC 모듈에 I2C 통신을 통해 초기 시간을 설정 후 Arduino UNO로 시간 데이터를 전송해 주고 LCD 모듈에선 그 데이터를 받아 계속해 디스플레이해주는 방식으로 구성되었다.
추가적으로 혈중 산소포화도(SPO2) 센서(MAX30100)와 접촉식 체온센서(tmp36)를 사용하여 두 데이터를 추가로 획득하여 환자 감시장치 제작을 마무리하였다.
MAX30100 -- 아두이노
MAX30100 -- 아두이노
Vin -- VCC
GND -- GND
SCL -- 아날로그 핀 1
SDA -- 아날로그 핀 2
3. 결론
1) PPG 센서로부터 데이터를 받아 전송하고 앱에서 실시간으로 보여주며 심박 수 디스플레이하였다. 그리고 RTC모듈과 LCD 모듈을 사용해 시간을 디스플레이해주었다. 그로 인해 실제 의료기기를 제작하는데 필요한 많은 지식을 쌓을 수 있었다.
2) 실질적으로 체온, 혈중 산소포화도 측정을 해서 LCD 디스플레이에 출력시켜 학생 신분이지만 직접 의료기기를 제작하였다는 것이 신기하였고 의료기기 공부에 대한 동기가 더욱 확실하게 생기는 것을 느꼈다.
'프로젝트' 카테고리의 다른 글
아두이노 로봇팔 프로젝트 - 1 (0) | 2020.12.11 |
---|---|
라즈베리파이 MQTT 사용 (0) | 2020.12.10 |
4D프린팅 기술 (0) | 2020.12.10 |