+ All Categories
Home > Documents > 심박수센서를 이용한 칼로리 관리 시스템 HotBody...

심박수센서를 이용한 칼로리 관리 시스템 HotBody...

Date post: 31-Aug-2019
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
48
년월일: 문서번호: 변경코드: 수정회수: 페이지: 2013-12-23 1.2 2 (48) 문서명: hot spICE 프로젝트 상세설계서 무단 복제/전제 금지 (HUFS Proprietary) 1/48 심박수센서를 이용한 칼로리 관리 시스템 HotBody 최종결과보고서 Ver. 1.2 2013. 12. 23 한국외국어대학교 정보통신공학과 5팀(hot spICE)
Transcript

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

1/48

심박수센서를 이용한

칼로리 관리 시스템 HotBody

최종결과보고서

Ver. 1.2

2013. 12. 23

한국외국어대학교

정보통신공학과

5팀(hot spICE)

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

2/48

구 분 소 속 성 명 날 짜 서 명

작성자

한국외국어대학교 정 난 희 2013. 12. 23

한국외국어대학교 박 지 은 2013. 12. 23

한국외국어대학교 오 인 선 2013. 12. 23

검토자

한국외국어대학교 박 지 은 2013. 12. 23

사용자

승인자 한국외국어대학교 홍 진 표 2013. 12. 23

문서 정보

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

3/48

머리말

본 문서는 심박수 센서를 부착한 아두이노와 스마트폰을 이용함으로써 소비한 칼로리를

측정하는 핫바디 시스템에 대한 최종결과를 보고한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

4/48

버전 작성자 개정일자 개정 내역 승인자

1.0

정난희

오인선

박지은

2013. 11. 27. 초안 작성

검토자 박지은

1.1

정난희

오인선

박지은

2013. 12. 05 변경사항 기재

검토자 정난희

1.2박지은 2013. 12. 23 최종 수정

검토자 박지은

2.0검토자

개정 이력

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

5/48

목 차

1. 개요 ······················································································································································ 7

1.1 목적 ················································································································································ 7

1.2 관련 문서 ······································································································································ 8

1.3 용어 및 약어 ································································································································ 8

2. 시스템 구성 ········································································································································ 9

2.1 시스템 구성도 ······························································································································ 9

2.2 하드웨어 구성 ···························································································································· 10

1) Arduino Uno ···························································································································· 10

2) Android Smartphone (Samsung Galaxy S3) ······································································ 10

3) 심박 수 센서 ···························································································································· 11

2.3 소프트웨어 구성 ························································································································ 12

1) Web – APMSETUP7 ··············································································································· 12

2) Database – MySQL ················································································································ 12

3) Android application (Jelly Bean) ·························································································· 13

4) PHP (Personal Hypertext Preprocessor) ················································································ 13

5) Eclipse ········································································································································ 13

6) JDBC (Java Database Connectivity) ····················································································· 14

2.4 네트워크 구성도 ························································································································ 15

1) Server와 Smartphone의 통신 ······························································································ 15

2) Smartphone과 Arduino의 Bluetooth연결 ········································································· 15

3. 시스템 기술 개념 ···························································································································· 16

3.1 전체 기술 개념 ·························································································································· 16

3.2 애플리케이션을 통해 사용자 정보 등록 및 승인 ······························································ 17

3.3 아두이노와 스마트폰 연결 ······································································································ 18

3.4 스마트폰의 정보 전달 ·············································································································· 18

3.5 사용자의 정보 요구 시 과정 ·································································································· 19

3.6 Sequence Diagram ···················································································································· 20

4. 기능 설명 ············································································································································ 21

4.1 Smartphone ································································································································ 21

1) GPS값 수신 ······························································································································ 21

4.2 Arduino ······································································································································· 22

1) Sensor값 수신 ·························································································································· 22

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

6/48

4.3 Server ··········································································································································· 22

1) Database ··································································································································· 23

2) 칼로리 계산 ······························································································································ 24

4.4 통신 ·············································································································································· 26

1) Smartphone - Server 통신 ···································································································· 26

2) Smartphone – Arduino 통신 ······························································································· 28

4.5 모듈설정 ······································································································································ 30

1) 센서 모듈 초기설정 ················································································································ 30

2) Arduino Bluetooth 모듈 설정 ······························································································ 31

5. 가상시나리오 ···································································································································· 33

