"삼삼"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(이론적 계산 및 시뮬레이션)
(상세설계 내용)
216번째 줄: 216번째 줄:
  
 
===상세설계 내용===
 
===상세설계 내용===
내용
+
'''<하드웨어 설계>'''<br/><br/>
 +
[[파일:삼삼하드웨어설계도.png]]<br/>
 +
* 사용한 부품
 +
1. Arduino Uno WiFi Rev2 : 와이파이 기능을 포함하고 있는 보드이다. Arduino 통합 개발 환경을 이용하여 C언어로 명령어를 작성하고 개발한다.<br/>
 +
2. DHT11 미니 온습도 센서 모듈 : 아두이노에 연결되어 생리대 함 내부의 온습도를 측정한다.<br/>
 +
3. US-015 고정밀 초음파 거리 센서 모듈 : 아두이노에 연결되어 생리대까지의 거리를 측정한다.<br/>
 +
4. 기계식 키보드 버튼 모듈 : 아두이노에 연결되어 슬립모드인 아두이노를 깨우는 역할을 한다.<br/>
 +
<br/>
 +
'''<소프트웨어 설계>'''<br/>
 +
* 뷰 설계
 +
[[파일:삼삼뷰설계.png]]<br/>
 +
<br/>
 +
* 사용자 흐름 설계<br/>
 +
[[파일:삼삼사용자흐름.png]]<br/>
 +
① 메인 화면 이후 등장하는 지도 화면. 생리대의 개수를 색상으로 직관적으로 알 수 있다.<br/>
 +
② 지도 화면에서 마커를 클릭하면 뜨는 모달. 생리대 함의 정보를 표시하며, 생리대 함이 한 건물에 여러 개일 경우 여러 생리대 함이 뜬다.<br/>
 +
③ ②에서 생리대 함을 클릭하면 뜨는 신고하기 모달. 사용자가 불편사항을 신고할 수 있다.<br/>
 +
④ 지도 화면에서 ⓘ버튼을 클릭하면 뜨는 모달. 관리자가 쓴 공지사항을 볼 수 있다.<br/>
 +
⑤ 지도 화면에서 위치 버튼을 클릭하면 표시되는 화면. 자신의 위치를 확인할 수 있는 붉은 마커가 표시되며 학교 내에 있지 않을 경우 “학교 내에 있지 않으시군요!”라는 토스트가 뜬다.<br/>
 +
<br/>
 +
* 관리자 흐름 설계<br/>
 +
[[파일:삼삼관리자흐름.png]]<br/>
 +
① 메인 화면에서 관리자로 로그인하면 등장하는 지도 화면. 생리대의 개수를 색상으로 직관적으로 알 수 있다. 신고가 있는 마커는 !로 표시된다.<br/>
 +
② 지도 화면에서 마커를 클릭하면 뜨는 모달. 생리대 함의 정보를 표시하며, 생리대 함이 한 건물에 여러 개일 경우 여러 생리대 함이 뜬다.<br/>
 +
③ ②에서 생리대 함을 클릭하면 뜨는 신고 확인 모달. 사용자가 신고한 불편사항을 볼 수 있다. 불편사항은 분류 별로 볼 수 있으며, 해결하였다면 해결 버튼을 눌러 해결할 수 있다.<br/>
 +
④ 해결된 신고는 앱에서 보이지 않으므로 모든 관리자에게 신고와 해결 내용을 공유하라는 메시지를 표시한다.<br/>
 +
⑤ 아래의 메뉴 탭 중 2번째 통계 탭을 누르면 나타나는 페이지. 주별, 월별로 생리대 함별 사용량이 표시된다.<br/>
 +
⑥ 아래의 메뉴 탭 중 3번째 공지사항 탭을 누르면 나타나는 페이지. 관리자는 공지사항을 등록, 수정, 삭제할 수 있으며 긴 공지사항은 말 줄임표로 생략된다.<br/>
 +
⑦ 아래의 메뉴 탭 중 4번째 설정 탭을 누르면 나타나는 페이지. 생리대 함의 위치와 이름을 입력하여 새로운 생리대 함을 등록할 수 있고, 기존의 생리대 함 정보를 수정하거나 삭제할 수 있다. 변경된 생리대 함의 정보는 바로 지도 화면에 반영된다.<br/>
  
 
==결과 및 평가==
 
