실시간 드론 영상 분석과 위치 추적 기술을 활용한 차세대 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
- FastAPI - 고성능 Python 웹 프레임워크
- WebSocket - 실시간 양방향 통신
- Python 3.10+ - 프로그래밍 언어
- HTML5/CSS3/JavaScript - 웹 대시보드
- WebSocket API - 실시간 데이터 수신
- Arduino Uno R3 - 마이크로컨트롤러
- HC-06 Bluetooth - 블루투스 통신 모듈
- ESP8266 WiFi - WiFi 통신 모듈
- IR 센서 - 적외선 빔 감지
- LCD 1602 I2C - 디스플레이
- PostgreSQL - 데이터 저장
- Redis - 캐싱 및 세션 관리
- MQTT - IoT 디바이스 통신
- PyTorch/TensorFlow - AI 모델
- Mapbox/Leaflet - 지도 시각화
- ESP32 BLE - 신호 강도 기반 위치 추적
- Python 3.10 이상
- pip (Python 패키지 관리자)
# 실행 권한 부여
chmod +x start_server.sh start_simulator.sh
# 서버 시작
./start_server.sh# 가상환경 생성
python -m venv venv
# 가상환경 활성화
venv\Scripts\activate
# 의존성 설치
pip install -r backend/requirements.txt
# 서버 시작
cd backend
python main.py서버가 http://localhost:8000에서 실행됩니다.
브라우저에서 frontend/index.html 파일을 열거나:
# 간단한 HTTP 서버 실행
cd frontend
python -m http.server 8080그 다음 브라우저에서 http://localhost:8080으로 접속합니다.
실제 하드웨어로 생존자 위치 추적 시스템을 구축할 수 있습니다.
- 감지 수신기 (3세트) - IR 빔 차단 감지
- 소방관 디스플레이 (1세트) - 실시간 위치 표시
- 메인 제어 모듈 (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 문서를 확인할 수 있습니다:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
GET /- 서버 정보GET /health- 헬스 체크GET /api/system/status- 시스템 전체 상태POST /api/drone/{drone_id}/command- 드론 명령 전송GET /api/alerts- 알림 목록GET /api/survivors- 생존자 목록GET /api/firefighters- 소방관 목록
ws://localhost:8000/ws/dashboard- 대시보드용 WebSocketws://localhost:8000/ws/drone/{drone_id}- 드론용 WebSocketws://localhost:8000/ws/sensor/{sensor_id}- 센서용 WebSocket
-
드론 모니터링
- 좌측 패널에서 활성 드론 목록 확인
- 각 드론의 배터리, 위치, 고도 실시간 표시
-
드론 제어
- 이륙/착륙 버튼으로 드론 제어
- 정지비행/복귀 명령 전송
-
실시간 알림
- 우측 패널에서 화재 감지, 생존자 발견 알림 확인
- 긴급도에 따라 색상으로 구분
-
위치 추적
- 생존자와 소방관 실시간 위치 표시
- 중앙 지도에서 전체 현황 파악
- 기본 웹서버 구축
- WebSocket 실시간 통신
- 드론 시뮬레이터
- 센서 시뮬레이터
- 웹 대시보드
- 아두이노 하드웨어 프로토타입 (MVP)
- 실제 드론 연동 (DJI SDK)
- AI 화재 감지 모델 통합
- 데이터베이스 연동 (PostgreSQL)
- 지도 시각화 (Mapbox/Leaflet)
- 사용자 인증 시스템
- ESP32 BLE 기반 실시간 위치 추적
- 실내 위치 추적 알고리즘 고도화
- 모바일 앱 개발
- 클라우드 배포
- 다중 드론 협업 기능
- 드론 탑재 에어포인트 수신기
자세한 로드맵은 roadmap.md를 참조하세요.
경북드론고등학교 '프리벤션' 팀
- 시스템 개발 및 통합
- AI 모델 개발
- 하드웨어 설계
버그 리포트, 기능 제안, 풀 리퀘스트를 환영합니다!
🚁 Prevention - 차세대 AI 소방 재난 구조 시스템
드론과 AI로 더 안전한 세상을 만듭니다.