5.1 Case 1 : ······································································································································· 33

5.2 Case 2 : ······································································································································· 33

6. 실제 시연 방법 ································································································································ 34

7. 기대효과 ············································································································································ 34

8. 세부계획 및 일정 ···························································································································· 35

9. 팀원 담당업무 ·································································································································· 36

10. 부록 ··················································································································································· 36

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

7/48

표 목 차[Table 1] 관련 문서 ·································································································································· 9

[Table 2] 용어 및 약어 ···························································································································· 9

[Table 3] 심박 수 측정 변수 ··············································································································· 32

그 림 목 차[Figure 1] 시스템 구성도 ······················································································································ 10

[Figure 2] Arduino와 사양 ···················································································································· 11

[Figure 3] Android Smartphone과 사양 ···························································································· 11

[Figure 4] 심박 수 센서 ························································································································ 12

[Figure 5] 하드웨어 구성도 ················································································································ 12

[Figure 6] 소프트웨어 구성도 ·············································································································· 15

[Figure 7] Server와 Smartphone의 통신 ··························································································· 16

[Figure 8] Smartphone과 Arduino 연결 ···························································································· 16

[Figure 9] 전체 기술 개념 ···················································································································· 17

[Figure 10] 사용자 정보 등록 ·············································································································· 18

[Figure 11] 아두이노와 스마트폰 연결 ···························································································· 19

[Figure 12] 스마트폰의 정보 전달 ······································································································ 19

[Figure 13] 사용자의 정보 요구 시 과정 ························································································ 20

[Figure 14] Sequence Diagram ············································································································ 21

[Figure 15] GPS값 수신코드 ··············································································································· 22

[Figure 16] GPS 수신화면 ····················································································································· 22

[Figure 17] 사용자테이블 ······················································································································ 24

[Figure 18] 실시간테이블 ······················································································································ 24

[Figure 19] 연산테이블 ·························································································································· 24

[Figure 20] 통계 테이블 ························································································································ 25

[Figure 21] Arduino Bluetooth 모듈 설정 ························································································· 32

[Figure 22] 스케치화면 ·························································································································· 33

[Figure 23] 시리얼모니터 ······················································································································ 33

[Figure 24] Case 1 : Use Case Diagram ····························································································· 34

[Figure 25] Case 2 ·································································································································· 35

[Figure 26] 세부계획 및 일정 ·············································································································· 36

[Figure 27] 팀원 담당 업무 ·················································································································· 37

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

8/48

1. 개요

본 장에서는 Arduino Uno, 심박수 측정 센서, Bluetooth, Android 단말기, 그리고 Android

단말기의 GPS를 이용하여, 심박수와 이동한 거리에 대한 운동량을 측정하는 시스템에 필요

한 요구사항과 총괄 개요를 제공한다. 시스템 구축을 위해 목적과 범위, 관련 문서, 용어 및

약어를 소개한다.

1.1 목적

본 프로젝트는 아두이노의 심박 수 센서와 스마트폰의 GPS를 이용하여 사람이 움직일 때

심박 수와 GPS에서 거리, 위치, 시간을 측정해 그에 따른 속도를 계산하여 소모하는 칼로리

를 계산하기 위한 시스템을 구축을 하는 데 그 목적이 있다.

시간이 지날수록 사람들은 몸매에 대한 관심이 높아지고 있다. 하지만 날씬한 몸매가

사랑받았던 예전과 달리 요즘엔 ‘탄력 있는 몸매’ 가 사랑받고 있다. 탄력 있는 몸매에 대한

사람들의 관심이 높아지는 만큼 사람들의 운동 빈도수도 증가했다. 하지만 따로 시간을

내어 운동 할 수 없는 사람들이 일상생활을 하면서 이동한 거리와 심박 수를 이용하여

칼로리 소비량을 알 수 있는 동시에 등산, 조깅을 하는 사람들이 운동 중에 이동한 거리,

심박 수, 칼로리 소비량을 알 수 있다. 따라서 일상생활 속 쉬운 사용과 실시간으로 자신의

상태를 확인 할 수 있고 목표치를 설정하여 그에 맞는 운동량을 조절 할 수 있게 함으로써

동기부여가 된다. 이에 따른 성취감을 주는데 그 목적이 있고, 본 문서는 필요한 시스템 및

사용자의 요구사항 명세를 기술하는데 있다. Arduino Uno, 심박 수 측정 센서, Bluetooth,

