Skip to content

Jo-Minseok/headware-intelligence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⛑️ 스마트 안전 헬멧 HeadWare-Intelligence (HI)

Project Progress


CONTENTS

TEAM

Intro

  • NAME : Head Metal
  • MEAN : 비록 단단한 안전모를 만들 수는 없겠지만, 사고 발생 후에 빠른 대처로 당신의 머리를 단단하게 지키겠습니다. 음악 헤비메탈 장르 이름을 모방하여 짓게 됨.

Composition

역할 이름 Github 담당 파트 수행 내용
팀장 조민석 @Jo-Minseok PM, BE, APP, HW PM
  • Git 관리
  • Notion Project 관리
  • 서버 환경 구축
BE
  • 로그인, 계정 생성
  • 작업장 관련 처리
  • 사고 발생 처리
  • FCM Notification
  • DB 구축
  • 행위 웹 소켓 통신
  • accident, account SOLID Refactor
APP
  • 자동 로그인 기능
  • 기기 권한 및 접근
  • 헬멧 등록
  • BLE 통신, GPS, FCM 알림
  • API 통신
HW
  • 전체 기능 제작
  • 시제품 제작
팀원 전진호 @right5625 APP, BE BE
  • 기상청 API 요청 및 전처리
  • 사고 처리내역
  • 사고 발생내역(지도)
  • 사고 트랜드 머신러닝
  • 촬영 이미지 호출
  • 계정 찾기
APP
  • NAVER 지도 사고내역 표기
  • API 통신
  • 웹 소켓 통신
  • 사고 처리내역
  • 사고 추세 그래프
  • 계정 찾기
  • 메인 화면 기능
  • 계정 정보 보기
팀원 채승룡 @chaeseungryong APP, DOCS APP
  • UI/UX 디자인
  • 네비게이션 화면 전환
  • 회원가입 기능
  • 로그인 기능
  • 기타 메뉴
HW
  • 시제품 제작
ETC
  • 문서 작업
  • 재정 관리

PROJECT INFORMATION

동의대학교 2024학년도 캡스톤디자인(시스템설계)
PERIOD: [정규 기간] 2024.03.01 - 2024.06.14 (3 Month) + ∞

Mean

📃 머리 'Head' + 하드웨어 'Hardware' + 인공지능 (Artificial Intelligence) = 'HEADWARE INTELLIGENCE'
약어로 HI(Headware Intelligence). 사고가 발생해도 빠른 대응과 치료로 근로자의 목숨을 지켜 가족의 품으로 안전하게 돌아가 인사하라는 의미

Goal

🥇 연간 발생하는 중대재해로 인한 사망자 수를 감소시키기 위해 안전모에 다양한 기능을 추가하여 애플리케이션과 연동함으로써 부상자에 대한 골든 타임을 확보하는 것. 주 고객층은 도심지의 건설 현장에서 근무하는 근로자

Explain

📃 안전모와 ESP32-S3-CAM을 결합하여 시제품을 제작, 사고 발생 시 다양한 기능으로 빠른 안전 조치를 취할 수 있도록 안전 관리자가 알 수 있다. 안전 관리자는 안전에 대해 효율적으로 관리할 수 있는 어플리케이션 개발

STACKS

Collaboration

Tool

Database

API

Language

Framework

Deployment


Develop Version : 1.0.0
BackEnd Server : Uvicorn

FUNCTION

💡 HARDWARE
  • 충격 센서를 활용하여 사고 감지 및 사고 알림 HTTP 통신을 이용
  • BLE 통신을 이용하여 애플리케이션 데이터 통신 및 애플리케이션 제어 (GPS, WIFI, USER ID, WORK ID)
  • 웹소켓 통신을 이용하여 스피커와 카메라 모듈을 이용하여 안전 관리자가 사고자의 카메라와 스피커를 작동할 수 있도록 웹소켓 통신을 이용
  • 조도 센서를 이용하여 주변 빛 양을 감지를 통해 LED 자동으로 제어
  • 긴급 버튼을 누를 경우 백엔드 서버로 HTTP 통신
  • OLED 디스플레이를 이용하여 헬멧 상태 출력
