Smart CCTV

Git - https://github.com/hillier16/smartCCTV

 

hillier16/smartCCTV

Contribute to hillier16/smartCCTV development by creating an account on GitHub.

github.com

개요

기존 감시카메라의 기능에 더하여 일정 데시벨 이상의 소리가 사운드 센서를 통해 입력이 된다면 해당 시간대의 영상을 따로 저장하여 나중에 필요할 때 저장된 영상 모두를 훑어보지 않고도 바로 해당 영상에 접근할 수 있게 한다.

개발환경

  • 운영체제 - Raspbian, Android, Arduino
  • Storage - AWS S3, AWS DYNAMO DB
  • Language – Python 3, JAVA, C
  • Movile Hub(AWS Mobile SDK를 사용하여 AWS 서비스에 쉽게 액세스하며, 모바일 앱을 빌드, 테스트 및 모니터링을 단순화한 새로운 서비스)

Architecture Diagram

USB 허브를 통해 웹 카메라를 라즈베리 파이에 연결한 후 촬영된 영상 Amazon S3에 업로드. 라즈베리 파이를 소리센서가 연결된 아두이노와 연결한 후 소리센서로부터 소리 데시벨 받아옴. 라즈베리 파이가 DynamoDB로 데시벨 데이터 업로드 한 후 해당 데이터 모바일로 로그 확인

카메라로부터의 영상은 파이썬에서 opencv 패키지를 활용하여 라즈베리 파이로 받아옴
라즈베리 파이에 저장된 영상은 boto3를 이용하여 AWS의 S3로 보내 저장
소리센서로부터의 데시벨 데이터는 arduino에서 sketch를 통해서 센서 값을 받아오고, 해당 데시벨 데이터가 일정 기준치 이상이 되면 라즈베리 파이에서 python을 활용하여 AWS의 Dynamo DB로 업로드.
일정 기준치 이상의 데시벨을 소리센서가 입력받고 DynamoDB로 업로드하게 되면, 해당 시간대의 영상을 모든 영상이 저장되는 곳과 다른 S3 버킷에 따로 업로드
AWS의 Dynamo DB에 업로드 되어있는 데시벨 데이터는 Android에서 JAVA를 활용하여 로그의 형태로 받아옴. 실시간으로 출력 가능하며, 정렬된 형태로 출력

Result

모든 영상 저장 폴더 - 시간대별의 폴더안에 일정길이의 영상이 저장됨. (TEST시 1분으로 설정)
높은 데시벨 영상 저장 폴더 - 높은 데시벨의 소리가 났을 때, 그 시간이 포함된 영상이 따로 분리되어 저장됨
어플리케이션 화면과 Dynamo DB 내용

개선점

캠페인의 목적에 따라 일정데시벨을 넘길시, 푸시 알림, 이메일 또는 SMS를 보낼수 있음.

내가 맡은 역할 - 영상 녹화 후 S3저장, 카메라 스케쥴러 설정, Mobile hub사용하여 어플리케이션 만들기

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기