Skip to content

imyj1013/Arduino-project

Repository files navigation

Arduino Heart-Rehab Assistant

아두이노 기반 심장재활 보조장치(Heart Rehabilitation Assistant System) 사용자의 심박수를 실시간 측정하고, 목표 심박수를 초과할 경우 운동 중단 및 약 복용을 안내하는 스마트 헬스케어 장치입니다. 연령·운동강도 입력 → 목표 심박수 계산 → 실시간 모니터링 → 위험 시 자동 경고 및 약통 개방으로 이어지는 재활 안전 자동화 시스템입니다.

상세 내용은 보고서를 참고해주시기 바랍니다.


프로젝트 개요

이 프로젝트는 심장질환자가 가정에서 안전하게 재활운동을 수행할 수 있도록 돕는 것을 목표로 합니다. 운동 중 심박수를 지속적으로 체크하고, 목표 심박수(카보넨 공식 기반)를 넘으면 운동을 자동으로 종료시키며, 음성 안내와 화면 표시, 약통 개방 등을 수행합니다.

상세기능:

  • 심박 센서를 통한 실시간 심박수 측정

  • 연령·운동강도 입력 후 목표 심박수 자동 계산

  • LCD 디스플레이를 통한 즉각적인 수치 확인

  • DFPlayer Mini + 스피커를 통한 음성 안내

  • 목표 심박수 초과 시:

    • 경고음 및 안내 메시지 출력
    • 서보모터로 약 상자 자동 개방
    • 운동 즉시 중지 프로세스 실행

사용된 주요 부품

부품명 용도
Arduino Uno 전체 장치 제어
Heart Rate Sensor (SEN0203) 심박수 실시간 측정
1602 LCD Display 심박수·메시지 출력
DFPlayer Mini + Speaker 음성 안내 재생
SG-90 Servo Motor 약통 덮개 개폐
Push Buttons (증가/감소/저장/종료) 사용자 입력 UI
Breadboard, Jumpers, 9V Battery 회로 구성

시스템 동작 흐름

  1. 스피커 음성 안내 → 사용자에게 연령 입력 요청

  2. 버튼(증가/감소/저장)으로 연령 선택 후 저장

  3. 동일한 방식으로 운동강도 선택

  4. 카보넨 공식을 통해 목표 심박수 계산

  5. 운동 시작 안내 후 2ms 간격으로 심박수 측정

  6. LCD에 현재 BPM / 목표 BPM 실시간 출력

  7. 심박수 0 → "센서 확인" 메시지

  8. 목표 심박수 초과 →

    • LCD “Stop exercise” 표시
    • 음성 경고 + 운동 종료 안내
    • 서보모터로 약 상자 자동 개방
  9. 종료 버튼 입력 시 시스템 종료 및 약통 닫힘


회로 구성 요약

연결 포인트

  • Heart Rate Sensor → A0

  • Servo Motor → D6

  • DFPlayer Mini →

    • RX/TX → D11, D10 (SoftwareSerial)
    • SPK1/SPK2 → 스피커
  • LCD → D2–D5, D8, D9

  • Buttons → A2~A5 (Pulldown 방식)

회로도 상세는 보고서 16페이지 참고


코드 구조

/Arduino-project
│
├── healthcare.ino          # 메인 로직 (setup, loop)
├── set_age_intensity.ino   # 연령/운동강도 입력 UI
├── interrupt.ino           # 2ms 심박수 측정 인터럽트
└── servo.ino               # 약통 서보모터 제어

각 파일 역할

healthcare.ino

  • DFPlayer 초기화 및 LCD 초기화
  • 버튼 입력 설정
  • 운동 루프 (loop)에서 심박수 출력
  • 종료 조건 및 심박수 초과 시 프로세스 실행

set_age_intensity.ino

  • 사용자 입력 UI
  • 버튼 디바운싱 처리
  • 카보넨 공식으로 최대·목표 심박수 계산

interrupt.ino

  • 2ms 주기로 심박 파형 측정
  • BPM 계산 알고리즘 수행
  • 이전 10개의 IBI 평균 기반 BPM 산출

servo.ino

  • 서보모터를 이용한 약통 열림/닫힘 제어

실험 및 성능 결과

실험 조건

  • 피험자: 20대 남성
  • 운동: 자전거 유산소 10분
  • 운동강도: 60%, 80% 각각 테스트
  • 비교 기기: 스마트워치

실험 결과 요약

테스트 결과
심박수 실시간 측정 정상 동작
LCD 출력 정상 표시
버튼 입력 정확하게 인식
목표 심박수 초과 시 자동 정지 정상 동작
서보모터 약통 개방 정상 동작
음성 안내 정상 재생
스마트워치 대비 오차율 약 6.48% (60%), 8.31% (80%)

스마트워치의 심박수 업데이트 지연(약 10초)으로 인한 오차가 발생한 것으로 분석됨.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages