38
년월일: 문서번호: 변경코드: 수정회수: 페이지: 2013-12-05 1.3 3 (1/38) 문서명: Trash Management System 무단 복제/전제 금지 (HUFS Proprietary) 쓰레기통 관리 시스템 상세 설계서 (Trash Management System) Ver. 1.3 2013. 12. 05. 한국외국어대학교 정보통신공학과 1팀(N-ICE)

쓰레기통 관리 시스템 - mclab.hufs.ac.krmclab.hufs.ac.kr/mediawiki/images/7/7e/1팀_N-ICE_상세설계서.pdf · [figure 6] 소프트웨어 구성도 소프트웨어인 APMSETUP7을

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (1/38)

문서명: Trash Management System

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

쓰레기통 관리 시스템

상세 설계서

(Trash Management System)

Ver. 1.32013. 12. 05.

한국외국어대학교

정보통신공학과

1팀(N-ICE)

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (2/38)

문서명: Trash Management System

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

구 분 소 속 성 명 날 짜 서 명

작성자

한국외국어대학교 김 경 호 2012. 12. 04

배 연 정 2012. 12. 04

백 승 은 2012. 12. 04

임 연 주 2012. 12. 04

검토자

한국외국어대학교 김 경 호 2012. 12. 04

배 연 정 2012. 12. 04

백 승 은 2012. 12. 04

임 연 주 2012. 12. 04

사용자

승인자 한국외국어대학교

문서 정보

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (3/38)

문서명: Trash Management System

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

머리말

본 문서는 아두이노 센서와 WiFi를 이용해서 쓰레기통을 더욱 효과적으로 관리하는 시스템의

시나리오 및 사용자 요구사항을 기술한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (4/38)

문서명: Trash Management System

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

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

1.0

김경호

배연정

백승은

임연주

2013. 10. 31. 상세설계서 초안 작성

검토자

1.1

김경호

배연정

백승은

임연주

2013. 11. 06. 상세설계서 수정

검토자

1.2

김경호

배연정

백승은

임연주

2013. 12. 04. 상세설계서 수정

검토자

1.3

김경호

배연정

백승은

임연주

2013. 12. 22. 상세설계서 최종 수정

개정 이력

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (5/38)

문서명: Trash Management System

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

목 차

1. 개요 ························································································································································ 9

1.1 목적 ·············································································································································· 9

1.2 범위 ············································································································································ 10

1.3 관련 문서 ·································································································································· 10

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

2.1 시스템 기능 구성도 ················································································································ 11

2.1.1 Administrator ················································································································ 11

2.1.2 Cleaner ··························································································································· 11

2.1.3 아두이노 초음파 센서 + WiFi 쉴드 ········································································ 11

2.1.4 TCP 서버 ························································································································ 12

2.1.5 스마트폰 ························································································································· 12

2.1.6 Database ························································································································ 12

2.1.7 웹브라우저 ····················································································································· 12

2.1.8 소프트웨어 ···················································································································· 12

2.2 소프트웨어 ································································································································ 12

2.2.1 Web – APMSETUP7 ···································································································· 12

2.2.2 아두이노 ························································································································· 13

2.2.3 안드로이드 애플리케이션(스마트 폰) ····································································· 14

2.2.4 Database – MySQL ···································································································· 14

2.2.5 소프트웨어 구성 ··········································································································· 14

2.3 하드웨어 ···································································································································· 15

2.3.1 아두이노 초음파 거리센서 ························································································· 15

2.3.2 스마트폰 ························································································································· 15

2.3.3 아두이노 WiFi 쉴드 ···································································································· 15

2.3.4 하드웨어 구성 ·············································································································· 16

2.4 개발환경 ···································································································································· 16

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (6/38)

문서명: Trash Management System

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

3. 상세 기능 설명 ·································································································································· 17

3.1 시스템 기능 설명 ···················································································································· 17

3.1.1 네트워크 구성도 ·········································································································· 17

3.1.1.1 아두이노 모듈, TCP서버, Database와의 통신 ············································ 17

3.1.1.2 Database, 웹서버, 웹브라우저와의 통신 ····················································· 17

3.1.1.3 웹브라우저, 웹서버와 Database와의 통신 ·················································· 18

3.1.1.4 스마트폰에서 웹서버로의 통신 ····································································· 18

3.1.1.5 웹서버, Database Server와의 통신 ······························································· 19

3.1.1.6 웹서버에서 스마트폰으로의 통신 ································································· 19

3.1.2 역할 설명 ······················································································································· 20

3.1.2.1 Cleaner ··············································································································· 20

3.1.2.2 Web Server ········································································································ 20

3.1.2.3 Database ············································································································· 20

3.1.2.4 스마트폰 ············································································································· 20

3.1.2.5 아두이노 초음파 센서 + WiFi 쉴드 ····························································· 20

