대략적인 그림 그리고 팀원들과 어떤 기능을 넣을지 회의 하기 

....!

관련 종사자에게 물어 정보 파악 하기 

( 사회복지 기관 또는 동사무소 에서) 현재 사회복지사 개인이 (독거노인이나 치매 어르신)가 관리하는 인원은

약 20명 정도이다. 현재 시스템은 집에 cctv를 설치해 상태를 확인하고 직접 찾아오거나 전화하는 형태이다.

하지만 이런 시스템은 온전히 관리자가 원할 때만 사용할 수 있는 일방향 적인 형태로,

관리 대상인 어르신의 위급상황에서 어르신 스스로 대처하기 힘들다는 단점이 있다. ...

 

요구사항 작성 및 필요 모듈 파악 

라즈베리파이 요구사항

  • 아두이노 미니(스마트 밴드) 와 연동기능이 있다.
  • 터치스크린에 날씨와 약 알림.
  • 온도 습도 센서로 온,습도를 측정한다. → 온도가 일정 이상일 때 관리자에게 열사병 주의 알림을 보낸다.
  • 위급상황시 누를 수 있는 물리적인 긴급 버튼이 있다. → 누르면 집의 주소가 119로 전달 된다. → 관리자와 보호자에게 긴급 문자 알림이 간다.
  • 동작 감지 기능 (고독사 방지) → 사운드 센서, 인체 감지 센서(적외선) 를 사용하여 움직임을 감지하고, 3일 이상 감지 되지 않는다면 119, 관리자, 보호자에게 연락한다.
  • CCTV 기능 → pi카메라를 사용. opencv를 사용하여 밤에도 볼 수 있게 한다. → 만약 밤에 움직임이 감지되면 부분을 녹화하여 서버로 보내준다.
  • 음성인식 기능 → AI스피커 모드 : 구글 어시스턴드API등을 사용하여 사용자와 상호작용 할 수 있게 한다. → 음성 녹음 모드 : 특정 단어 '아파' '살려줘' 등의 단어가 자주 사용되면 음성 녹음을 하며, 관리자에게 알림

 

개발 시작 

- 파이썬 GUI (PyQt) 관련 정보 찾아 내가 사용할 부분 학습 -> 버튼 기능, 모듈 데이터 전송

- 라즈베리파이에서 온습도 모듈을 사용하려면 다운로드하고  import Adafruit_DHT  해야한다.

- QT디자이너로 작업한 것은 ui 로 불러와야 한다.  self.ui = uic.loadUi("main.ui") 

- 재부팅후 프로그램 자동시작 하게 만들기 -> 쉘 스크립트 만들고 autoStart 수정하기

- 카메라 스트리밍 하기 mjpg_streamer 를 사용하자! 

- 근데 외부에서 접속은 어떻게 하지? -> 포트 포워딩 하자! 

- 데이터는 어떤 프로토콜로 주고 받을까? -> MQTT -> 왜? IOT 목적의 경량 프로토콜 이다! 

- 라즈베리파이를 브로커로 설정하고 토픽을 정하자! 온습도 : home/1/ht

- 동작감지센서보다 좋은 시스템을 구현하려면? -> OpenCV로 움직임 감지 시스템을 구현하자.

- 현재 스트리밍을 OpenCv로 가져와서 움직임 감지 하자

- Background Subtraction 의 알고리즘 중 BackgroundSubtractorMOG2 적용 -> 가장 깔끔하게 도출 된다.(내 생각)

- 노이즈를 제거하는데는 '형태 변환(Morphological Transformations)' 알고리즘 사용.

- bodyCascade 는 몸 전체가 아니면 인식 하기 힘들기 때문에 윤곽선과 얼굴이 감지되도록 수정했다.

- 다시 보니 윤곽선도 일정하게 검출하기 힘들 것 같다. -> 도형을 그려 면적 크기를 구하자 

- 스트리밍된 영상을 OpenCV처리하면 버벅이는 문제 → 설정에서 해상도를 320*240 으로 낮췄다.

- 구간 녹화한 영상을 MQTT로 어떻게 전송하지? -> Base64 로 인코딩 하여 보내면 된다.

- 홈 시스템에 기능이 부실하니 치매 예방을 위한 구글 어시스턴트 스피커기능을 추가하자.

 

- 개별 기능을 구현한 후 조원들과 일주일 후 통합 테스트 및 데모 시나리오를 작성하기로 했다.

- 나는 할 일을 끝내고 남은 일주일 동안 코테 문제를 풀고 있었는데...

- 통합 테스트전, 네?  MQTT로 알림과 영상을 받는 기능을 구현 못하겠다구요? 

- 커뮤티케이션의 중요성을 느끼며.. 알림, 동영상 전송 기능을 앱과 연동하기로 했다..

- 다 만들어놓은 MQTT와 이별하고 FCM을 도입해 앱으로 푸쉬알림을 보내는데 성공.

- 동영상을 앱으로 전송하는 건 시스템상 이질적이니 다른 방법을 생각하기로 하였다. 

- 결국, 라즈베리파이에 Flask서버를 돌리고, 거기에 특이 행동 최신 영상을 올려 알리기로 하였다.

 

프로젝트를 끝낸 후

다사다난한 프로젝트를 끝내고.. 보니 뭔가 허무함이 몰려왔다.

연동성과 편의성을 중심으로 한 프로젝트지만 내 기술을 증명할 만한 프로그램을 짜지 못한 것 같고,

움직임 처리 부분에서도 한 각도이기에 다른 예외상황에 대한 대처를 못한다는 것이 아쉽다. 

다양한 카메라로 다양한 각도의 영상을 받아 처리해봤으면 어땠을까?

또는 딥러닝을 사용해 대상자의 얼굴을 인식하게 하는 등의 시도를 해봐도 좋았을 것 같다.

 

'PROJECT > ' 카테고리의 다른 글

민원 데이터 분석  (0) 2020.12.29
독거노인/치매 환자 관리 모니터링 시스템  (0) 2020.08.16
아두이노 수화 통역 장갑  (1) 2020.06.30
학사 출결 정보 관리 게시판  (0) 2020.06.30
블로그 이미지

hjc_

୧( “̮ )୨

,