개별 프로젝트 계획서 - l3ye/DoHeon-embedded-system GitHub Wiki

1.mini PT (운동 자세 체크 기계)

1.배경 및 필요성

image

- 우리 사회는 급속한 고령화가 진행되면서 노인 인구가 지속적으로 증가하고 있다. 이에 따라 노년기(50대 이후)에 대표적으로 나타나는 신체적 문제 중 하나가 바로 근감소증이다. 근감소증은 나이가 들면서 근육량과 근력이 감소하는 질환으로, 보행 능력 저하, 낙상 위험 증가, 일상생활 수행 능력 감소 등을 초래한다. 이러한 변화는 삶의 질을 크게 저하시킬 뿐 아니라 의료비 상승 등 사회·경제적 부담을 증가시키는 중대한 공중보건 문제로 인식되고 있다.

- 전문가들(예: 서울아산병원 정희원 교수 등)은 근감소증을 예방하거나 진행을 늦추는 데 가장 효과적인 방법으로 규칙적인 근력운동을 강조한다. 근력운동은 기초대사량 유지, 균형감각 향상, 골밀도 증가 등에 기여하여 노년층의 건강수명 연장에 핵심적인 역할을 한다. 그러나 많은 사람들은 올바른 자세나 반복 방법을 정확히 알지 못한 채 운동을 수행하며, 이로 인해 근육 사용 효율이 떨어지거나 관절 부상의 위험을 높이는 문제가 발생한다.

- 전문 트레이너의 지도(PT)를 받으면 이러한 문제를 개선할 수 있으나, 비용 부담, 시간 제약, 심리적 진입장벽 등으로 인해 쉽게 접근하기 어려운 것이 현실이다. 반면, 홈트레이닝은 이러한 부담이 상대적으로 덜 하고 그중에서도 스쿼트·푸시업·턱걸이는 전신 근육 운동이며 초보자부터 전문 보디빌더까지 빼놓지 않는 핵심 훈련으로 알려져 있다. 그러나 잘못된 자세로 인한 부상 위험은 여전히 존재한다.

- 따라서 본 프로젝트에서는 라즈베리파이와 usb카메라를 활용하여 스쿼트·푸시업·턱걸이 자세를 실시간으로 분석하고 피드백을 제공하는 시스템을 개발하고자 한다. 이를 통해 평소 운동 전문 지도를 받기 어려운 사람들이 혼자서도 안전하게 근력운동을 수행할 수 있게하여 근력운동 진입장벽을 낮추고, 궁극적으로는 근감소증 예방과 건강수명 향상에 기여할 수 있을 것으로 기대된다.

2.개발 목표

  • 스쿼트,턱걸이,푸쉬업은 동작이 크기 때문에 센서로 구별 가능하다고 생각했음.
  • 따라서 자세를 USB카메라로 스캔하여 동작의 완성도에 따라 나쁨 보통 좋음 정도로 구별할 수 있게 개발.

3.시스템 구성도

image

4.구성요소 및 역할

구성 요소 역할
USB 카메라 사용자의 운동 모습을 실시간 촬영
라즈베리파이 4 영상 처리 및 자세 분석 연산 수행
자세 인식 가능한 관절 좌표 추출 알고리즘 (MediaPipe의 “Pose Landmark Detector”) 관절 위치 추출 및 동작 판별
자세 분석 모듈 각도 분석을 통한 정확도 평가 및 반복 횟수 측정
운동 기록 저장장치(내장 메모리) 통계 확인용 운동 데이터 저장

5.시스템 동작 흐름

  • 1.사용자가 카메라 앞에서 운동 시작
  • 2.영상 입력 → MediaPipe를 통한 관절 좌표 추출
  • 3.자세 분석 모듈이 각도 계산 및 정확도 판단
  • 4.반복 횟수 누적 및 결과 저장
  • 5.최종 통계 화면 또는 데이터 파일로 결과 출력

6.운동별 분석 기능 설계(미완성)

턱걸이 (Pull-up)

  • 사용 관절: 어깨, 팔꿈치, 손목
  • 분석 기준: 1.팔꿈치 각도가 일정 이하(약 60° 이하)로 줄어들면 “상승” 상태로 인식 2.팔이 거의 펴질 때(약 160° 이상) “하강” 상태로 전환 3.상승 → 하강이 1회 동작으로 카운트
  • 분석 포인트:1.팔꿈치 굽힘 각도 2.어깨의 상하 이동 거리
  • 정확도 평가: 턱이 어깨 높이 이상 올라왔는지 여부로 판단