3.1.2.6 TCP서버 ··············································································································· 20

3.2 시스템 요구사항 ······················································································································ 20

3.2.1 Interface 요구 사항 ···································································································· 20

3.2.2 시스템 요구사항 ··········································································································· 21

3.2.3 사용자 요구사항 ··········································································································· 21

4. 시스템 기술개념 ································································································································ 22

4.1 전체 기술 구성 ························································································································ 22

4.2 Web Browser를 통한 회원가입 ··························································································· 23

4.3 애플리케이션을 통한 청소부 로그인 ·················································································· 23

4.4 센서를 통한 측정 값 그래프로 표시 ·················································································· 24

4.5 센서를 통한 측정값을 통해 비워야 할 쓰레기통 쓰레기통번호 분석 ························ 24

4.6 분석된 쓰레기통 번호로 최적화 된 경로를 찾아 화면에 띄움 ···································· 25

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (7/38)

문서명: Trash Management System

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

5. 기능 동작 ············································································································································ 26

5.1 기능 흐름도 ······························································································································ 26

5.1.1 전체 기능 흐름도 ········································································································ 26

5.1.1.1 Login ··················································································································· 26

5.1.1.2 최단경로 ············································································································· 27

5.2 아두이노 ···································································································································· 28

5.2.1 아두이노 초음파 거리센서 ························································································ 28

5.2.2 아두이노 WiFi 쉴드 ····································································································· 29

5.2.3 쓰레기 양의 EWMA 계산 ·························································································· 29

5.3 Database ··································································································································· 30

5.3.1 Cleaner Information ··································································································· 30

5.3.2 Trash state ·················································································································· 31

5.4 안드로이드 ································································································································ 32

5.4.1 안드로이드 Activity 구성 ·························································································· 32

5.4.2 안드로이드 User Interface ························································································ 33

5.4.3 라우팅 ···························································································································· 35

5.4.3.1 지도 위에 경로 그리기 ··················································································· 35

5.4.3.2 지도 위에 오버레이 아이템 표시하는 방법을 설명 ································· 36

5.5 Web Site ··································································································································· 36

5.5.1 Web Server사이트 User Interface ··········································································· 36

6. 실제 적용 분야 & 기대 효과 ········································································································· 37

7. 세부 추진 계획 및 일정 ·················································································································· 38

8. 팀원 담당업무 ···································································································································· 38

표 목 차

[Table 1] 관련문서 ························································································································· 10

[Table 2] 각 부분별 개발 환경 ··································································································· 16

[Table 3] 팀원 담당엄무 ··············································································································· 38

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (8/38)

문서명: Trash Management System

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

그 림 목 차

[Figure 1] 수집 데이터 처리 과정 ······························································································· 8

[Figure 2] 시스템 전체 구성도 ··································································································· 11

[Figure 3] APMSETUP7 ················································································································· 12

[Figure 4] 아두이노 sketch ·········································································································· 13

[Figure 5] 안드로이드 ··················································································································· 13

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

[Figure 7] 아두이노 초음파 거리센서 ······················································································· 15

[Figure 8] 아두이노 WiFi 쉴드 ··································································································· 15

[Figure 9] 하드웨어 구성도 ········································································································· 16

[Figure 10] IF-1 ······························································································································ 17

[Figure 11] IF-2 ······························································································································ 18

[Figure 12] IF-3 ······························································································································ 18

[Figure 13] IF-4 ······························································································································ 19

[Figure 14] IF-5 ······························································································································ 19

[Figure 15] IF-6 ······························································································································ 19

[Figure 16] 전체 기술 구성 ········································································································· 22

[Figure 17] Web Browser를 통한 기술 구성 ·········································································· 23

[Figure 18] 청소부 로그인 ··········································································································· 24

[Figure 19] 웹브라우저에 그래프 표시 ····················································································· 19

[Figure 20] 센서를 통한 측정 값을 통해 비워야 할 쓰레기통 노드번호 분석 ··············· 25

[Figure 21] 분석된 노드번호로 최적화 된 경로를 찾아 띄움 ············································· 26

[Figure 22] Login 흐름도 ············································································································· 27