Android 단말기, 그리고 Android단말기의 GPS를 이용하여 실시간으로 운동량을 측정하기

위한 시스템 및 사용자의 제안 명세를 기술한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

9/48

출판사 문서 제목

아트로봇 아두이노 메뉴얼

아트로봇 PulseSensorAmpedGettingStartedGuide.pdf

IRS Global웨어러블 컴퓨터 개발동향과 시장전망 및 국내외 참여

업체 사업전략

한빛미디어 안드로이드 프로그래밍 정복

한빛미디어 PHP 프로그래밍 입문

[Table 1] 관련 문서

용어 및 약어 풀이 비고

웨어러블 의류에 PC 기능을 담은 컴퓨터로 몸에 착용할 수 있는 기술

Bluetooth 휴대기기를 서로 연결해 정보를 교환하는 근거리 무선 기술 표준

GPS Global Positioning System; 위치 수신 시스템

PHP Personal Hypertext Preprocessor; 웹 제작에 사용하는 언어

IBI Inter Beat Interval;

BPM Beats per Minute;

ISR Interrupt Service Routine;

OSGi Open Service Gateway Initiative;

Query 파일의 내용을 알기 위해 코드나 키를 기초로 질의하는 것

[Table 2] 용어 및 약어

1.2 관련 문서

1.3 용어 및 약어

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

10/48

2. 시스템 구성

2.1 시스템 구성도

[Figure 1] 시스템 구성도

위의 그림과 같이 아두이노에 심박 수를 측정 할 수 있는 센서와, 블루투스 통신이 가

능한 확장보드를 장착한다. 심박 수 센서는 아두이노의 전원과 스마트폰의 블루투스가 켜

져 있을 때, 실시간으로 심박 수를 측정한다. 아두이노는 이 센서가 측정한 심박 수 값을

블루투스를 통해 스마트폰으로 전송한다. 스마트폰에서는 GPS의 거리와 심박수 값을 이

용하여 좀 더 정확하게 칼로리를 측정하여 실시간으로 보여준다. 칼로리는 걷기, 뛰기 운

동에 따라 다르게 계산된다. 스마트폰 내에 장착된 GPS를 이용해 위치가 바뀔 때마다 거

리를 측정하여 어플리케이션에서 확인이 가능하다. 사용자가 운동을 시작할 때부터 마칠

때까지의 소비 칼로리와 운동한 시간, 거리를 서버로 보내고 데이터베이스에 저장한다. 이

렇게 데이터베이스에 저장되어있는 값들은 사용자가 정보를 요청할 때마다 스마트폰으로

확인이 가능하다. 사용자는 어플리케이션을 처음 사용할 때 자신의 신체정보와 목표 칼로

리를 입력 하는데, 목표칼로리, 소비칼로리, 남은칼로리를 확인할 수 있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

11/48

2.2 하드웨어 구성

핫바디 시스템은 안드로이드 애플리케이션을 기반으로 다음과 같은 하드웨어를 포함한다.

1) Arduino Uno

[Figure 2] Arduino와 사양

2) Android Smartphone (Samsung Galaxy S3)

[Figure 3] Android Smartphone과 사양

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

12/48

3) 심박 수 센서

[Figure 4] 심박 수 센서

4)Bluetooth 모듈

[Figure 5] 블루투스 모듈

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

13/48

[Figure 5] 하드웨어 구성도

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

14/48

2.3 소프트웨어 구성

핫바디 시스템은 안드로이드 애플리케이션을 제공하는데 다음과 같은 소프트웨어를 포함

한다.

1) Web – APMSETUP7

Apache 웹 서버와 PHP 서버, 그리고 MySQL 데이터베이스 서버를 하나의 프로그램으

로 묶어 놓은 프로그램이다. 위의 3개의 서버를 각각 설치하기 위해서는 환경변수 설정이

복잡하지만 APMSETUP이라는 프로그램을 이용하여 복잡한 환경설정을 모두 자동으로 잡

아준다. APMSETUP을 통해 본 프로젝트에서 사용하는 서버를 운영한다.

2) Database – MySQL

표준 데이터베이스 질의 언어인 SQL(Structures Query Language)을 사용하는 개방 소스

의 관계형 데이터베이스 관리 시스템(RDBMS). 매우 빠르고, 유연하며, 사용하기 쉬운 특