==결과 및 평가==

2021년 6월 10일 (목) 19:12 판

프로젝트 개요

기술개발 과제

국문 : 날개를 달다

영문 : UOSWing

삼삼

지도교수

김민호 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20179200** 우*은(팀장)

서울시립대학교 컴퓨터과학부 20169200** 최*기

서울시립대학교 컴퓨터과학부 20169200** 유*온

서울시립대학교 컴퓨터과학부 20179200** 김*빈

서론

개발 과제의 개요

개발 과제 요약

서울 시립 대학교에는 ‘양심 생리대 함을 운영하는 소모임 ‘날개’가 있다. ‘양심 생리대 함’이란 여학우들이 생리대를 무료로 가져갈 수 있도록 모아두는 서비스를 뜻하며 현재 서울 시립대 내에는 4개의 양심 생리대 함이 위치 하고 있다. ‘날개’팀이 생리대 함을 관리하는 과정에서 겪는 불편함과 이용자가 겪는 불편함을 파악하여 이를 개선하고자 ‘양심 생리대 함 관리 IoT 시스템’을 구축하여 서비스 애플리케이션인 ‘날개를 달다’를 개발하고자 한다.

개발 과제의 배경

<배경>
- 이용자나 관리자가 생리대 함의 위치를 파악하기 어렵다.
- 이용자나 관리자가 각 생리대 함의 생리대 개수를 파악하기 위해 반드시 직접 현장에 가서 확인해야 한다.
- 관리 인력의 문제로, 생리대 함을 추가로 설치할 때마다 유지비용이 계속 증가한다.
- 평균적으로 사용되는 생리대 양을 파악하여 대비하기 어렵다.
- 이용자와 관리자가 커뮤니케이션할 수 있는 수단이 제한적이다.
- 생리대 함이 설치된 위치를 관리자가 직접 기억하고 있다가 다른 봉사자에게 인수인계해주어야 한다.

<효과>
- 양심 생리대 함 관련 관리자의 수고를 절감한다.
- 양심 생리대 함 이용자의 편리를 증대시킨다.
- 관리자와 이용자의 소통이 증가한다.
- 기존보다 적은 비용으로 생리대 함을 증설할 수 있다.
- 생리대 함뿐만 아니라 다양한 상태 측정으로 응용될 수 있다.

개발 과제의 목표 및 내용

<개발 목표>
- 각 생리대 함의 위치와 상태(생리대의 개수, 온습도)에 대한 정보를 제공한다.
- 이용자, 관리자 간 커뮤니케이션 수단을 확립한다.
- 각 생리대 함의 사용 통계 정보를 제공한다.


<개발 내용>
4차 산업혁명의 중심 기술인 ‘IoT’의 센싱 기술, 유무선 통신 기술, IoT 서비스 인터페이스 기술을 통합한 애플리케이션을 제작한다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

<전 세계적인 기술 현황>

  • IoT(Internet of Things, 사물인터넷) 기술은 현재 4차 산업혁명 시대의 핵심 성장동력으로 여겨지는 기술이다.
    IoT 기술을 이용하는 중에 데이터를 생성, 전달, 처리, 서비스하는 과정을 거치게 되는데, 이 과정에서 하드웨어와 관련된 센싱 기술, 통신과 관련된 유무선 통신 기술, 서비스와 관련된 서비스 인터페이스 기술이 골고루 고려되어야 한다.
    현재 IoT 기술을 활용한 사례는 집 안의 사물들을 확인하고 제어할 수 있는 스마트 홈이 있다. 앞으로는 도시 전체가 스마트시티가 되어 대부분의 사물이 IoT로 이루어지게 될 것이라는 전망에 따라 IoT 기술이 빠르게 발전할 것으로 보인다.
  • 하이브리드 앱은 네이티브 앱과 웹 앱의 기능을 결합한 기술로써 다양한 언어를 이용하여 앱을 구현할 수 있고 다양한 플랫폼에서 사용 가능하다는 장점이 있다.
    하나의 앱을 개발하면 약간의 설정 파일 조정만을 통해 안드로이드, IOS 두 가지 플랫폼에서 모두 작동 가능하므로 경제적으로 유리하다.
    간단한 프로젝트를 빠르게 구현해보기에 알맞은 기술이다.
  • REST(Representational State Transfer)는 별도의 전송 계층 없이 HTTP 계층을 이용하여 데이터를 전송하는 네트워크 아키텍처 원리이다.
    REST API란 REST 아키텍처를 사용하는 API 설계를 의미하며 별도 전송 인프라를 구축할 필요가 없고 HTTP 프로토콜을 사용하는 모든 플랫폼에서 사용할 수 있다는 장점이 있다.
    또한, 서버와 클라이언트의 역할을 명확하게 분리할 수 있고 직관성이 좋다는 점에서 유지보수에 유리하다.