[Figure 23 최단경로 흐름도 ········································································································ 28

[Figure 24] 아두이노 기능 ··········································································································· 29

[Figure 25] 거리측정 스케치 ······································································································· 29

[Figure 26] WiFi 접속 스케치 ····································································································· 30

[Figure 27] Cleaner Information Table ···················································································· 31

[Figure 28] Trash state Table ····································································································· 31

[Figure 29] 안드로이드 Activity ·································································································· 32

[Figure 30] 애플리케이션 UI 1 ··································································································· 33

[Figure 31] 애플리케이션 UI 2 ··································································································· 34

[Figure 32] 지도 위 경로 ············································································································· 36

[Figure 33] 위치 아이템 지정 ····································································································· 37

[Figure 34] 웹 사이트 ··················································································································· 38

[Figure 35] 회원가입 ····················································································································· 38

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (9/38)

문서명: Trash Management System

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

1. 개요 본 장에서는 아두이노와 WiFi, 초음파 거리센서를 이용하여 보다 더 효율적으로 쓰레기통을

관리할 수 있는 시스템 및 사용자의 요구사항을 총괄 개요를 제공한다. 시스템 구축을 위해 목

적과 범위, 관련 문서, 용어 및 약어를 소개한다.

1.1 목적

기존의 쓰레기통을 관리하는 방법은 설치되어있는 쓰레기통들을 순차적으로 돌면서 전

부 청소하는 방식이라 비어있는 쓰레기통도 들려야 하므로 시간적이나 자원(인력)적으

로 소비가 심하다. 본 팀은 이러한 자원 낭비를 막기 위해 아이디어를 도출한 결과, 아

두이노의 센서들과 WiFi의 무선통신을 이용하여 효율적인 쓰레기통 관리 시스템을 만들

고자 한다. 본 프로젝트를 구현하기 위해 아래의 사항을 구체적으로 명시하고 구현할

것이다.

[Figure 1]수집 데이터 처리 과정

- 아두이노 초음파 거리센서, WiFi 쉴드를 이용한 쓰레기통 관리시스템을 구성한다.

- 쓰레기통의 현재 상황을 파악하기 위해 아두이노의 초음파 거리센서를 이용하여 쓰레기양을 측

정한다.

- 측정된 데이터 값은 WiFi를 통하여 Database에 저장된다.

- 쓰레기양을 Database에 저장하여 관리함으로써 쓰레기통의 상태를 청소부에게 실시간으로 제공

하여 효율적으로 관리할 수 있게 한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (10/38)

문서명: Trash Management System

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

1.2 범위

본 프로젝트의 쓰레기 관리 시스템이란 필요한 장소에 인력을 보내므로 효율적인 인력사

용이 가능하고, 기존보다 적은 인력만을 필요하므로 인력비용을 절약할 수 있다. 또한 실시

간으로 쓰레기통을 관리할 수 있기 때문에 청결을 유지할 수 있다.

1.3 관련 문서출판사 문서 제목

인사이트 나의 첫 아두이노 프로젝트BM 성안당 (모바일로 배우는) 아두이노 따라하기O’REILLY PHP, MySQL & JavaScript한빛 미디어 Head first PHP & MySQL

[Table 1] 관련 문서

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (11/38)

문서명: Trash Management System

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

2. 시스템 구성

2.1 시스템 기능 구성도

[figure 2] 시스템 전체 구성도

2.1.1 Administrator

웹브라우저, 웹서버, Database Server, TCP Server를 관리하는 업무를 담당하는 인원

이다.

2.1.2 Cleaner

스마트폰과 링크된 웹브라우저를 통해 회원가입을 하고, 애플리케이션에 청소부의

개인정보 (ID, Password)를 스마트폰에 입력하고 승인을 받는다. 또, 스마트폰 애플리

케이션을 보고 쓰레기통을 관리한다..

2.1.3 아두이노 초음파 센서 + WiFi 쉴드

Web Server로부터 받은 센서 값을 이용하여 현재 어느 쓰레기통이 어느 정도 찼는

지 시각적으로 제공해준다. 그리고 비워야할 쓰레기통을 분석하여 빠른 경로를 제공

해준다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (12/38)

문서명: Trash Management System

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

2.1.4 TCP 서버

TCP서버로 들어온 센서 측정값을 파싱하여 Database에 저장한다.

2.1.5 스마트폰

Cleaner가 자신의 ID와 PASSWORD로 로그인 할 수 있게 한다. 아직 승인 받지 않은

청소부도 회원가입을 통해 애플리케이션을 이용할 수 있다. 또, 웹서버에서 온 처리해

야할 쓰레기통을 최적의 경로로 Cleaner에게 제공한다.

2.1.6 Database

TCP서버를 통해 받은 거리측정 센서 값이 저장되어 있다. 또한 스마트폰에서 입력한

회원 정보와 저장된 정보가 일치하는지 비교한다.

2.1.7 웹브라우저

회원정보를 입력하면 Database에 정보가 저장된다. Database에 저장된 회원 정보를

웹 브라우저에 띄운다. 또한 Database에 저장된 초음파센서 측정값을 불러와 웹브라

우저에 그래프로 표시한다.

2.1.8 웹 서버

스마트폰에서 회원 가입할 경우, 청소부가 입력한 회원정보가 웹서버를 통해

Database에 저장된다. Database에 저장된 회원정보를 웹 브라우저에서 볼 수 있도록

한다. Database에 저장된 초음파 거리센서 값을 스마트폰이 가져와 애플리케이션에서

막대그래프로 확인 가능하도록 한다. 또한 웹서버에서 쓰레기통의 최단경로를 구한

후 안드로이드 폰에서 확인 가능하도록 한다.

2.2 소프트웨어 쓰레기통 관리시스템은 PHP를 이용한 웹과 안드로이드 애플리케이션을 제공하는데 다음과

같은 소프트웨어를 포함한다.

2.2.1 Web – APMSETUP7

APMSETUP7은 아파치(Apache, 웹서버) 서버를 구축하여 PHP(웹 프로그램 언어),

MySQL(Database관리) 프로그램을 사용할 수 있도록 내 컴퓨터를 서버로 만드는 프로

그램이다. 위의 3개의 서버를 각각 설치하기 위해서는 환경변수 설정이 복잡하지만

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

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

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (13/38)

문서명: Trash Management System

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

[figure 3] APMSETUP7

2.2.2 아두이노

아두이노는 오픈소스를 기반으로 한 단일 보드 마이크로 컨트롤러이다. 이는 여러 센

서들이 포함된 KIT 형식의 제품이다. 아두이노를 통해 본 프로젝트에서 사용하는 모든

센서를 제어한다.

[figure 4] 아두이노 sketch

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (14/38)

문서명: Trash Management System

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

2.2.3 안드로이드 애플리케이션(스마트 폰)

리눅스(Linux) 커널을 기반으로 한 안드로이드 운영체제의 응용프로그램이다.

[figure 5] 안드로이드

2.2.4 Database – MySQL

표준 Database 질의 언어인 SQL(Structured Query Language)을 사용하는 개방 소스

의 관계형 Database 관리 시스템(RDatabaseMS). 매우 빠르고, 유연하며, 사용하기 쉬

운 특징이 있다. 다중 사용자, 다중 쓰레드를 지원하고, C, C++, Eiffel, 자바, 펄, PHP,

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

2.2.5 소프트웨어 구성

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

소프트웨어인 APMSETUP7을 이용하여 컴퓨터를 서버로 만든 후 안드로이드 어플과 서버가

통신하도록 한다. 아두이노 초음파 거리 센서는 아두이노에서 제공하는 아두이노 소프트웨어

를 이용하여 아두이노 sketch에 소스코드를 작성하여 초음파 거리센서 값을 측정한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (15/38)

문서명: Trash Management System

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

2.3 하드웨어 웹과 안드로이드 애플리케이션을 기반으로 쓰레기통 관리시스템을 위해서 다음과 같은

하드웨어를 포함한다.

2.3.1 아두이노 초음파 거리센서

3M 까지 목표를 검출하는 초음파 센서 이며, 3개의 핀과 2개의 전원과 접지로 구성

되어 있다. 아두이노 초음파 거리센서로 쓰레기통의 쓰레기양을 측정한다.

[figure 7] 아두이노 초음파 거리센서

2.3.2 스마트폰

스마트폰 애플리케이션을 이용하여 청소부가 쓰레기통을 수거하는 최단경로를 파악

할 수 있도록 구현한다. 애플리케이션을 통해 최단 경로를 파악할 수 있으므로 효율적

이다.

2.3.3 아두이노 WiFi 쉴드

아두이노 WiFi 쉴드는 아두이노를 무선으로 인터넷에 연결시켜준다. 아두이노 초음파

거리센서로 측정한 값을 아두이노 WiFi 쉴드를 통하여 TCP서버로 전송해주는 역할을

한다.

[figure 8] 아두이노 WiFi 쉴드

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (16/38)

문서명: Trash Management System

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

2.3.4 하드웨어 구성

[figure 9] 하드웨어 구성도

하드웨어는 스마트폰, 아두이노 WiFi쉴드, 아두이노 초음파 거리센서를 이용한다. 스마트폰의 안

드로이드 어플을 통해 청소부는 최단경로를 확인하고 아두이노 WiFi쉴드는 무선인터넷이 가능하

도록 한다. 또한 아두이노 초음파 거리센서를 이용하여 쓰레기통의 쓰레기양을 측정할 수 있다.

2.4 개발환경

[Table 2] 각 부분별 개발 환경

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (17/38)

문서명: Trash Management System

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

3. 상세 기능 설명 아두이노를 이용한 쓰레기통 관리 시스템 애플리케이션개발에 따른 시스템 요구사항을 인터페이

스 기능, 시스템의 기능적 요구사항으로 구분하여 기술하고 설명한다.

3.1 시스템 기능 설명

3.1.1 네트워크 구성도

3.1.1.1 아두이노 모듈, TCP서버, Database와의 통신

[Figure 10] IF-1

초음파 거리 센서를 통해 얻은 거리 값을 WiFi 쉴드를 통해 TCP 서버에 전송하고, 이를 데이터

베이스에 저장하는 인터페이스이다. 이 때 WiFi 환경에서 network layer는 IP, transport layer는

TCP로 설정한다.

3.1.1.2 Database, 웹서버, 웹브라우저와의 통신

[Figure 11] IF-2

3G, 4G, WiFi와 같은 환경에서 Database에 저장되어 있는 거리 센서 값을 EWMA로 평균값을

계산하여 웹서버에 전송한다. 이를 웹브라우저에 그래프로 표시하여 시각적인 정보를 제공한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (18/38)

문서명: Trash Management System

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

3.1.1.3 웹브라우저, 웹서버와 Database와의 통신

[Figure 12] IF-3

3G, 4G, WiFi 환경에서 웹브라우저에 청소부 회원 정보를 입력하여 서버를 거쳐 청소부 정보를

데이터베이스에 저장하는 인터페이스이다. Web Broswer에서는 청소부가 자신의 신상 정보(ID,

PASSWORD, NAME, GENDER, AGE, AREA)를 직접 입력하여 Summit한다. Rewrite 버튼을 클릭하

면 처음부터 다시 기재할 수 있다. 웹브라우저에 HTML의 Form Tag를 이용하여 웹서버로 summit

한 회원 정보를 보낸다. 웹서버의 PHP 소스에 insert Query로 Database에 그 값을 저장한다.

3.1.1.4 스마트폰에서 웹서버로의 통신

[Figure 13] IF-4

3G, 4G, WiFi 환경에서 안드로이드 기반 스마트 폰에 청소부가 로그인 하는 인터페이스이다. 스

마트으로 청소부가 ID와 PASSWORD를 입력하면 PHP 소스에 select Query문으로 ID와

PASSWORD이 각각 선택된다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (19/38)

문서명: Trash Management System

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

3.1.1.5 웹서버, Database Server와의 통신

[Figure 14] IF-5

웹서버에 PHP에서의 ID와 PASSWORD 값은 Database 테이블에 저장된 ID, PASSWORD가 일치

하는지 비교한다.

3.1.1.6 웹서버에서 스마트폰으로의 통신

[Figure 15] IF-6

3G, 4G, WiFi 환경에서 웹서버에서는 Database에 저장되어 있는 청소부 정보와 로그인한 정보가

일치할 때, 스마트 폰에 로그인이 성공했음을 알린다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (20/38)

문서명: Trash Management System

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

3.1.2 역할 설명

3.1.2.1 Cleaner

스마트폰을 통하여 쓰레기통을 관리한다.

3.1.2.2 Web Server

청소부의 회원정보를 수신하고, 최단경로 값을 구한다.

3.1.2.3 Database

웹서버를 통해 받은 센서 측정값이 저장된다.

3.1.2.4 스마트폰

처리해야할 쓰레기통을 최적의 경로로 Cleaner에게 제공한다.

3.1.2.5 아두이노 초음파 센서 + WiFi 쉴드

거리를 측정하고 측정된 값을 WiFi를 이용하여 전송한다.

3.1.2.6 TCP서버

초음파 거리센서로 측정한 값을 TCP 서버를 거쳐 Database로 전송한다.

3.2 시스템 요구사항

3.2.1 Interface 요구사항

쓰레기통 관리시스템은 스마트 폰 애플리케이션과 아두이노(초음파거리센서, WiFi

쉴드)에서 제공하는 기능들 간 인터페이스를 고려해야 한다. 먼저 아두이노 초음파

거리센서를 통해 측정된 값이 TCP서버로 보내져 JDBC를 통해 Database에 저장 된다.

최단경로를 계산하기 위하여 웹서버에서 Database에 저장된 측정값을 이용한다. 웹

서버에서는 가져온 측정값을 이용하여 쓰레기가 많이 찬 쓰레기통 번호를 사용하여

최단경로 알고리즘을 통해 경로를 구하여 스마트폰으로 보낸다. 스마트폰은 구해진

최단경로를 지도에 선으로 표시하여 보여 준다. 또한 Polling 방식으로 스마트폰에서

DB값을 실시간으로 가져와 가득 찬 쓰레기통이 생길 시 알림을 통해 사용자에게 알

려준다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (21/38)

문서명: Trash Management System

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

3.2.2 시스템 요구사항

본 시스템을 구현하기 위해서 필요한 각각의 기능들에 대한 요구사항을 기술한다.

⦁ 아두이노 초음파 거리 Sensor는 거리 값을 측정 한다.

⦁ 아두이노에 부착된 WiFi쉴드와 TCP서버는 WiFi를 통해 연결 되어 아두이노

Sensor로 측정한 값을 Database에 저장하여야 한다.

⦁ 웹서버는 Database에 저장된 값들을 파싱하여 지정한 범위 안에 들어오는 값을

가진 쓰레기통 번호로 청소부가 갈 수 있는 최단 경로를 계산한다.

⦁ 스마트폰은 웹서버가 계산한 최단 경로를 지도에 띄워 청소부에게 보여준다.

⦁ 스마트폰은 청소부 로그인 시 Database에 저장되어 있는 청소부의 담당구역을 불

러와 화면에 띄워준다.

⦁ 스마트폰은 로그인 한 청소부의 담당구역에 알맞은 쓰레기통의 상태를 막대그래

프로 보여준다.

⦁ 스마트폰은 로그인 한 청소부의 담당구역에 알맞은 지도를 띄워 최단경로를 선으

로 나타낸다.

⦁ 거리 측정을 위한 쓰레기통위치는 청소부에게 최단경로를 알려주어야 하므로 쓰

레기통 번호를 지정하여 위치를 고정한다.

⦁ 쓰레기통을 효율적으로 비우기 위해 최단경로를 지정해야 하므로 거리센서로 측

정한 값은 Database 에 정확하게 저장되어야 한다.

⦁아두이노 Sensor 측정값이 저장되는 Database는 실시간으로 업데이트되어 청소부

에게 정확한 정보를 줘야한다.

⦁ 청소부가 쉽게 사용할 수 있도록 편리한 인터페이스의 어플리케이션을 제공해야

한다.

⦁ Database에 저장되는 값이 변경될 경우 즉각 반응하여 사용자에게 불편함을 주지 않아

야 한다.

3.2.3 사용자 요구사항

본 시스템을 사용하는 사용자의 요구사항을 각각 구분하여 기술한다.

⦁ 청소부는 웹브라우저에서 회원가입을 해야 한다.

⦁ 청소부는 애플리케이션에서 로그인을 해야 한다.

⦁ 청소부는 애플리케이션을 통해 비워야할 쓰레기통에 대한 최단 경로를 확인할 수

있어야한다.

⦁ 청소부는 유동인구가 많은 지역을 정확하고 빠르게 확인 할 수 있어야 한다.

⦁ 청소부는 애플리케이션을 통해 쓰레기양을 파악한 후 쓰레기통을 비워야 한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (22/38)

문서명: Trash Management System

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

4. 시스템 기술개념

쓰레기 관리 시스템을 구현하기 위해서는 기본적으로 스마트폰 애플리케이션, 쓰레기가 차 있

는 상태를 알기 위한 아두이노 초음파 거리 센서가 필요하다. 또한 쓰레기통의 상태를 실시간으

로 체크하여 관리해야 하므로 전체적인 웹서버와 TCP 서버, Database가 필요하다.

4.1 전체 기술 구성

[Figure 16] 전체 기술 구성

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (23/38)

문서명: Trash Management System

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

4.2 Web Browser를 통한 회원가입

[Figure 17] Web Browser를 통한 기술 구성

1) 청소부가 애플리케이션을 설치한 후 회원가입 버튼을 누른다.