징이 있다. 다중 사용자, 다중 쓰레드를 지원하고 C, C++, 자바, 펄, PHP, Python 스크립트

등을 위한 응용 프로그램 인터페이스(API)를 제공한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

15/48

3) Android application (Jelly Bean)

컨트롤러가 되는 SmartPhone의 운영체제로, 컨트롤에 필요한 UI와 통신부분이 구현된

Application을 제작하기 위해 사용한다.

4)PHP (Personal Hypertext Preprocessor)

하이퍼텍스트 생성 언어(HTML)에 포함되어 동작하는 스크립팅 언어. 별도의 실행 파일

을 만들 필요 없이 HTML 문서 안에 직접 포함시켜 사용하며, C, 자바, 펄 언어 등에서 많

은 문장 형식을 준용하고 있어 동적인 웹 문서를 빠르고 쉽게 작성할 수 있다. PHP는 서

버 측에서 실행되는 프로그래밍 언어로 HTML을 프로그래밍적으로 생성해주고, 데이터베

이스와 상호작용 하면서 데이터를 저장하고, 표현한다. PHP는 웹을 위해서 만들어졌고, 웹

을 위해서 발전하고 있는 웹을 위한 언어이다. 또한 웹 프로그래밍을 위한 높은 생산성을

제공하는 언어이다. 특히 서버에 직접 설치해서 운영할 수 있는 설치형 웹 에플리케이션

은 대부분 PHP로 만든다.

5) Eclipse

이클립스는 다양한 플랫폼에서 쓸 수 있으며, 자바를 비롯한 다양한 언어를 지원하는

프로그래밍 통합 개발 환경을 목적으로 시작하였으나, 현재는 OSGi를 도입하여, 범용 응

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

16/48

용 소프트웨어 플랫폼으로 진화하였다. 자바로 작성되어 있으며, 자유 소프트웨어이지만

막강한 기능을 자랑한다.

[Figure 6] 소프트웨어 구성도

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

17/48

2.4 네트워크 구성도

1) Server와 Smartphone의 통신

[Figure 7] Server와 Smartphone의 통신

Arduino와 Smartphone 안의 GPS로부터 받아온 데이터 값들을 Smartphone에서 거리값

을 계산하여 어플리케이션에 거리값을 출력한다. 또한 거리값은 하루 단위로 통계를 내어

server에게 전송하게 된다. 3G/4G 통신을 위주로 한다.

2) Smartphone과 Arduino의 Bluetooth연결

[Figure 8] Smartphone과 Arduino 연결

Arduino에 부착된 심박 수 센서의 데이터 값을 Smartphone에 전송한다. 전송하기 위해

선 Bluetooth 모듈을 이용한다. Bluetooth 모듈을 이용하는 이유는 인터넷을 이용하지 않고

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

18/48

정보 전송을 하며, WI-FI 보다 배터리 소모가 덜 되기 때문이다.

3. 시스템 기술 개념

시스템을 구현하기 위해서는 기본적으로 스마트폰 애플리케이션, 아두이노가 필요하다 또

한 센서가 측정한 정보를 관리해야 하므로 서버와 데이터베이스가 필요하다.

3.1 전체 기술 개념

[Figure 9] 전체 기술 개념

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

19/48

3.2 애플리케이션을 통해 사용자 정보 등록 및 승인

[Figure 10] 사용자 정보 등록

1) 스마트폰 애플리케이션을 통해서 사용자 정보를 등록하면 서버로 정보가 전달된다.

2) 서버는 가입 정보를 파싱해서 데이터 베이스에 저장한다.

3) 관리자는 사용자의 정보를 데이터베이스에서 불러온 뒤 확인한다.

4) 관리자는 승인을 내린 뒤 데이터베이스에 승인 결과를 보낸다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

20/48

3.3 아두이노와 스마트폰 연결

[Figure 11] 아두이노와 스마트폰 연결

1) 아두이노에 블루투스를 연결한다.

2) 아두이노의 블루투스와 스마트폰 내의 블루투스와 연동한다.

3.4 스마트폰의 정보 전달

[Figure 12] 스마트폰의 정보 전달

1) 스마트폰에 있는 심박수 값과 GPS값을 stop버튼을 누를때마다 Server로 전송한다.

2) Server에 전송된 값은 Database에 저장, 정렬된다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

21/48

3.5 사용자의 정보 요구 시 과정

