Skip to content

haedalprogramming/prevention

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prevention - 드론 활용 차세대 AI 소방 재난 구조 시스템

🚀 시스템 개요

실시간 드론 영상 분석과 위치 추적 기술을 활용한 차세대 AI 소방 재난 구조 지원 시스템입니다.

주요 기능

  • 🚁 실시간 드론 모니터링: 다중 드론 상태 추적 및 제어
  • 🔥 AI 화재 감지: 실시간 영상 분석을 통한 화재 자동 탐지
  • 👤 생존자 위치 추적: 신호 강도 기반 실내 위치 추정
  • 🗺️ 실시간 현장 지도: 드론, 생존자, 소방관 위치 시각화
  • 📡 WebSocket 실시간 통신: 지연 없는 데이터 전송
  • 🚨 긴급 알림 시스템: 위험 상황 즉시 알림

📁 프로젝트 구조

prevention/
├── backend/
│   ├── main.py                  # FastAPI 메인 서버
│   ├── drone_simulator.py       # 드론 시뮬레이터 (테스트용)
│   ├── sensor_simulator.py      # 센서 시뮬레이터 (테스트용)
│   ├── requirements.txt         # Python 의존성
│   └── .env.example            # 환경 변수 예시
├── frontend/
│   └── index.html              # 웹 대시보드
├── hardware/
│   ├── sensor_receiver_point.ino      # 감지 수신기 (Arduino)
│   ├── firefighter_display_module.ino # 소방관 디스플레이 (Arduino)
│   ├── main_control_module.py         # 메인 제어 모듈 (Python)
│   ├── requirements.txt               # Python 의존성
│   └── README.md                      # 하드웨어 가이드
├── instructions/
│   ├── roadmap.md              # 프로젝트 로드맵
│   └── skillstacks.md          # 기술 스택
└── README.md

🛠️ 기술 스택

Backend

  • FastAPI - 고성능 Python 웹 프레임워크
  • WebSocket - 실시간 양방향 통신
  • Python 3.10+ - 프로그래밍 언어

Frontend

  • HTML5/CSS3/JavaScript - 웹 대시보드
  • WebSocket API - 실시간 데이터 수신

Hardware (하드웨어)

  • Arduino Uno R3 - 마이크로컨트롤러
  • HC-06 Bluetooth - 블루투스 통신 모듈
  • ESP8266 WiFi - WiFi 통신 모듈
  • IR 센서 - 적외선 빔 감지
  • LCD 1602 I2C - 디스플레이

향후 확장 예정

  • PostgreSQL - 데이터 저장
  • Redis - 캐싱 및 세션 관리
  • MQTT - IoT 디바이스 통신
  • PyTorch/TensorFlow - AI 모델
  • Mapbox/Leaflet - 지도 시각화
  • ESP32 BLE - 신호 강도 기반 위치 추적

🚀 빠른 시작

1. 사전 요구사항

  • Python 3.10 이상
  • pip (Python 패키지 관리자)

2. 설치 및 실행

macOS/Linux

# 실행 권한 부여
chmod +x start_server.sh start_simulator.sh

# 서버 시작
./start_server.sh

Windows

# 가상환경 생성
python -m venv venv

# 가상환경 활성화
venv\Scripts\activate

# 의존성 설치
pip install -r backend/requirements.txt

# 서버 시작
cd backend
python main.py

서버가 http://localhost:8000에서 실행됩니다.

3. 웹 대시보드 열기

브라우저에서 frontend/index.html 파일을 열거나:

# 간단한 HTTP 서버 실행
cd frontend
python -m http.server 8080

그 다음 브라우저에서 http://localhost:8080으로 접속합니다.


🔧 하드웨어 설치

아두이노 & 센서 시스템

실제 하드웨어로 생존자 위치 추적 시스템을 구축할 수 있습니다.

시스템 구성

  1. 감지 수신기 (3세트) - IR 빔 차단 감지
  2. 소방관 디스플레이 (1세트) - 실시간 위치 표시
  3. 메인 제어 모듈 (PC) - AI 로직 실행

필요 부품

  • Arduino Uno R3 × 4
  • HC-06 블루투스 모듈 × 3
  • ESP8266 WiFi 모듈 × 1
  • IR 송신/수신 모듈 × 3쌍
  • LCD 1602 I2C 디스플레이 × 1
  • 브레드보드 및 점퍼 와이어

설치 방법

# Arduino 라이브러리 설치
# Arduino IDE → 도구 → 라이브러리 관리
# "LiquidCrystal I2C" 검색 및 설치