2) 버튼을 누르면 웹브라우저로 연결이 되고 청소부가 자신의 정보를 입력한다.

3) HTTP요청 방식 중 GET방식을 이용하여 청소부 회원정보를 웹서버에게 넘겨준다.

4) 청소부 회원정보는 INSERT Query문으로 Database에 저장된다.

4.3 애플리케이션을 통한 청소부 로그인

[Figure 18] 청소부 로그인

1) 청소부는 스마트폰 애플리케이션을 통해서 정보를 입력해 로그인을 요청한다.

2) 웹서버는 스마트폰에 입력된 청소부 정보를 수신한다.

3) 웹서버는 입력된 정보를 Database에 저장되어있는 정보와 비교한다.

4) 정보가 일치할 경우 애플리케이션 사용 권한을 준다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (24/38)

문서명: Trash Management System

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

4.4 센서를 통한 측정 값 그래프로 표시

[Figure 19] 웹브라우저에 그래프 표시

1) 아두이노 초음파 거리센서로 측정된 값을 EWMA 계산 후 DB에 저장한다.

2) 계산 결과를 GET방식을 이용하여 웹서버에게 넘겨준다.

3) 웹서버로부터 넘겨받은 값을 실시간으로 웹브라우저 에 그래프로 표시한다.

4.5 센서를 통한 측정값을 통해 비워야 할 쓰레기통 쓰레기통번호 분석