[Figure 13] 사용자의 정보 요구 시 과정

1) 사용자는 원하는 정보를 서버에 전송한다.

2) 서버는 해당 정보를 데이터베이스에 요구한다.

3) 데이터베이스에서 해당 정보를 불러온다.

4) 정보를 스마트폰에 전달한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

22/48

3.6 Sequence Diagram

[Figure 14] Sequence Diagram

스마트폰과 블루투스로 연결되어 있는 아두이노는 스마트폰으로 심박 수 측정 값을 실시

간으로 전송한다. 심박수의 변화는 어플리케이션의 화면을 통해 확인할 수 있다. 사용자가

Start버튼을 누르면 스마트폰의 GPS가 동작하고 사용자의 위치와 이동경로를 나타내기 시작

한다. 이때부터 스마트폰에서 칼로리 계산이 이루어지고, 사용자가 운동을 마친 후 Stop버

튼을 누르면 Stop버튼을 눌렀을 때부터 Stop버튼을 눌렀을 때까지의 소비 칼로리, 이동거

리, 운동시간을 서버로 보낸다. 이 값을 데이터베이스에 저장하고, 사용자가 요청할 때 마다

이 정보를 확인할 수 있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

23/48

4.기능 설명

4.1 Smartphone

1) GPS값 수신

[Figure 15] GPS값 수신코드

[Figure 16]

GPS 수신화면

위와 같이 현재 위치의 위도와 경도 값을 구할 수 있다. 1분마다 GPS값을 측정하여 서

버의 데이터베이스에 저장한다. 위에서는 위도 37.3377, 적도 127.2676임을 알 수 있다. A

지점의 위도가 37.3377이고 적도가 127.2676이라 하고, B지점의 위도가 37.4585이고 적도

가 127.3255이라 가정했을 때, A지점과 B지점 사이의 거리를 구하는 방법은 다음과 같다.

ex)35.3036

도 : 35

분 : 3036 * 60 : 18

초 : (0.3036 - 18/60) : 0.00369 * 3600 = 13.3

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

24/48

35도 18분 13.3초

A지점 : 동경 127도 16분 3.6초 북위 37도 20분 15.84초

B지점 : 동경 127도 19분 32.04초 북위 37도 27분 30.6초

차 이 : 경도 00도 3분 28.44초 위도 00도 7분 14.76초

경도간 거리 : (0도 * 88.8) + (3분 * 1.48) + (28.44초 * 0.025) = 5.151km

위도간 거리 : (0도 * 111) + (7분 * 1.85) + (14.76초 * 0.031) =13.661km

두지점간거리 :

4.2 Arduino

1) Sensor값 수신

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

25/48

Arduino 터미널 창에 위와 같은 코드를 입력 후 업로드를 하면, Arduino에 해당 소스가

업로드 된다. 심박 수 센서의 데이터 값(Signal, BPM, IBI)들이 Arduino 시리얼모니터에 출

력된다. 이 값들은 후에 블루투스를 통해 스마트폰 어플리케이션에 전송된다.

4.3 Server

1) Database

[Figure 17] 사용자테이블

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

26/48

사용자가 자신의 정보를 입력하면 ‘사용자테이블’에 데이터가 저장된다. id로 식별되고,

성별, 나이, 몸무게는 후에 칼로리를 계산하는데 사용된다.

[Figure 18] 실시간테이블

사용자가 운동을 시작할 때부터 마칠 때까지의 소비칼로리, 시간, 이동거리를 날짜별로

저장해둔다. 이 데이터들은 통계치를 확인할 때 날짜별로 불려와 사용자에게 보여지게 된

다.

2) 칼로리 계산

남성: ((-55.0969 + (0.6309 x HR) + (0.1988 x W) + (0.2017 x A))/4.184) x 60 x T

여성: ((-20.4022 + (0.4472 x HR) - (0.1263 x W) + (0.074 x A))/4.184) x 60 x T

HR = Heart rate (beats/minute) W = Weight (kilograms)

A = Age (years) T = Exercise duration time (hours)

심박 수에 근거한 칼로리 계산 공식은 사용자가 운동을 하는 경우에 생기는 평균 심박

수를 측정하여 그에 따른 칼로리 계산을 하는 것이다. 남성과 여성은 일정시간의 사용하

는 근육 량과 몸무게의 차이로 인하여 소모하는 칼로리 량이 다르기 때문에 나누어 계산