💡 APP
  • 하드웨어에서 전송된 위치정보를 이용하여 사고자의 위치를 지도로 확인
  • 머신러닝을 활용하여 안전 관심도 추세 확인
  • 사고 다발 구역 표시
  • 담당 근로자들의 헬멧의 카메라, 스피커를 제어
  • BLE를 이용하여 하드웨어와 데이터 통신
  • 사고 처리내역 확인 가능
  • 사고 내역 처리 기능
  • 사고 발생 시 FCM 알림
💡 BACKEND
  • 사고 감지 데이터 저장, 긴급 호출 및 FCM 신호 알림 전송
  • 사고 내역 전송
  • 웹소켓을 이용하여 하드웨어와 애플리케이션 통신
  • 계정 관련(로그인, 회원가입, 계정 정보 변경) 통신
  • 머신러닝 활용하여 추세 데이터 전송
  • 사고 처리 내역 전송
  • 카메라 촬영 이미지 저장

SOURCE

├─ App
│   └─ app
│       └─ src
│           └─ main
│               └─ java
│                   └─ com.headmetal.headwareintellogence
│                       ├─ ApiService.kt
│                       ├─ BluetoothLeService.kt
│                       ├─ Common.kt
│                       ├─ CommonMap.kt
│                       ├─ CompanyInfo.kt
│                       ├─ Countermeasures.kt
│                       ├─ Etc.kt
│                       ├─ FindId.kt
│                       ├─ FindPw.kt
│                       ├─ Helmet.kt
│                       ├─ License.kt
│                       ├─ Loading.kt
│                       ├─ Login.kt
│                       ├─ Main.kt
│                       ├─ MainActivity.kt
│                       ├─ Map.kt
│                       ├─ Menu.kt
│                       ├─ MyFirebaseMessagingService.kt
│                       ├─ NavigationBar.kt
│                       ├─ NullMap.kt
│                       ├─ Privacy.kt
│                       ├─ Processing.kt
│                       ├─ RetrofitInstance.kt
│                       ├─ Signup.kt
│                       └─ Trend.kt
├─ Arduino
│   ├─ ESP32-S3-WROOM-CAM
│   │   ├─ ESP32-S3-WROOM-CAM.ino
│   │   ├─ camera_pins.h
│   │   └─ module_pins.h
│   └─ Firebeetle-2-ESP32-S3-CAM
│       ├─ Firebeetle-2-ESP32-S3-CAM.ino
│       ├─ camera_pins.h
│       └─ module_pins.h
├─ Backend
│   ├─ accident
│   │   └─ accident_api.py
│   ├─ account
│   │   ├─ account_schema.py
│   │   ├─ company_list.py
│   │   ├─ forgot_crud.py
│   │   ├─ forgot_router.py
│   │   ├─ login_crud.py
│   │   ├─ login_router.py
│   │   ├─ register_crud.py
│   │   └─ register_router.py
│   ├─ db
│   │   ├─ db_connection.py
│   │   └─ models.py
│   ├─ fcm_notification
│   │   └─ fcm_function.py
│   ├─ marker
│   │   ├─ accident_marker_crud.py
│   │   ├─ accident_marker_router.py
│   │   └─ accident_marker_schema.py
│   ├─ processing
│   │   ├─ processing_contents_crud.py
│   │   └─ processing_contents_router.py
│   ├─ trend
│   │   ├─ accident_trend_crud.py
│   │   └─ accident_trend_router.py
│   ├─ weather
│   │   ├─ data_preprocessing.py
│   │   ├─ original data.xlsx
|   |   ├─ processing data.xlsx
|   |   ├─ weather_api_config.py
|   |   └─ weather_api.py
│   ├─ common.py
│   ├─ main.py
│   ├─ setup.py
│   └─ test_data_insert.py
├─ Database
│   ├─ TABLECREATE.SQL
│   └─ TABLEDROP.sql
├─ .gitignore
├─ README.md
└─ requirements.txt