[Figure 20] 센서를 통한 측정값을 통해 비워야 할 쓰레기통 쓰레기통번호 분석

1) 아두이노 초음파 거리 센서에 의해 측정된 값이 TCP 서버로 전달된다.

2) TCP 서버는 센서가 측정한 값의 정보를 Database에 저장한다.

3) TCP서버는 Database에 저장된 정보를 가지고 와 기준 이상이 되는 값의 쓰레기통 번호를

파싱한다.

4) 구해진 쓰레기통 번호를 이용해 최단경로를 구한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (25/38)

문서명: Trash Management System

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

4.6 분석된 쓰레기통번호로 최적화 된 경로를 찾아 화면에 띄움

[Figure 21] 분석된 쓰레기통번호로 최적화 된 경로를 찾아 띄움

1) Database에 저장되어 있는 쓰레기통번호를 스마트폰이 가져와 스마트폰에서 최단경로 알고리

즘을 통해 최적화된 경로를 찾아 화면에 띄워준다.

2) 청소부는 스마트폰으로 최단 경로를 확인하여 청소한다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (26/38)

문서명: Trash Management System

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

5. 기능 동작

5.1 기능 흐름도

5.1.1 전체 기능 흐름

5.1.1.1 Login

[Figure 22] Login 흐름도

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (27/38)