한다.

-5% grade: CB = [0.0251 x KPH3 - 0.2157 x KPH2 + 0.7888 x KPH + 1.2957] x WKG x T

-4% grade: CB = [0.0244 x KPH3 - 0.2079 x KPH2 + 0.8053 x KPH + 1.3281] x WKG x T

-3% grade: CB = [0.0237 x KPH3 - 0.2000 x KPH2 + 0.8217 x KPH + 1.3605] x WKG x T

-2% grade: CB = [0.0230 x KPH3 - 0.1922 x KPH2 + 0.8382 x KPH + 1.3929] x WKG x T

-1% grade: CB = [0.0222 x KPH3 - 0.1844 x KPH2 + 0.8546 x KPH + 1.4253] x WKG x T

0% grade: CB = [0.0215 x KPH3 - 0.1765 x KPH2 + 0.8710 x KPH + 1.4577] x WKG x T

+1% grade: CB = [0.0171 x KPH3 - 0.1062 x KPH2 + 0.6080 x KPH + 1.8600] x WKG x

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

27/48

+2% grade: CB = [0.0184 x KPH3 - 0.1134 x KPH2 + 0.6566 x KPH + 1.9200] x WKG x T

+3% grade: CB = [0.0196 x KPH3 - 0.1205 x KPH2 + 0.7053 x KPH + 1.9800] x WKG x T

+4% grade: CB = [0.0208 x KPH3 - 0.1277 x KPH2 + 0.7539 x KPH + 2.0400] x WKG x T

+5% grade: CB = [0.0221 x KPH3 - 0.1349 x KPH2 + 0.8025 x KPH + 2.1000] x WKG x T

+6%~15% grade: CB = [0.1 x MPM + 1.8 x MPM x FG + 3.5] x WKG x T x 60 x 5 / 1000

CB = Calorie burn (calories) KPH = Walking speed (kilometres per hour)

WKG = Weight (kilograms) T = Time (hours)

Grade = Running surface grade

걷기에 따른 계산 공식은 거리(distance), 경사(grade), 시간, 몸무게에 따라 계산된다.

거리는 길고 경사는 오르막길(incline)일수록 칼로리 소모량은 더 많아진다. 하지만

걷기에서는 걷는 속도는 칼로리 소모에 큰 영향을 미치지 않는다.

For - 20% ≤ % Grade ≤ - 15%: CB = (((-0.01 x G) + 0.50) x WKG + TF) x DRK x CFF

For - 15% < % Grade ≤ - 10%: CB = (((-0.02 x G) + 0.35) x WKG + TF) x DRK x CFF

For - 10% < % Grade ≤ 0%: CB = (((0.04 x G) + 0.95) x WKG + TF) x DRK x CFF

For 0% < % Grade ≤ 10%: CB = (((0.05 x G) + 0.95) x WKG + TF) x DRK x CFF

For 10% < % Grade ≤ 15%: CB = (((0.07 x G) + 0.75) x WKG + TF) x DRK x CFF

CB = Calorie burn (calories)

G = Grade of the running surface (expressed as an integer number, i.e. -10)

WKG = Weight (kilograms)

DRK = Distance run (kilometers)

CFF = Cardiorespiratory fitness factor (see description below)

TF = Treadmill factor (see description below)

달리기에 따른 계산 공식은 거리(distance), 경사(grade), 시간, 몸무게에 따라 계산된다.

거리는 길고 경사는 오르막길(incline)일수록 칼로리 소모량은 더 많아진다. 하지만

달리기에서도 속도는 칼로리 소모에 큰 영향을 미치지 않는다. 그 이유는 사람마다

몸무게와 운동하는 경사가 다르기 때문에 속도도 영향을 받아 모두 다르기 때문이다. 본

프로젝트에서는 경사를 구하지 않기 때문에 평지에서 운동하는 경우로 계산한다.

[출처] http://www.shapesense.com/fitness-exercise/

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

28/48

4.4 통신

1) Smartphone - Server 통신

MySQL에 연결 하고 연결할 데이터베이스를 선택하여 연결하는 php파일이다. 이 파일

을 서버에 넣어두고 안드로이드에서 서버주소/파일이름.php를 실행하면 데이터베이스를

조작할 수 있다.

안드로이드에서 입력한 정보를 받아서 연결되어 있는 데이터베이스에 저장하는 php파