# Python 의존성 설치
cd hardware
pip install -r requirements.txt

# 각 아두이노에 코드 업로드
# 1. sensor_receiver_point.ino (3개, ID 변경: 01, 02, 03)
# 2. firefighter_display_module.ino (1개)

# 메인 제어 모듈 실행
python main_control_module.py

자세한 하드웨어 가이드는 hardware/README.md를 참조하세요.

시스템 데이터 흐름:

[생존자 통과] → [IR 차단] → [감지 수신기 (Arduino + HC-06)]
    ↓ Bluetooth
[메인 제어 모듈 (PC - AI 로직)]
    ↓ WiFi/HTTP
[소방관 디스플레이 (Arduino + ESP8266 + LCD)]

🧪 테스트 (시뮬레이터)

실제 드론과 센서가 없어도 시스템을 테스트할 수 있습니다.

자동 실행 (추천)

# macOS/Linux
./start_simulator.sh

# 메뉴에서 선택:
# 1-3: 드론 시뮬레이터
# 4-5: 생존자 센서
# 6-7: 소방관 센서

수동 실행

# 터미널 1: 서버 실행
cd backend
python main.py

# 터미널 2: 드론 1 시뮬레이터
python drone_simulator.py DRONE_001

# 터미널 3: 드론 2 시뮬레이터
python drone_simulator.py DRONE_002

# 터미널 4: 생존자 추적기
python sensor_simulator.py SURVIVOR_001 survivor

# 터미널 5: 소방관 추적기
python sensor_simulator.py FF_001 firefighter

시뮬레이터는 자동으로:

  • 드론 위치 업데이트
  • 배터리 소모 시뮬레이션
  • 랜덤 화재/인명 감지 이벤트 생성
  • 센서 신호 전송

📡 API 문서

서버 실행 후 아래 주소에서 자동 생성된 API 문서를 확인할 수 있습니다:

주요 엔드포인트

REST API

  • GET / - 서버 정보
  • GET /health - 헬스 체크
  • GET /api/system/status - 시스템 전체 상태
  • POST /api/drone/{drone_id}/command - 드론 명령 전송
  • GET /api/alerts - 알림 목록
  • GET /api/survivors - 생존자 목록
  • GET /api/firefighters - 소방관 목록

WebSocket

  • ws://localhost:8000/ws/dashboard - 대시보드용 WebSocket
  • ws://localhost:8000/ws/drone/{drone_id} - 드론용 WebSocket
  • ws://localhost:8000/ws/sensor/{sensor_id} - 센서용 WebSocket

🎮 사용 방법

웹 대시보드

  1. 드론 모니터링

    • 좌측 패널에서 활성 드론 목록 확인
    • 각 드론의 배터리, 위치, 고도 실시간 표시
  2. 드론 제어

    • 이륙/착륙 버튼으로 드론 제어
    • 정지비행/복귀 명령 전송
  3. 실시간 알림

    • 우측 패널에서 화재 감지, 생존자 발견 알림 확인
    • 긴급도에 따라 색상으로 구분
  4. 위치 추적

    • 생존자와 소방관 실시간 위치 표시
    • 중앙 지도에서 전체 현황 파악

🎯 다음 단계

Phase 1 (현재) ✅

  • 기본 웹서버 구축
  • WebSocket 실시간 통신
  • 드론 시뮬레이터
  • 센서 시뮬레이터
  • 웹 대시보드
  • 아두이노 하드웨어 프로토타입 (MVP)

Phase 2 (계획)

  • 실제 드론 연동 (DJI SDK)
  • AI 화재 감지 모델 통합
  • 데이터베이스 연동 (PostgreSQL)
  • 지도 시각화 (Mapbox/Leaflet)
  • 사용자 인증 시스템
  • ESP32 BLE 기반 실시간 위치 추적

Phase 3 (계획)

  • 실내 위치 추적 알고리즘 고도화
  • 모바일 앱 개발
  • 클라우드 배포
  • 다중 드론 협업 기능
  • 드론 탑재 에어포인트 수신기

자세한 로드맵은 roadmap.md를 참조하세요.


📚 참고 문서


👥 팀

경북드론고등학교 '프리벤션' 팀

  • 시스템 개발 및 통합
  • AI 모델 개발
  • 하드웨어 설계

🤝 기여

버그 리포트, 기능 제안, 풀 리퀘스트를 환영합니다!


🚁 Prevention - 차세대 AI 소방 재난 구조 시스템

드론과 AI로 더 안전한 세상을 만듭니다.

About

드론 활용 차세대 AI 소방 재난 구조 시스템

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published