문서명: Trash Management System

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

5.1.1.2 최단경로

[Figure 23] 최단경로 흐름도

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (28/38)

문서명: Trash Management System

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

5.2 아두이노

[Figure 24] 아두이노 기능

5.2.1 아두이노 초음파 거리센서

초음파 거리 센서는 쓰레기양을 측정하기 위해서 사용된다. 일정 시간마다 초음파를

발생시켜서 쓰레기의 양을 실시간으로 파악하는 역할을 한다. 쓰레기 통 안의 쓰레기

양을 정확히 측정하기 위해 초음파 거리 센서 4개의 평균값으로 거리를 측정한다. 쓰

레기양이 많아질수록 거리가 짧아지므로 평균값이 작아진다. 이 값을 통해 쓰레기가

얼마나 쌓였는지 알 수 있다.

[Figure 25] 거리측정 스케치

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (29/38)

문서명: Trash Management System

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

5.2.2 아두이노 WiFi 쉴드

초음파 거리 센서가 측정한 값을 무선으로 Databse서버에 보내기 위해서 사용된다.

[Figure 26] WiFi 접속 스케치

5.2.3 쓰레기 양의 EWMA 계산

지수이동 가중 평균(EWMA)는 측정 센서값을 동일한 가중치로 평균한다는 점 때문에 빠른