<특허조사>
1. IoT 기반의 생리대 보관함 및 생리대 재고관리 장치
- 출원번호 / 일자 1020190147041 (2019.11.15.)
- 상태 : 출원
- IoT 기반의 생리대 보관함 및 생리대 재고관리 장치는 IoT(Internet of Things) 센서가 부착되고 복수개의 칸들로 가변 구획되어 상기 복수 개의 칸들에 생리대가 수납 보관되고 상기 복수개의 칸들에 센서가 장착되어 보관된 생리대의 재고량을 감지하는 생리대 보관함, 스마트폰으로부터 상기 생리대 보관함에 부착된 IoT 센서를 태그하여 생리대 보관 정보를 수신하는 생리대 보관 정보 수신부, 및 수신된 생리대 보관 정보에 기초하여 생리대 재고를 관리하고 최저가 사이트를 추천하는 생리대 재고 관리부를 포함한다.

2. 생리대 보관함
- 공개번호/일자 1019950023387 (1995.08.18.)
- 상태 : 거절
1. 청구범위에 기재된 발명이 속한 기술분야 : 사용 하기전 여성 생리대 보관함은 전에 없었던 새로운 아이디어 상품으로서 새롭게 사용할 수 있는 가정 위생용 생활용품이다.
2. 발명이 해결하려고 하는 기술적 과제 : 이 발명품은 자세한 내용의 도면이 없이 설명만으로도 상품이 될 수 있는 경우이다.
3. 발명의 해결방법의 요지 : 이 발명품은 과거나 현재도 미래도 필요한 것이지만 지금까지 없었기에 좋은 상품이라 할 수 있다.
4. 발명의 중요한 용도 : 여성들이 사용하고 있는 생리대를 보관하는 함이다. 화장실이나 그밖에 노출되지 않도록 하며 미리 준비하지 못하여 겪는 불편함을 들어주는 역할을 한다.

<특허 전략>
아래와 같은 특징을 부각한다.

  • 새롭게 생리대 함을 설치할 필요 없이 현재 시설들에 설치되어있는 생리대 함에 적용할 수 있다.
  • 저렴한 하드웨어 모듈을 이용하여 인력 보급보다 경제적으로 효과적이다.
  • 관리 인원의 인수인계 및 생리대 관리에 필수적인 서비스이다.
  • 사용자가 공공생리대 함을 편리하게 이용할 수 있는 인프라를 갖출 수 있다.


<기술 로드맵>
1. 애플리케이션 구현 언어 선택
네이티브 앱 언어인 Java, Kotlin을 이용할 수도 있었지만, 대학생들이 사용하는 플랫폼을 모두 만족시켜야 했기 때문에 android와 ios를 동시에 구현할 수 있는 하이브리드 앱으로 개발하게 되었다.
또한, 기존에 알고 있던 React를 활용하면 낮은 러닝 커브를 지니고 있는 React Native를 사용함으로써 개발 난이도를 낮추었다.

2. API Server 프레임워크의 선택 API Server는 생리대 함의 생리대 현황을 갱신하고 조회하는 기능을 제공한다.
API Server의 프레임워크로는 Spring을 사용하였다. Spring을 선택한 이유는 다음과 같다.
① 의존성 주입을 통해서 두명 이상이 협업하기 좋다.
② JUnit을 통해서 테스트를 자동화하기 용이하다.
③ spring jpa를 통해 ORM(Object Relational Mapping) 기술을 사용할 수 있다.
④ swagger를 활용하면 API 문서화를 자동화 할 수 있다.

