Skip to content

dm0114/ssokdam_mirror

Repository files navigation

벨루생선

담배꽁초처리 플랫폼 SSOKDAM

🧾목차

  1. 서비스 소개
  2. 기술 스택
  3. 시스템 아키텍처
  4. 웹 주요기능 및 데모영상
  5. 디바이스 주요기능
  6. UCC 보러가기
  7. 협업 관리
  8. 개발 멤버 소개
  9. 프로젝트 기간
  10. 프로젝트 관련 문서

✨ 서비스 소개

심각한 바다의 오염문제 😖

국내 하루 평균 길에 버려지는 담배꽁초가 무려 1250만 개비라고 합니다.

담배가 그대로 하수구를 통해 바다에 유입돼 바다오염이 되고

그렇게 바다에서 분해된 미세플라스틱은 오롯이 인간이 먹게됩니다..

바다오염의 해결책 담배꽁초수거 플랫폼 SSOKDAM 💊

바다를 오염시키는 무분별한 담배 꽁초로 부터 지구를 지키기 위해 SSOKDAM을 이용해주세요!


🛠️ 기술 스택




Styled Components HTML5 CSS3 Recoil

image



🎛 시스템 아키텍쳐

7 광주_1반_C106조_시스템개략도

ERD

image-20220818102735177

Backend 디렉토리 구조

├─main
│  │   
│  ├─java                
│  │  └─com
│  │      └─ssafy
│  │          └─project
│  │              ├─config        # CORS 및 암호화 설정 폴더
│  │              ├─controller    # 각 도메인별 컨트롤러 있는 폴더
│  │              ├─domain       # 각 DB 테이블 을 설정한 도메인 폴더
│  │              ├─Function      # 추가적인 기능을 모아둔 폴더
│  │              ├─Repository   # 도메인별 JPA Repository 설정한 폴더
│  │              └─Service        # 도메인별 기능을 정의해둔 폴더 
│  └─resources
└─test
    └─java
        └─com
            └─ssafy
                └─project            # 테스트 케이스 있는 폴더

Frontend 디렉토리 구조

───src
    ├─api  		# 백엔드 통신과 필요한 api들을 모아놓은 폴더
    ├─db   		# 백엔드와 통신전에 미리 가상DB를 만들어 테스트를 하는 폴더
    ├─Pages 	# 랜더링되는 페이지가 모아져있는 폴더 
    │  ├─Admin 	# 관리자 페이지가 들어 있는 폴더
    │  │  ├─AdminComplain 	# 불만사항 관련한 관리자 폴더
    │  │  ├─AdminNotice  	# 공지사항 관련한 관리자 폴더
    │  │  └─components 		# 관리자 페이지에서 랜더링되는데 필수적으로 필요한 요소들이 있는 폴더
    │  ├─Auth 		# 회원가입, 로그인 등 인증, 권한과 관련된 페이지가 있는 폴더
    │  ├─Loading 	# 로딩페이지 폴더
    │  ├─Main 		# Client단의 모든 페이지가 있는 폴더
    │  ├─Nav 		# Client단의 Nav바가 있는 폴더
    │  └─Sub 		# Client단에서 부수적으로 필요한 페이지가 있는 폴더
    ├─picture 		# 화면의 사진이 저장돼있는 폴더
    ├─styles 		# 여러가지 style component들이 있는 폴더
    └─ui 			# 간단한 modal이 있는 폴더



💻 웹 주요기능 및 데모영상

1. 회원가입시 외부 API을 이용한 성인인증 및 계좌인증 기능

  • 담배와 관련된 서비스이기 때문에 보다 확실한 성인인증 절차를 위해 외부인증 API(iamport)를 이용하여 휴대전화에 등록된 정보에 기반한 성인인증 서비스를 구현하였습니다.
  • 포인트 환전시 현금을 지급해 주어야하기에 본인인증 정보에 기반한 계좌인증 절차를 만들어 확실한 본인의 계좌로 회원가입이 되게 만들었습니다.

2. 디바이스 찾기

  • 저희 서비스를 이용하기 위해선 주변에 있는 디바이스를 찾아야합니다. 주변에 있는 디바이스를 탐색하기 위해 지도 API를 이용하여 가장 가까운 디바이스의 위치를 파악하게 하였습니다.
  • 지도에 띄워진 사용하기 버튼을 누르면 바로 사용할 수 있게 QR체크 화면으로 넘어갑니다.

3. QR접근

  • 디바이스를 사용하기 위해 디바이스에 부착된 QR을 찍으면 디바이스 고유번호를 인식하여 디바이스가 열리게 하였습니다.
  • 디바이스가 열리고 담배를 투입하면 디바이스 내부로직을 통해 담배여부를 확인하고 결과를 넘겨주게 만들었습니다.
  • 담배가 맞다면 "성공페이지"로 아니라면 "실패페이지"로 이동합니다.
  • 담배가 맞다면 유저의 최근담배핀 시간이 갱신되게 되고 포인트가 적립이 됩니다.
  • 홈화면으로 이동시 다음 이용 가능시간(마지막으로 피고 40분 후)까지 체크를 위해 타이머기능이 있습니다.
  • 40분이 지났다면 이용가능, 40분이 지나지 않았다면 타이머가 시작됩니다.