동적 시스템의 경우 문제가 발생한다. 과거의 데이터와 현재의 데이터를 동일한 비중으로 취

급하기 때문에 버퍼의 크기가 클수록 시간 지연이 크게 발생하기 때문이다. 그렇다고 버퍼의

크기를 줄여버리면, 잡음 제거 능력이 떨어지게 되므로 튜닝에 문제가 있다. 따라서 다음과

같은 형태로 현재 값에 가중치를 주는 재귀 형태로 계산 값을 구하여 이러한 문제를 어느

정도 해소 할 수 있다. 이 때의 값은 평균값은 아니기 때문에 추정값(Estimated Value)이라고

한다.

× ×최근 센서 값

이 식은 평균 필터의 재귀형태와 동일한 모양을 하고 있다. 여기서 α가 0보다 크고 1보다 작은 상수이면, 항상 최근의 데이터로 올수록 더 큰 가중 값을 갖게 된다. 이를 ‘지수 가중 이동 평균 필터’ 또는 ‘1차 저주파 통과 필터’라고 한다. 여기서도 마찬가지로 최초의 데이터 획득시 직전 데이터가 없다. 이 때, 직전 데이터는 최초 획득한 데이터로 초기화 한다.

α값은 시스템에 따라 튜닝이 필요한데, α의 크기에 따른 특징은 다음과 같다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (30/38)

문서명: Trash Management System

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

⦁α가 작을 때 : 과거 데이터의 비중이 낮아진다. 따라서 잡음 제거 능력이 줄어들고 시간

지연이 적어진다.

⦁α가 클 때 : 과거 데이터의 비중이 커진다. 따라서 잡음 제거 능력이 좋아지고 시간 지연

이 커진다.

권장되는 α의 값은 0.125 이며 이러한 경우 앞의 공식은 다음과 같다.

× ×최근 센서값

출처 : help.bestez.com/qway/help/1-068.htm

참조 : 컴퓨터네트워킹 / PEARSON

5.3 Database

5.3.1 Cleaner Information

[Figure 27] Cleaner Information Table

청소부가 회원가입을 하였을 경우 정보가 저장되는 Database 이다. 필드는 ID, PASSWORD,

PASSWORD CHECK, NAME, GENDER, AGE, AREA로 구성 되어 있고, 모든 필드는 text 형식이

다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (31/38)

문서명: Trash Management System

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

5.3.2 Trash state

[Figure 28] Trash state Table

쓰레기통의 쓰레기양의 상태를 알기위한 아두이노 초음파 거리 센서 측정값이 저장되는