3. 하드웨어 sleep, timer 라이브러리 선택
기존 아두이노 UNO rev3 버전을 사용할 때는 LowPower라는 라이브러리를 사용하였다.
하지만, 아두이노 WIFI rev2 버전은 해당 라이브러리와 연동되지 못했기 때문에 RocketScream_LowPowerAVRZero를 대체로 사용하게 되었다.
마찬가지로 기존에 사용하던 LowPower 내장 타이머 함수를 사용할 수 없게 되었기 때문에 RocketScream_RTCAVRZero를 사용하여 일정 시간마다 sleep 모드를 해지해주는 타이머를 구현하였다.

4. 하드웨어 wifi 라이브러리 선택
기존 아두이노 UNO rev3 버전의 하드웨어는 와이파이를 지원하지 않기 때문에 WiFi 모듈이 필요했다.
그래서 ESP-01 모듈을 사용하였고, 아두이노 공식 홈페이지에 있는 라이브러리인 WiFiESP 라이브러리를 이용했다.
추후, PEAP 방식의 WiFi를 이용해야 함에 따라, 라이브러리 역시 아두이노 공식 홈페이지에서 UNO rev2 wifi를 지원한다고 명시된 WiFiNiNa 라이브러리를 이용했다.

시장상황에 대한 분석

<경쟁제품 조사 비교>
시장에 출시된 비슷한 제품은 없으며, 특허 출원한 “IoT 기반의 생리대 보관함 및 생리대 재고관리 장치”가 비슷한 기능을 하여 조사 후 비교하였다.

삼삼경쟁제품.png

개인에게 특화된 특허 제품과 여러 시스템으로 확장할 수 있는 ‘날개를 달다’는 추구하는 바가 달라 서로 명확한 경쟁상대가 되지 않는다고 판단된다.


<마케팅 전략 제시>

  • SWOT 분석

삼삼Swot.png

‘날개를 달다’의 강점은 한번 인프라를 구축해두면 시스템을 확장 시킬 때 드는 비용이 저렴하다는 것이다. 저렴한 하드웨어를 사용하였고, 확장 시에는 추가로 드는 서버 비용 또한 없기 때문이다. 또한, 기존에 존재하는 생리대 함에 하드웨어를 설치하기만 하면 되어서 해당 시스템의 도입이 번거롭지 않다. 마지막으로 학교에서 벗어나 다른 지역의 생리대 함도 관리할 수 있도록 확장할 수 있으며, 생리대 함뿐만 아니라 재고관리가 필요한 다른 시스템에도 도입할 수 있다.
하지만 ‘날개를 달다’ 시스템은 서버를 계속 구동시켜야 하므로 매달 서버 비용이 소모되며, 하드웨어 설치 시 비용이 발생하므로 초기 비용과 정기적인 비용 부담이 존재한다. 약간의 미관상 불편함을 끼칠 수 있지만, 하드웨어가 설치된 생리대 함 내부는 봉사자들만 볼 수 있는 것이므로 큰 불편은 없을 듯하다.
현재 공공생리대 함이 증설되고 생리대 함에 관한 사회적 인식이 증가하고 있으며, 이에 따라 해당 산업의 국가 지원율이 증가하고 있다. 따라서 충분한 지원을 받아 개발 및 유지보수를 이어나갈 수 있을 것이라 예상한다. 이러한 생리대 함 IoT 시스템 구축은 현재 사용된 부품들보다 저렴한 비용으로 설치 가능할 것이며 회로도만 있다면 누구든 설치할 수 있다는 점에서 다른 업체와의 경쟁이 발생할 수 있다.

‘날개를 달다’는 약점인 미관상의 불편함과 구축 비용을 줄이도록 노력할 것이며 강점인 기존 설치된 생리대 함에 구축할 수 있다는 점과 다른 재고관리 시스템에 사용될 수 있다는 점을 강조하여 마케팅할 것이다.
마케팅 대상은 해당 사업을 지원해 줄 수 있는 국가기관 또는 기업체가 될 것이다.

