2023년 2학기 시스템 프로그래밍 팀 프로젝트 : 스마트 통발
- 주된 서버 역할 -> 다른 파이들과의 연결을 담당
- 카메라 센서 -> 물고기 판단 및 안드로이드에 실시간 영상 전달
- 모터 센서 -> 미끼를 풀기 위한 용도
- LED 센서 -> 어둡거나 유저가 원할때 on/off 가능
- 조도 센서 -> LED를 자동으로 제어하기 위함
- 모터 센서 2개 -> 통발의 앞 뒷문의 개폐를 담당
- 스피커 -> 유저가 원할 때 통발의 찾기 위함
- GPS -> 유저가 요청했을 때 현재 위치를 전달하기 위함
- 수질 센서 -> 현재 통발 위치의 수질정보를 유저에게 보여줌
- flask&pytorch -> 물고기인지 쓰레기인지 판단
- android -> 유저의 통발 작동을 위함
- C코드 실행 전 카메라 센서 웹으로 송출
- flask, pi2, 3, 4순으로 연결
- 물고기인지 판단 값, 유저의 command를 실시간으로 받아옴
- 각 command를 적절한 pi에 보내주기 or 모터센서를 작동
- 조도 센서 값이 임계값 이하일 때 LED를 작동
- PI 1과 socket연결을 진행
- PI 1 으로 부터 led command를 받아오면 조도센서값 무시 & 유저의 command에 맞게 led 작동
- 최초 실행시 통발의 앞 뒷문 열어둠
- PI 1과 socket연결을 진행
- 카메라 센서로 부터 물고기 정보를 받아오면 문을 닫는다.
- 유저로 부터 command가 들어 오면 그 command에 맞춰 개폐를 하도록 한다.
- 최초 실행시 스피커를 off시킴
- PI 1과 socket연결을 진행
- 일정 시간을 주기로 PI 1에 gps값과 수질값을 전송하게됨 (user가 command를 보낼시 PI 1에서 처리)
- user로 부터 스피커 command를 받았을 시 스피커를 잠깐 동안 작동시킴
- 유저로 부터 포트값 입력 받음
- 유저가 버튼을 누를 시 socket연결을 함
- 버튼에 맞는 command를 PI 1에 전송
- 정보를 받아올 필요가 있으면 받아온뒤 text값 변경
- 변경 or 정보를 받아올 필요가 없을 시 socket연결 종료
- cctv버튼이거나 gps버튼일 경우 webview를 이용해 유저에게 화면으로 보여줌
PI 1 & flask, pytorch : 강원기
PI 2 & android : 채승우
PI 3 : 한도훈
PI 4 : 정의훈