Database이다. 필드는 trashnumber와 value , mean 으로 구성되어 있으며 int형식이다. mean

은 쓰레기양의 평균값이 저장되는 필드이다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (32/38)

문서명: Trash Management System

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

5.4 안드로이드

5.4.1 안드로이드 Activity 구성

[Figure 29] 안드로이드 Activity

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (33/38)

문서명: Trash Management System

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

5.4.2 안드로이드 User Interface

쓰 레 기 통 관 리 시 스 템 ( T r a s h

Management System : TMS) 애플

리케이션의 메인 화면을 구성하는

Activity로 로그인을 위해 아이디와

비밀 번호를 입력하는 칸이 있고,

로그인 버튼과 회원 가입 버튼으

로 구성되어 있다. 회원가입 버튼

을 누르면 회원가입을 할 수 있는

웹페이지로 링크된다.

메인화면에서 로그인을 성공하면

나오는 첫 구성화면으로, 구역별

쓰레기통 현황 버튼과 쓰레기통

비우기 경로 버튼으로 구성되어

있다.

[Figure 30] 애플리케이션 UI 1

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (34/38)

문서명: Trash Management System

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

담당 구역 쓰레기통의 현재 상태

를 파악하여 70퍼센트 이상이 채

워진 쓰레기통들을 청소부의 위치

에 따라 제일 빠른 경로를 선으로

그어 나타내준다.

쓰레기의 차 있는 양을 쉽게

눈으로 모니터링 할 수 있게

표시한다. 빨간색 막대로 표현

된 쓰레기통은 비워야 할 쓰레

기통을 나타낸다.

[Figure 31] 애플리케이션 UI 2

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (35/38)

문서명: Trash Management System

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

5.4.3 라우팅

라우팅 된 화면은 Display하기 위해 두 web(Naver과 Daum)이 제공하는 오픈 API를

이용할 소스에 대한 정보를 제공한다. 라이브러리에서는 지도를 화면에 표시하기 위

한 지도 메인 클래스와 지도 위에 오버레이 데이터를 표시하기 위한 오버레이 클래

스, 그리고 데이터 클래스를 제공한다. Daum 개발자네트워크 오픈 API 또한 모바일

애플리케이션용 지도 라이브러리를 제공하고 있다. 두 오픈 API를 이용하면 청소부는

쓰레기가 가득 찬 쓰레기통의 위치를 스마트 폰에 표시된 길에 따라 찾아갈 수 있다.

5.4.3.1 지도 위에 경로 그리기

지도 위에 경로를 그리기 위해서는 NMapPathDataOverlay 객체를 사용하여 아래와

같이 구현한다.

[Figure 32] 지도 위 경로

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (36/38)

문서명: Trash Management System

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

5.4.3.2 지도 위에 오버레이 아이템 표시하는 방법을 설명

[Figure 33] 위치 아이템 지정

5.5 Web Site

5.5.1 웹사이트 User Interface

[Figure 34] 웹 사이트

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (37/38)

문서명: Trash Management System

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

[Figure 35] 회원가입

6. 실제 적용 분야 & 기대 효과 본 시스템은 아두이노의 초음파 거리센서를 이용하여 길거리의 꽉 찬 쓰레기통을 효율적으로

수거하기 위해 개발한 시스템이다. 청소부는 스마트폰을 통해 꽉 찬 휴지통이나 거의 다 찬 휴지

통들을 수거하기 위한 최단경로를 지도상에서 확인하여 쓰레기통을 빠르게 비울 수 있다. 쓰레기

관리 시스템의 가장 큰 장점은 불필요한 자원, 인력 낭비를 줄일 수 있다는 것이다. 따라서 이러한

면은 불필요한 인력을 줄임으로써 기업의 이윤 창출에 기여할 수 있다. 사람들이 항상 붐비는 곳

에 쓰레기를 신속히 비움으로써 쓰레기통 주변 환경을 깨끗하게 유지할 수 있고, 이는 기업의 이

미지 향상에 도움을 줄 수 있다.

년월일: 문서번호: 변경코드: 수정회수: 페이지:2013-12-05 1.3 3 (38/38)

문서명: Trash Management System

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

7. 세부 추진 계획 및 일정

8. 팀원 담당업무

담당자 상세 내용

김경호팀장, 아두이노 센서 구현, 웹서버와 아두이노 통신,

open 지도 API를 이용한 알고리즘 구현

임연주 웹 사이트 구축, 웹서버와 웹사이트 구현, 웹서버와 스마트폰 통신

백승은 데이터베이스 구축, 안드로이드 프로그래밍, 웹서버와 스마트폰 통신

배연정아두이노 센서 구현, 웹서버와 아두이노 통신,

open 지도 API를 이용한 알고리즘 구현

[Table 3] 팀원 담당업무