개발과제의 기대효과

기술적 기대효과

  • 적외선 센서를 이용한 효율적인 개수 측정

적외선 거리 측정 센서를 이용하여 생리대까지의 거리를 측정하여 생리대 개수를 파악하는 알고리즘이 실제로도 제대로 수행되는지를 파악한다. 생리대 개수 측정이 정확하기만 하다면 적외선 센서는 무게 측정 센서와 비교하여 가격도 저렴하고 기존 생리대 함의 기능을 훼손하지 않기 때문에 효율적이다.

  • 슬립 모드를 활용한 배터리 지속 기간 연장

아두이노의 슬립 모드를 이용하여 전력 소모를 최소화함으로써 배터리 지속 기간을 늘린다. 보조배터리 10,000mAh 기준 최소 2주의 배터리 유지 기간을 유지하도록 노력한다.

  • 하이브리드 앱을 이용한 확장 가능성 고려

하이브리드 앱을 이용하여 안드로이드 앱뿐만 아니라 IOS 앱까지도 한 번에 개발할 수 있도록 확장 가능성을 열어둔다.

  • REST API를 통한 통신

낮은 러닝 커브로 인한 빠른 개발과 서버의 부하 감소를 위해 하드웨어와 서버, 서버와 앱 간의 통신을 REST API를 이용한 HTTP 통신으로 처리한다.

경제적, 사회적 기대 및 파급효과

  • 현재 활발히 이루어지고 있는 양심 생리대 함 사업에 이바지하여 더욱 많은 곳에 양심 생리대 함이 설치될 수 있다.
  • 상태 측정이라는 분야에서 다양하게 활용될 수 있으며, 필요한 기능만을 수행하는 단가가 낮은 하드웨어를 사용함으로써 경제적 부담을 줄일 수 있다.
  • 상태 관리에 필요한 인력 소모가 줄어들면서 유지비용이 저렴해지고, 상태에 대한 정확하고 신속한 관리와 통계를 제공할 수 있다.

기술개발 일정 및 추진체계

개발 일정

개발일정 삼삼.png

구성원 및 추진체계

삼삼추진.png

  • API, DB 설계 및 백엔드 개발 : 유시온, 최문기
  • 프로토타입 디자인 및 프론트엔드 개발 : 김수빈, 우희은
  • 아두이노, 라즈베리 파이, 센서 모듈을 이용한 하드웨어 구현 : 전원

삼삼추진계통.png

설계

설계사양

제품의 요구사항

양심 생리대 함 이용의 불편함을 파악하기 위해 현장에서 직접 봉사하고 ‘날개’ 팀과 세 차례 인터뷰를 거친 결과 다음과 같은 요구사항을 도출했다.
[D : 필수, W ; 선택]

- 각 생리대 함의 생리대 잔고를 실시간으로 확인한다. (D)
- 각 생리대 함의 상태(온습도)를 실시간으로 확인한다. (D)
- 시각적으로 각 생리대 함의 위치를 확인한다. (D)
- 생리대 함이 신설되었을 시 편리하게 추가, 수정, 삭제한다. (D)
- 관리자 기능에는 관리자만 접근할 수 있다. (D)
- 이용자는 생리대 함에 문제 발생 시 신고할 수 있다. (W)
- 관리자는 신고를 확인하고 처리 상태를 변경할 수 있다. (W)
- 관리자는 공지사항을 남길 수 있다. (W)
- 관리자는 기간별 생리대 소모 통계를 확인할 수 있다. (W)
- Application의 모든 동작에 대해 로딩 시간은 2초를 넘기지 않는다. (D)
- 사용자에게 직관적인 UI/UX를 제공한다. (W)
- 배터리를 약 한 달간 유지한다. (W)

