IoT를 활용한 생활 편의 기능 만들기
콘테스트 프로젝트완료

심박수 및 산소포화도 측정기

IoT를 활용한 생활 편의 기능 만들기
r
2023.11.07에 시작
0
좋아요
1.7K
조회
0
댓글
심박수 및 산소포화도 측정기
IoT를 활용한 생활 편의 기능 만들기진행중
콘테스트 프로젝트 진행 상황

각 Quest를 단계적으로 완성하는 프로젝트입니다.

Quest 1
Quest 2
2 / 2 완료
Quest 1: 심박수 및 산소포화도 측정기
2023.11.25
완료

□ IoT를 활용한 어떤 문제나 응용 분야에 대한 아이디어 제안

심박수 및 산소포화도 측정기

 

□ 해당 아이디어가 어떤 가치를 제공하고, 어떤 문제를 해결할 수 있는지에 대한 설명

규칙적으로 심박수 및 산소포화도를 측정함으로써 건강 관리에 도움을 줍니다.

 

□ 개발에 필요한 HW/SW적 구성 및 일정 계획

# 프로젝트 설명

사용자는 심박수 및 산소포화도 측정기를 사용하여 심박수 및 산소포화도를 측정합니다.
이렇게 측정된 값은 MQTT를 사용하여 Node-RED dashboard에 전송되어 보여줍니다.
만약 측정값이 비정상일 경우 핸드폰으로 알림 메시지를 전송하여 사용자에게 알려주며,
Node-RED dashboard의 스케줄러를 사용하여 주기적으로 약 복용 시간 및 자가 검진 시간을 설정할 수 있으며,
설정된 시간에 핸드폰으로 알림 메시지를 전송하여 약 복용 또는 자가 검진을 할 수 있도록 합니다.

# H/W

# S/W
- 심박수 및 산소포화도 센서를 사용한 센서값 측정 구현
- MQTT를 사용하여 Node-RED dashboard에 도식화 작업 구현
- Node-RED의 dashboard에서 스케줄러 작업 구현
- 안드로이드 모바일 디바이스를 사용하여 알림 수신 구현

# 일정
- 심박수 및 산소포화도 측정기 하드웨어 제작 : 2023-11-27 ~ 29 (3일)
- 측정기 S/W 구현 : 2023-11-30 ~ 12-3 (4일)
- Node-RED 구현: 2023-12-4 ~ 9 (6일)
- 안드로이드 앱 구현: 2023-12-10 ~ 15 (6일)
- 문서 작성: 2023-12-16 ~ 17 (2일)

Quest 2: 심박수 및 산소포화도 측정기
2023.12.16
완료

IoT를 활용한 생활 편의 기능 만들기

 

# 프로젝트명: 
심박수 및 산소포화도 측정기

# 프로젝트 설명
사용자는 심박수 및 산소포화도 측정기를 사용하여 심박수 및 산소 포화도를 측정합니다.
이렇게 측정된 값은 MQTT를 사용하여 Node-RED dashboard에 전송되어 보여줍니다.
Node-RED dashboard의 스케줄러를 사용하여 주기적으로 약 복용 시간 및 자가 검진 시간을 설정할 수 있으며, 설정된 시간에 핸드폰으로 알림 메시지를 전송하여 약 복용 또는 자가 검진을 할 수 있도록 합니다.

# 하드웨어 구현
WeMos D1 Mini, MAX30102, OLED를 사용하여 간단한 ‘심박수 및 산소포화도 측정기’ 를 만들어 보았습니다.
 
IoT관련 사용될 WeMos D1 mini와 OLED입니다.
 
WeMos D1 mini에 연결할 수 있게 심박수 센서를 모듈 형태로 만들었습니다.
아래와 같이 3개의 모듈이 연결됩니다.
 
내부 모듈이 안보이도록 케이스를 만듭니다.
 
아래 부분으로 손가락을 넣어 심박수를 측정할 수 있도록 하였습니다.
 
위쪽은 하얀색 동그라미 부분은 기기 인식을 위한 NFC 태그를 붙어 놓았습니다.
이 NFC 태그 부분에 핸드폰을 가져다 대면 NFC 태그를 인식하여 관련 안드로이드 앱이 실행됩니다. (동영상 참고)

부팅 완료 후 모습입니다.
 
실제 측정시 심박수와 산소 포화도가 OLED에 표시됩니다.

 

# 소프트웨어 구현
WeMos D1 Mini에서 심박수 센서와 MQTT의 동작을 구현하였습니다.(첨부파일을 참고)

 
Node-RED를 사용하여 아래와 같은 flow를 작성하였습니다.

 


MQTT에 Subscribe 메시지를 수신하여 데이터를 심박수와 산소 포화도를 분리하여 각 각의 차트와 그래프에 표시합니다. 또한 스케줄러를 사용하여 약 복용시간 및 측정시간의 알림을 설정하여 MQTT로 publish 됩니다. (참고로 이 publish된 데이터는 핸드폰에서 알림 용도로 사용됩니다.)
위 그림의 왼쪽 사각형 Test 영역은 디버깅 및 테스트를 위해 구현된 내용입니다.

아래 이미지는 위 flow에서 구현된 코드를 적용한 Node-RED dashboard입니다.
심박수, 산소포화도, 스케줄러, 테스트의 총 4개의 탭으로 구성되어 있습니다.

모니터링 및 관리 목적으로 안드로이드 어플리케이션을 제작해 보았습니다.
심박수 및 산소 포화도 측정기의 NFC 태그에 핸드폰을 가져다 대면 아래 이미지와 같이 앱의 메인 화면이 실행되어 MQTT와 연결 시 심박수 및 산소 포화도를 표시해 줍니다. 또한 Node-RED dashboard에서 설정된 스케줄러에 의해 동작되는 약 복용 및 심박수 체크 시간을 사용자에게 알람으로 알려줍니다.

# 데모 영상

 

프로젝트 자료실

프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.

등록된 자료가 없습니다.

프로젝트 소개

아직 등록된 프로젝트 소개가 없습니다.

코드 & 회로도

등록된 코드/회로 자료가 없습니다.

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨보세요!