스쿼트 (Squat)

  • 사용 관절: 엉덩이, 무릎, 발목
  • 분석 기준:1.무릎 각도가 일정 이하(약 70°)가 되면 “하강” 상태 2.무릎 각도가 160° 이상으로 펴지면 “상승” 상태 3.하강 → 상승이 1회 카운트
  • 분석 포인트:1.무릎 굽힘 각도 2.엉덩이의 수직 이동 거리
  • 정확도 평가: 상체의 기울기(어깨–엉덩이–무릎 라인 유지 여부)

푸쉬업 (Push-up)

  • 사용 관절: 어깨, 팔꿈치, 손목, 몸통 중심
  • 분석 기준: 1.팔꿈치 각도가 90° 이하일 때 “하강” 상태 2.팔꿈치 각도가 160° 이상일 때 “상승” 상태 3.하강 → 상승이 1회 카운트
  • 분석 포인트: 1.팔꿈치 굽힘 각도 2.어깨의 수평 이동 여부 (정렬 유지)
  • 정확도 평가: 몸통이 일직선 유지되는지 여부

운동 통계 저장

  • 각 운동별 반복 횟수, 평균 정확도, 소요 시간 등을 메모리에 저장
  • 사용자는 운동 후 통계 화면을 통해 자신의 운동 성과를 확인 가능

2.공기질 모니터링 프로젝트

1.배경 및 필요성

image

- 현대인들은 실내에서 보내는 시간이 점점 늘어나고 있으며, 특히 주말이나 휴일에는 장시간 환기 없이 생활하는 경우가 많다. 이때 공기질이 나빠져도 사람이 점차 익숙해져 공기 오염이나 환기 필요성을 인지하지 못하는 경우가 자주 발생한다.

- 이러한 문제를 예방하기 위해, **라즈베리파이(Raspberry Pi)**를 기반으로 한 실시간 공기질 모니터링 시스템을 구상하였다.본 시스템은 온도, 습도, 미세먼지, CO₂, VOC 등 주요 환경 지표를 센서를 통해 측정하고, Node-RED 플랫폼을 이용해 데이터를 처리 및 시각화한다. 사용자는 웹 대시보드를 통해 언제 어디서나 실내 공기 상태를 직관적으로 확인할 수 있으며, 공기질이 설정된 임계값을 초과할 경우 텔레그램 알림 기능을 통해 즉시 경고를 받아 적절한 조치를 취할 수 있다. 이 시스템은 단순한 공기질 측정을 넘어, 일상생활 속에서 사용자가 능동적으로 환경을 관리할 수 있는 IoT 기반 스마트 홈 환경 구축을 목표로 한다.

2.시스템 구성도

qweqweqw

3.필요한 구성 요소

구분 구성 요소 주요 기능
하드웨어 Raspberry Pi 4 센서 데이터 수집 및 서버 역할
  DHT11 / DHT22 센서 온도 및 습도 측정
  MQ135 / SDS011 센서 공기질(가스, 미세먼지, CO₂, VOC 등) 측정
  LCD 16x2 / OLED (선택) 현장 실시간 데이터 표시
  브레드보드, 점퍼선, 저항(10kΩ) 회로 구성용 부품
소프트웨어 Node-RED 센서 데이터 수집, 처리 및 시각화
  Node-RED Dashboard 실시간 웹 UI 대시보드 구성
  MQTT Broker (선택) IoT 확장용 데이터 통신 프로토콜
  Python / GPIO Library 센서 데이터 읽기 및 전송
  Telegram API / SMTP 알림 메시지 전송 기능

4. 시스템 동작 과정

데이터 수집 단계

  • DHT11/DHT22 센서를 통해 온도와 습도 데이터를 측정한다.
  • MQ135 또는 SDS011 센서를 통해 공기질(미세먼지, CO₂, VOC 등)을 감지한다.

데이터 입력 단계

  • Python GPIO 라이브러리를 사용하여 센서 데이터를 읽고, Node-RED의 Input 노드로 전송한다.

데이터 처리 및 비교 단계

  • Node-RED 내에서 수신된 데이터를 필터링하고, 기준 임계값과 비교하여 상태를 분석한다.
  • 예를 들어, CO₂ 농도가 1000ppm을 초과하거나 미세먼지가 35µg/m³을 초과하면 경고 상태로 판단한다.

시각화 및 알림 단계

  • 정상 상태의 데이터는 Node-RED Dashboard에 실시간으로 표시된다.
  • 임계값 초과 시 Telegram API를 통해 사용자에게 경고 메시지가 전송된다.
  • 사용자는 웹 브라우저 또는 스마트폰을 통해 실시간으로 대시보드에 접속하여 데이터를 모니터링할 수 있다.
⚠️ **GitHub.com Fallback** ⚠️