Skip to content
Snippets Groups Projects
Select Git revision
  • 6a16360ec6d14d7963a5509b4a9cb4199835e40e
  • main default protected
2 results

systemprogramming

  • Clone with SSH
  • Clone with HTTPS
  • 박 원기's avatar
    박 원기 authored
    6a16360e
    History

    System Programming Team Project

    2023년 2학기 시스템 프로그래밍 팀 프로젝트 : 스마트 통발 https://github.com/Pylangs/SP_Project

    🛠️구현 기능들

    PI 1

    • 주된 서버 역할 -> 다른 파이들과의 연결을 담당
    • 카메라 센서 -> 물고기 판단 및 안드로이드에 실시간 영상 전달
    • 모터 센서 -> 미끼를 풀기 위한 용도

    PI 2

    • LED 센서 -> 어둡거나 유저가 원할때 on/off 가능
    • 조도 센서 -> LED를 자동으로 제어하기 위함

    PI 3

    • 모터 센서 2개 -> 통발의 앞 뒷문의 개폐를 담당

    PI 4

    • 스피커 -> 유저가 원할 때 통발의 찾기 위함
    • GPS -> 유저가 요청했을 때 현재 위치를 전달하기 위함
    • 수질 센서 -> 현재 통발 위치의 수질정보를 유저에게 보여줌

    ELSE

    • flask&pytorch -> 물고기인지 쓰레기인지 판단
    • android -> 유저의 통발 작동을 위함

    🔍기능들 세부 동작방법

    PI 1

    1. C코드 실행 전 카메라 센서 웹으로 송출
    2. flask, pi2, 3, 4순으로 연결
    3. 물고기인지 판단 값, 유저의 command를 실시간으로 받아옴
    4. 각 command를 적절한 pi에 보내주기 or 모터센서를 작동

    PI 2

    1. 조도 센서 값이 임계값 이하일 때 LED를 작동
    2. PI 1과 socket연결을 진행
    3. PI 1 으로 부터 led command를 받아오면 조도센서값 무시 & 유저의 command에 맞게 led 작동

    PI 3

    1. 최초 실행시 통발의 앞 뒷문 열어둠
    2. PI 1과 socket연결을 진행
    3. 카메라 센서로 부터 물고기 정보를 받아오면 문을 닫는다.
    4. 유저로 부터 command가 들어 오면 그 command에 맞춰 개폐를 하도록 한다.

    PI 4

    1. 최초 실행시 스피커를 off시킴
    2. PI 1과 socket연결을 진행
    3. 일정 시간을 주기로 PI 1에 gps값과 수질값을 전송하게됨 (user가 command를 보낼시 PI 1에서 처리)
    4. user로 부터 스피커 command를 받았을 시 스피커를 잠깐 동안 작동시킴

    flask & torch

    1. 플라스크 서버가 사진을 받음
    2. 사진을 모델을 통하여 식별
    3. 모델이 판단함
    4. PI 1에게 전달함.

    android

    1. 유저로 부터 포트값 입력 받음
    2. 유저가 버튼을 누를 시 socket연결을 함
    3. 버튼에 맞는 command를 PI 1에 전송
    4. 정보를 받아올 필요가 있으면 받아온뒤 text값 변경
    5. 변경 or 정보를 받아올 필요가 없을 시 socket연결 종료
    6. cctv버튼이거나 gps버튼일 경우 webview를 이용해 유저에게 화면으로 보여줌

    🧑각 기능별 담당자

    PI 1 & flask, pytorch : 박원기

    PI 2 & android : 채승우

    PI 3 : 한도훈

    PI 4 : 정의훈