4. 포인트적립 및 환전기능

  • 담배를 넣어서 포인트가 적립되었다면 포인트 전환신청을 할 수 있습니다.
  • 전환신청 내역은 관리자 페이지에 올라가게 되고 관리자가 승인을 해주면 계좌에 돈 입금과 동시에 알림이 가게 됩니다.

5. 불만사항접수(불편사항 & 고장신고)

  • 불편사항 발생시 글과 내용(이미지 첨부도 가능)을 적게 됩니다. 적힌 글은 관리자 페이지에 올라가게 됩니다.
  • 고장사항 발생시에는 글과 내용뿐만 아니라 어디 디바이스인지에 관한 정보가 있어야하기 때문에 QR체크로 디바이스 등록까지 마쳐야 글을 작성할 수 있습니다. 역시 작성된 글을 관리자 페이지로 올라가게 됩니다.
  • 고장신고된 디바이스는 관리자가 글을 보며 즉석에서 디바이스 고장상태로 변환시킬 수 있고 고장상태로 변환된 디바이스는 기기정보창에서 빨간색으로 표시가 됩니다.

6. 관리자 페이지 디바이스 관리기능

  • 문제가 생긴디바이스나 고장난 디바이스를 관리하게 위해 지도상에 설치된 디바이스를 볼 수 있습니다.
  • 문제가 생긴디바이스가 있다면 최적경로로 이동하기 위해 네이버지도 api를 통해 최단경로시간을 안내합니다.
  • 디바이스 주변동네를 구체적으로 보고 싶다면 로드뷰 기능을 활용할 수도 있습니다.
  • 디바이스를 잘 조치했다면 고장상태를 변경할 수 있습니다.

🎛️ 디바이스 주요기능

0. 디바이스 이미지

1. 투입구 개폐

open

  • 사용자가 디바이스 상단에 위치한 QR코드를 인식합니다. 사용자 인것이 DB측과의 지속적인 GET요청을 통하여 확인이 되면 내부의 모터가 작동하며 투입구와 내부 덮개가 열리게 됩니다. 이후 담배 인식이 되면 개폐구는 닫히게 됩니다.

2. 담배 인식 및 판별

sensor

  • 인식부에서는 CDS 조도 센서를 사용하여, 물체가 입구를 통과 할 경우 낮아지는 조도량을 측정하여 물체 통과를 인식합니다. 인식되지 않을경우 5초후 다음 과정은 생략됩니다.
  • 판별부에서는 정확도를 높이기 위해 3가지 센서를 사용하여 담배인지 아닌지를 판별합니다.
  • 비접촉 온도센서에서는 적정 설정온도를, 가스 센서에서는 일정량 이상의 가스를, 공기질 센서에서는 미세먼지 량을 측정하여 3가지 판별 프로세스 중 하나라도 통과하면 담배로 인식됩니다.

3. 담배 분쇄

grind

  • 판별부에서 담배로 인식이 된다면 곧바로 분쇄하게 됩니다. 분쇄된 담배는 일반 쓰레기와 분리되어 수거됩니다.

4. 처리 후 사용 정보 DB 송신

get

  • 판별이 끝난 후 담배 인것이 확인되면 이를 DB측으로 송신합니다.
  • DB에서는 이를 포인트로 적립시킵니다.

5. 기기정보 업로드

  • 1시간 마다 기기의 정보를 업로드합니다.
  • 위의 이미지 처럼 DB의 Table에 해당되는 JSON 형식으로 POST요청을 보냅니다. 기기 ID, 사용자 이름, 기기 상태, 쓰레기 통 용량, 배터리 등의 정보를 관리자 측으로 송신합니다.


🎥 UCC 보러가기

보러가기



🙌 협업 관리

image-20220815203822908

image-20220815204147723

image-20220815205046798

🧑‍💻 개발 멤버 소개



👑 김도원
(Embedded)



🙂 김강현
(Front-End)



😆 권덕민
(Front-End)



😁 유승우
(Back-End)



🙄 윤성한
(Embedded)

Firmware
3D Modeling
UI/UX
React
UI/UX
React
REST API
CI/CD
Infra
Firmware

⌛ 프로젝트 기간

22.7.11 ~ 22.8.19

  • 기획 및 설계 : 22.7.11 ~ 20
  • 프로젝트 구현 : 22.7.21 ~ 22.8.16
  • 버그 수정 및 산출물 정리 : 22.8.17 ~ 19

📖 프로젝트 관련 문서

구분 링크
와이어프레임 웹 와이어프레임 바로가기 / 디바이스 와이어프레임 바로가기
프로젝트 노션 프로젝트 노션 바로가기
DB덤프 DB덤프 바로가기
ERD ERD 바로가기
빌드/배포 빌드/배포 바로가기
외부서비스 정보 외부서비스 정보 바로가기
시연 시나리오 시연 시나리오 바로가기
발표자료 발표자료 바로가기

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published