일이다. 데이터베이스에 연결해주는 connect.php를 포함하고 있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

29/48

2) Smartphone – Arduino 통신

페어링 된 기기 중에서 사용자가 선택한 블루투스를 찾는 부분이다.

찾은 블루투스를 스마트폰과 연결한다.

Thread를 돌려서 블루투스로부터 데이터가 들어오는지를 계속 감시한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

30/48

블루투스로부터 들어오는 데이터를 처리하는 부분이다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

31/48

4.5 모듈설정

1) 센서 모듈 초기설정

심박 수 센서를 Arduino에 연결한 후 Arduino 터미널 창에 위와 같은 중요 코드를 입

력한다. 위의 코드는 심박 수를 측정하는 코드이다. IBI (Inter Beat Interval), Signal, Pulse는

심박 수 센서에서 측정된 아날로그 데이터들이다. 측정주기는 현재 2ms로 되어있지만 조

정 가능하며 noise 제거도 조정 가능하다. 또한 1초 동안의 심박 수(BPM) 또한 구할 수

있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

32/48

[Table 3] 심박 수 측정 변수

심박 수를 측정할 때 각 변수들의 측정 rate와 변수들에 대한 설명이다.

[출처] http://www.artrobot.co.kr/

2) Arduino Bluetooth 모듈 설정

[Figure 21] Arduino Bluetooth 모듈 설정

총 6개의 핀 중 RXD, TXD를 Arduino의 디지털 핀 두 개에 연결하고, GND, VCC에 연결

한다. 본 프로젝트에서 사용하는 RN-42 블루투스 실드는 다른 블루투스 모듈과는 달리

별도의 설정 없이도 Smartphone과 바로 블루투스 통신이 가능하다는 장점이 있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

33/48

[Figure 22] 스케치화면

블루투스 모듈과 연결한 후 해당 스케치를 올리면 블루투스 통신이 가능하다. 실행하면

다음과 같은 화면이 출력된다.

[Figure 23] 시리얼모니터

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

34/48

5. 가상시나리오

5.1 Case 1 :

사용자 A는 조깅을 시작하기 전 자신의 신체 정보를 Android application에 접속하여 입

력한다. 입력된 정보를 바탕으로 A가 운동한 거리와 그 시간동안에 측정된 심박 수를 이용

하여 소모된 칼로리량을 계산할 수 있고, A는 계산된 칼로리량을 확인하여 그날 운동한량의

대한 정보를 확인할 수 있다.

[Figure 24] Case 1 : Use Case Diagram

5.2 Case 2 :

평소 고혈압으로 고생하던 사용자 B는 등산을 하던 도중 Hot-body application에서 위험

심박 수 기준이 초과됨을 알려주어 자칫 위험할 수 있었던 상황에서 운동을 그만두고 휴식

을 취하여 위기를 모면할 수 있었다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

35/48

[Figure 25] Case 2

6. 실제 시연 방법

실제 시연은 시나리오를 기반으로 팀원이 애플리케이션에 접속하여 자신의 신체정보를 입

력하여 가입을 한다. 몸에 심박수 측정센서를 부착하고 애플리케이션을 실행시켜 운동을 시

작한다. 운동을 하는 동안 처음 운동을 시작한 위치부터 현재 이동한 거리까지 GPS로 측정

을 계속한다. 운동이 끝나면 애플리케이션을 종료하여 자신의 이동거리와 심박 수를 통해

계산된 칼로리를 애플리케이션을 통해 확인 할 수 있다. 자신의 신체정보가 변경되었을 시

에는 즉시 애플리케이션에 들어가서 정보를 바꿔준다.

7. 기대효과

국내, 국외에 웨어러블 기술을 이용한 기기들이 점차 많아지고 있는 추세이다. 작게는

안경, 시계부터 시작해서 컴퓨터를 사람이 입을 수 있게 되었다. 따라서 웨어러블 기술은

각광받고 있는 기술로서 실생활에서 사용가능할 뿐만 아니라 광고효과까지 낼 수 있는

다양한 기술들이 개발 되고 있다. 이러한 웨어러블 기술을 이용하여 핫바디시스템을

개발한다. 핫바디시스템은 운동을 하고자 하는 사람이 편리하게 자신의 운동량 정보를 알

수 있도록 하는 시스템이다. 크게 Arduino의 심박 수 센서 부분, 스마트폰의 GPS 부분,

