M5StickC를 이용한 혈중 산소 포화도 측정

코로나의 영향으로 펄스 옥시미터가 손에 들지 않기 때문에 M5StickCHeart Unit (MAX30100) 로 혈중 산소 포화도(SpO2)를 측정해 표시시켜 보았다. 값의 정확성은 알 수 없기 때문에, 사용하는 경우는 자기 책임으로.


M5StickC_SpO2


  • 소스 코드: GitHub 참조
  • 작동하려면 M5StickCHeart Unit (MAX30100)이 필요합니다.
  • 센서로부터 출력되는 값이 불안정하고, SpO2가 130을 넘거나 30정도가 된다고 분명히 이상한 값이 반환되어 왔기 때문에, 이상치를 제외하고 30샘플을 취득, 한층 더 이상이라고 생각해 값을 제외하고 평균을 표시하도록 했다. 평균을 구할 때, 편차가 큰 경우는 재측정하도록 했다.
  • 이상치의 판정(샘플링을 무시하는 조건)
  • SpO2 : 70 미만 또는 100을 초과하는 경우
  • 심박수 (HR) : 40 미만 또는 250을 초과하는 경우

  • 재측정 조건(30 샘플 취득 후)
  • 재측정 : SpO2v의 표준 편차가 10을 초과하거나 HR의 표준 편차가 30을 초과하는 경우.
  • 일부 재측정: 표준편차의 2.5배를 넘는 샘플링은 삭제하고 재측정.

  • 1초에 1회 샘플링하고 있지만, 이상치는 무시하고 있으므로, 측정이 진행되지 않는 경우가 있다. 센서 위에 손가락을 가볍게 두고 20~30초 가만히 있으면 진행바가 진행된다. 센서에서 심박이 검출되면 적색 사각형이 오른쪽 하단에 0.1초 표시된다.
  • SpO2가 95% 이하인 경우에는 적색으로 문자가 표시된다.
  • 빌드 시 주의
  • MAX30100lib 라이브러리를 포함하고 Arduino IDE로 빌드할 수 있다.

  • 좋은 웹페이지 즐겨찾기