기능 정의 및 기능별 정량목표

  • F1 : 생리대 함의 생리대 개수를 측정한다.
  • F2 : 생리대 함의 온습도를 측정한다.
  • F3 : 생리대 함의 위치와 생리대 개수, 온습도를 지도에 표시한다.
  • F4 : 사용자는 공지사항을 확인한다.
  • F5 : 사용자는 생리대 함에 대한 불편사항을 신고한다.
  • F6 : 관리자는 키로 로그인한다.
  • F7 : 관리자는 신고를 분류 별로 확인한다.
  • F9 : 관리자는 해결된 신고를 해결 처리한다.
  • F10 : 관리자는 측정된 생리대 소모 통계를 확인한다.
  • F11 : 관리자는 공지사항을 제목과 내용으로 관리(추가, 수정, 삭제)한다.
  • F12 : 관리자는 생리대 함을 이름과 위치로 관리(추가, 수정, 삭제)한다.

세부기술 선택사항

삼삼기술.png
- 백엔드 : Java Spring, MariaDB, Amazon EC2
- 프론트엔드 : Google Play, React Native
- 디자인 : Adobe Photoshop, Figma
- 협업 도구 : Github, Swagger, dbdiagram.io
- 하드웨어 : 아두이노 wifi rev2, 라즈베리파이 zero w
- 기타 : JWT(보안 토큰), REST API(통신)

시스템 설계

삼삼시스템설계.png

  • Hardware에서는 주기적으로 생리대함의 상태(온도, 습도, 잔여 생리대 수)를 측정하고 API Server에 측정한 정보를 전송한다. 생리대를 보충한 전과 후에 버튼을 누르면 그 즉시 정보를 전송한다.
  • API Server에서는 생리대함 상태, 공지, 신고 등의 정보를 DB에 저장하고 Client App에서 요청이 올 때 정보를 전송해주거나, DB의 정보를 갱신하는 등의 역할을 한다. 또한 Hardware에서 생리대함의 정보를 전송해주면 생리대함 상태를 갱신하는 역할을 한다.
  • Client App은 사용자가 본 서비스를 쉽게 이용할 수 있는 환경을 제공한다. 사용자가 직관적으로 서비스를 이용할 수 있도록 UI를 제공하며, 사용자의 요청에 따라 API Server에 적절한 request를 보내고, response를 수신하여 사용자들이 보기 쉽게 나타내주는 역할을 한다. Client App은 Play Store를 통해 배포된다.

이론적 계산 및 시뮬레이션

1) 생리대 측정 알고리즘
하드웨어는 적외선 센서로 측정한 생리대까지의 거리를 이용하여 생리대의 개수를 측정하고, 온습도 모듈을 이용하여 온습도를 측정한다. 하드웨어는 다음과 같은 과정을 거쳐 생리대의 개수 및 온습도를 서버에 전달한다.
① WIFI 모듈을 사용하여 학교 와이파이에 연결한다.
② login API를 호출하여 관리자 TOKEN을 얻는다.
③ 생리대 함 상태 기록 API에 측정된 생리대 개수와 온습도를 매개변수로 하여 보낸다.
서버에서는 API로 전달되어온 정보를 가지고 바로 생리대 사용량 통계를 업데이트하며, 현재 해당 생리대 함의 생리대 개수를 업데이트한다.
애플리케이션에서는 사용자가 접속할 때마다 서버에서 생리대 함 관련 API를 받아오며, 지도 화면의 새로고침 버튼을 통해서도 해당 API를 재호출할 수 있으므로 갱신된 생리대 함의 상태를 확인할 수 있다.

2) 하드웨어 설치 방법
생리대 함 내부에 하드웨어를 설치하기 위해 포맥스로 틀을 구축하고 생리대 함 벽면에 부착한다.
삼삼생리대하드웨어설치.png
처음에 생각했던 설치 시뮬레이션은 왼쪽 그림과 같다. 생리대 비축함에 버튼을 설치하고 각 생리대 라인에 적외선 센서, 천장에 빵판과 아두이노를 부착하기로 생각하였다. 하지만, 이렇게 구성하게 되면 연결된 배터리를 놓을 곳이 마땅치 않고 생리대의 진행을 방해할 수도 있기 때문에 오른쪽 그림처럼 구성하게 되었다. 아두이노와 빵판을 생리대 비축함 구석 벽면에 부착하고 적외선 센서는 측정의 정확도를 위해 세로로 부착하였다. 버튼 모듈은 그대로 생리대 비축함 천장에 부착하였으며 보조배터리 또한 생리대 비축함에 위치하게 된다.

