Search
Duplicate
🗒️

생활패턴 분석 일기장 - Capstone

PROJECT 소개

GPS를 활용하여 평소 본인의 행동 패턴을 파악하여 생활패턴을 개선하고, 음성으로 편하게 사용할 수 있는 일기장 제작
투입인원 : 3명
담당 역할 : Android Application Developer - Function & API
주요업무
Android Application 스마트워치(갤럭시 워치) 연동 (타이젠 스튜디오)
Android Application 제작
MySQL DB
GPS(Google Map API), STT(Speech to Text API)
스킬 및 사용툴
HTML JSP AWS Android Studio Tizen Studio Google API

주제 정의

스마트 워치 내부의 심박동수, GPS 기능을 활용한 감정 일기장 애플리케이션 제작 - GPS 기능을 활용하여 하루 중 방문한 곳의 정보를 저장 후 그것을 저장 후 가공하여 방문한 경로 분석 및 통계 산출
방문한 장소에서의 심박동수를 측정
GPS 정보를 종합하여 하루 생활패턴 분석
분석한 정보와 음성인식을 통한 생활패턴 분석 일기장 작성

배경

생활 패턴 분석을 바탕으로 평소 본인의 생활패턴 파악 및 미래 생활습관 계획 및 개선 가능, 일기장 작성을 통한 과거 행동 및 감정 파악으로 기억효과 상승의 목적
관련 분야 survey
■ Daylio 일기장 앱
기존과의 차별성 : 그날의 기분을 수동으로 기입하는 방식 <-> 스마트 워치의 심박동수를 기반으로 한 자동 완성 방식
■ Day one 일기장 앱
기존과의 차별성 : 글을 쓰는 경우 해당 장소에서 매번 일기장을 기입하는 방식 <-> GPS 정보를 누적 저장하여 하루 일과 마무리 시 일기 작성 가능
■ Famy, Nike running 위치기반 앱
기존과의 차별성: 단순한 GPS 위도 경도 저장으로 정확히 어디를 갔는지에 대한 정보 X <-> 해당 장소의 구체적 정보 저장으로 어디를 갔는지에 대한 정보

개발 내용

개발 플랫폼

Tizen Studio, Android Studio, Visual Studio2017, Eclipse, mysql, Windows 10, Galaxy Gear S3, Galaxy S8, AWS 프리티어.

상세 요구사항 

GPS를 활용하여 하루 중 다녀간 장소들의 정보 저장
일, 주, 월 단위의 data 저장 및 분류
장소 10분 이상 체류 시 질문을 통한 장소의 상세정보 저장
음성 -> text 변환을 통한 음성기반 일기장 작성
개인별 data 저장을 위한 서버 구현
통합 데이터 제공 및 일기장 작성하는 안드로이드 앱 UI
작성한 일기장 수정, 편집 기능

시스템 개요도

open source libraries or APIs , libraries, data sources

-Andriod Studio(Version 3.5)
-Google Map API
-Google Speech to Text Trascription with cloud with the cloud speech API
-Visual Studio(Version 2017)
-Tizen Studio(Version 3.3)
-Amazon EC2
-php myadmin

구현

Tizen Studio

App LifeCycle
1.
app_create & terminate (기본 lifecycle)
2.
App_resume & pause (앱윈도우 속성 / 화면유무)
3.
App_control (앱 런칭시 부가적인 정보 전달 caller <-> callee // service <-> ui )
4.
app_create 통해 mainloop 진입 전 앱 생성 후 main loop 진입

Main 함수 선언

event_callback 함수를 통해 Main 객체를 생성
ui_app_main 함수를 통해 main program 생성

Samsung Accesory Protocol 초기화

Sap agent를 생성함으로써 데이터 통신을 위한 준비

심박수 측정을 위한 on_sensor_event 함수

switch_case 문을 통해 event type을 HRM으로 맞춤
event[0]에 BPM 값 저장

Tizen Studio Server 통신

SAP_socket_send_data 함수를 통한 서버와의 데이터 전송

Android Studio

GPS Data Controller

Location.get 함수를 통한 경도, 위도 값 setting
마커를 이용하여 현재 위치 및 경로 표시

회원가입

Post, Submit 형식 및 Android의 Setting을 확인하여 ID, PW data를 불러옴
id, pw 를 검사한 후 조건을 만족하면 sql문에 binding

통계 - Barchart

Barchart library를 사용한 그래프 구현
animateXY 함수를 통한 움직임 구현
사용자 평균과의 차이 분석

통계 - PieChart

PieChaart library를 사용한 Pie Chart 구현
어떤 분야의 비중이 높은지를 판단하는 분석도구 활용

결과물

App Main 화면

STT(Speech to Text) API를 활용한 음성인식 일기장

녹음버튼을 눌러 음성으로 일기장을 작성, 삭제버튼을 통해 일기 삭제

일기장 List

작성한 일기장을 날짜별로 확인
해당 날짜의 이동경로, 심박수 data 및 일기 확인

통계

해당 월의 사용자 행동 패턴 분석 결과 도출
어떤 장소를 자주갔는지에 대한 파이 차트 제공
Detail 정보 확인 시 막대그래프를 수치 분석 및 사용자 통계와 비교

배운점 , 좋았던 점

1. 다양한 Tool 및 API 활용 경험

이전에 안드로이드 어플리케이션을 만든 경험은 있지만 그때는 단순히 Andriod Studio 내에서 모든 동작을 제어할 수 있는 어플리케이션을 만들었었다. 하지만 이번에는 회원가입을 통해 MySQL DB와의 연동, Tizen Studio를 통한 스마트워치와의 연동, Google Map API, STT API 등 다양한 외부 Tool 및 라이브러리를 활용하였다.
비록 낯선 환경에서 새로운 것들에 대해 배우느라 많은 시간을 소모하고 그 과정에서 어려움도 많았지만 새로운 경험을 통해 새로운 지식을 얻을 수 있었던 좋은 기회였던 것 같다.

아쉬운점

1. 버전 호환의 어려움

다양한 기능을 구현하고 싶어 스마트 워치의 심박동 데이터, 구글 맵 API, STT API 등 다양한 API 및 Library들을 사용하였다. 하지만 여러 기능들을 하나의 Application 안에 구현하려다 보니 라이브러리 호환성 및 버전 이슈에 대한 문제가 많이 발생하였다. 때문에 버전 호환에 대한 문제를 해결하는데에만 많은 시간을 소모하고 말았다.
사전에 충분한 조사를 통해 API 및 라이브러리의 호환성 문제를 체크하는 것이 프로젝트 일정에 차질이 없도록 하는 길이라는 것을 절실히 느꼈다.

2. 통계 분석의 아쉬움

시간이 많지 않아 사용자 행동 패턴 분석을 위한 방법으로 단순하게 다른 사용자들의 평균과의 횟수 비교 data만을 제공하였던 것이 아쉬움으로 남는다. 비록 다양한 기능을 구현하지 못하였더라도 유용한 기능을 구현하는 데에 시간을 더 투자하였으면 하는 아쉬움이 남는다.
추후에 추가적인 개발을 진행할 시 단순 횟수비교가 아닌 통계기법을 활용한 분석을 통해 더욱 유의미한 데이터를 제공할 수 있을 것이라고 생각한다.