Server부분, 스마트폰의 어플리케이션 부분, User부분으로 구성되어있다. 사용자가 자신의

신체정보를 스마트폰 애플리케이션에 등록한 뒤 심박수측정센서를 몸에 부착하고

스마트폰을 들고 일상생활, 등산, 달리기 등 여러 가지 운동을 하게 되면 심박수

측정센서와 Smartphone에 있는 센서에서 값을 받아 스마트폰에 실시간으로 출력한다.

이렇게 출력된 데이터는 stop 버튼이 눌리면 DB에 저장, 정렬된다. 이 데이터는

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

36/48

스마트폰에서 저장된 공식에 맞게 운동에 따라 운동량이 계산된다. 따라서 사용자는 원할

때 마다 애플리케이션으로 목표 칼로리, 칼로리 소모량, 자신의 심박 수를 확인 할 수 있고

자신의 일주일 또는 한 달의 소비 운동량을 통계 자료를 내어 확인함으로써 동기부여가

되는 기대효과가 있다. 또한 심박 수 센서를 Bluetooth를 이용해 필요시에만 사용하게끔

효율성을 높이고 다양한 센서 모듈을 장착함으로써 많은 기능을 추가 할 수 있는 효과를

기대할 수 있다.

8. 세부계획 및 일정

[Figure 26] 세부계획 및 일정

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

37/48

9. 팀원 담당업무

[Figure 27] 팀원 담당 업무

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

38/48

10. 부록

10.1 시험결과

1) 어플리케이션

⓵ 어플리케이션 시작화면

어플리케이션을 시작하면 사용자의 로그인 화면이 나온다. 어플리케이션을 처음 이용하는

사용자는 가입버튼을 누른다

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

39/48

⓶ 어플리케이션 가입화면

가입을 하기위해 ID와 비밀번호 등등 정보를 입력한다.

로그인을 하면 운동을 시작할 수 있는 화면이 나온다. 사용자는 걷기와 달리기 중 자신이

원하는 운동을 선택하여 Start버튼을 누른다.

2) 데이터베이스 정보수신 확인

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

40/48

[Figure 30] 데이터베이스 정보 수신 확인

어플리케이션에서 입력한 ‘테스트’사용자의 정보가 저장된 것을 확인할 수 있다.

3) 현재 위치와 이동경로 확인

Start버튼을 누른 후에 메인화면의 나의위치 버튼을 누르면 현재 자신의 위치를 확인할

수 있다. 운동이 끝난 후에 Stop버튼을 누르면 자신의 이동거리를 확인할 수 있다. 본 시

스템에서는 네이버에서 제공하는 네이버지도 오픈 API를 사용하였다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

41/48

4) 이동거리와 칼로리 확인

사용자는 운동을 하면서 실시간으로 자신의 이동거리와 지금까지 소비한 칼로리, 오늘

총 소비한 칼로리, 목표까지 남은 칼로리를 확인할 수 있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

42/48

5) 아두이노 블루투스 연결 확인

아두이노에 블루투스와 심박수 센서 스케치를 업로드한뒤 어플리케이션에서 bluetooth

버튼을 누르면 여러개의 bluetooth기기들으르 검색하는 화면이 나온다. 사용자는

아두이노에 연결된 bluetooth 모듈을 선택하여 심박수 센서를 통해 측정되는 사용자의

심박수 값을 string으로 확인할 수 있다.

6) 심박수 확인

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

43/48

아두이노에 연결된 심박수센서를 통해 측정된 값이 블루투스통신으로 스마트폰 어플리케이

션에 값이 출력되는 것을 확인할 수 있다.

10.2 소스코드

1) GPS

⓵ 사용자의 시작위치

⓶ 사용자의 마지막위치

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

44/48

⓷ 시작과 끝 위치의 거리계산

2) 칼로리계산

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

45/48

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

46/48

사용자가 남자인지 여자인지와 사용자가 걷는지 뛰는지를 구분하여 칼로리를 계산한다.

3) 아두이노

블루투스통신이 가능하게 되면 심박수 값이 출력되는 소스

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

47/48

년월일: 문서번호: 변경코드: 수정회수: 페이지:

2013-12-23 1.2 2 (48)

문서명: hot spICE 프로젝트 상세설계서

무단 복제/전제 금지 (HUFS Proprietary)

48/48

10.3 SVN repository


Recommended