3) 슬립 모드 깨우기
아두이노의 전력 소모를 감소시키기 위해 슬립 모드를 구현한다. 슬립 모드는 내부 타이머에 의해 한 시간에 한 번 깨어나게 되며, 버튼 인터럽트에 의해 곧바로 깨어날 수도 있다. 버튼 인터럽트에 의해 깨어나게 되면 1시간 내부 타이머가 재설정된다. 슬립 모드 라이브러리는 라이브러리에 따라 시간 차이가 발생할 수 있으므로 측정하여 최대한 1시간에 가깝게 세팅하도록 한다.

상세설계 내용

<하드웨어 설계>

삼삼하드웨어설계도.png

  • 사용한 부품

1. Arduino Uno WiFi Rev2 : 와이파이 기능을 포함하고 있는 보드이다. Arduino 통합 개발 환경을 이용하여 C언어로 명령어를 작성하고 개발한다.
2. DHT11 미니 온습도 센서 모듈 : 아두이노에 연결되어 생리대 함 내부의 온습도를 측정한다.
3. US-015 고정밀 초음파 거리 센서 모듈 : 아두이노에 연결되어 생리대까지의 거리를 측정한다.
4. 기계식 키보드 버튼 모듈 : 아두이노에 연결되어 슬립모드인 아두이노를 깨우는 역할을 한다.

<소프트웨어 설계>

  • 뷰 설계

삼삼뷰설계.png

  • 사용자 흐름 설계

삼삼사용자흐름.png
① 메인 화면 이후 등장하는 지도 화면. 생리대의 개수를 색상으로 직관적으로 알 수 있다.
② 지도 화면에서 마커를 클릭하면 뜨는 모달. 생리대 함의 정보를 표시하며, 생리대 함이 한 건물에 여러 개일 경우 여러 생리대 함이 뜬다.
③ ②에서 생리대 함을 클릭하면 뜨는 신고하기 모달. 사용자가 불편사항을 신고할 수 있다.
④ 지도 화면에서 ⓘ버튼을 클릭하면 뜨는 모달. 관리자가 쓴 공지사항을 볼 수 있다.
⑤ 지도 화면에서 위치 버튼을 클릭하면 표시되는 화면. 자신의 위치를 확인할 수 있는 붉은 마커가 표시되며 학교 내에 있지 않을 경우 “학교 내에 있지 않으시군요!”라는 토스트가 뜬다.

  • 관리자 흐름 설계

삼삼관리자흐름.png
① 메인 화면에서 관리자로 로그인하면 등장하는 지도 화면. 생리대의 개수를 색상으로 직관적으로 알 수 있다. 신고가 있는 마커는 !로 표시된다.
② 지도 화면에서 마커를 클릭하면 뜨는 모달. 생리대 함의 정보를 표시하며, 생리대 함이 한 건물에 여러 개일 경우 여러 생리대 함이 뜬다.
③ ②에서 생리대 함을 클릭하면 뜨는 신고 확인 모달. 사용자가 신고한 불편사항을 볼 수 있다. 불편사항은 분류 별로 볼 수 있으며, 해결하였다면 해결 버튼을 눌러 해결할 수 있다.
④ 해결된 신고는 앱에서 보이지 않으므로 모든 관리자에게 신고와 해결 내용을 공유하라는 메시지를 표시한다.
⑤ 아래의 메뉴 탭 중 2번째 통계 탭을 누르면 나타나는 페이지. 주별, 월별로 생리대 함별 사용량이 표시된다.
⑥ 아래의 메뉴 탭 중 3번째 공지사항 탭을 누르면 나타나는 페이지. 관리자는 공지사항을 등록, 수정, 삭제할 수 있으며 긴 공지사항은 말 줄임표로 생략된다.
⑦ 아래의 메뉴 탭 중 4번째 설정 탭을 누르면 나타나는 페이지. 생리대 함의 위치와 이름을 입력하여 새로운 생리대 함을 등록할 수 있고, 기존의 생리대 함 정보를 수정하거나 삭제할 수 있다. 변경된 생리대 함의 정보는 바로 지도 화면에 반영된다.

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용