No description
누수/온습도 경보 쿨다운이 경보 태그만 조회해, 직전에 [누수복구]/[정상복귀]가 있었어도 이전 경보 발송 시각만 보고 억제했다. 그 결과 복구 직후 재발한 새 사고 (별개 에피소드)가 쿨다운 창(기본 30분) 동안 통째로 누락됐다. - alert_cooldown_suppresses(): 경보/복구 중 "최신"이 경보이고(=미복구) 쿨다운 이내일 때만 억제하는 순수 헬퍼 추가. 최신이 복구면 새 에피소드로 즉시 발송. - send_leak_alert_sms / send_metric_alert_sms: 쿨다운 조회를 (경보|복구) 최신 1건 기준으로 교체하고 위 헬퍼로 판정. 지속 경보 폭주 방지는 그대로 유지. - tests/cooldown_episode_test.php: 복구 직후 재발 발송 등 9종 회귀 추가, run_tests.sh 에 등록. - tests/security_hardening_test.php: dew_point_c 의 forecast.php 단일출처 이동에 맞춰 낡은 단언 갱신(정의는 forecast.php, sms_send.php 는 사용 확인). 작업 트리에 있던 dew_point_c 중복정의 제거(forecast.php 단일출처화)도 sms_send.php 변경에 함께 포함된다. |
||
|---|---|---|
| .claude | ||
| .tours | ||
| docs | ||
| firmware | ||
| php | ||
| raspberry_pi4 | ||
| raspberry_pi4_sht30 | ||
| scripts | ||
| sql | ||
| tests | ||
| tools | ||
| (20260518)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp | ||
| (Y수정)_(20260520)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp | ||
| (Y수정)_(20260528)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp | ||
| .gitignore | ||
| CHANGELOG.md | ||
| PR_BODY.md | ||
| README.md | ||
| report_leak_detection_system.md | ||
| run_tests.sh | ||
| SYSTEM_OVERVIEW.md | ||
| VERSION | ||
서버실 통합 모니터링 시스템 (누수 + 온습도)
Raspberry Pi 4 센서 모듈 2대 — 1번: 누수 감지 + 카메라, 2번: SHT30 온습도 — 와
선택적 3번째 노드(신규 지점, sensor_id 3)가 동일한 cafe24 PHP 서버로 HTTPS 보고
(raw-body 서명 X-Signature = HMAC-SHA256(API_KEY, 요청본문))를 하고, 서버가 MySQL 저장,
임계/누수 판정, SMS 발송, 통합 대시보드(dashboard.php) 표시를 담당하는 단일 시스템입니다.
모듈 구성
| 폴더 | 역할 | sensor_id |
|---|---|---|
raspberry_pi4/ |
누수 감지(e-con 5C-08) + Pi Camera 촬영·사진 업로드 | 1 (신규 지점 노드는 3) |
raspberry_pi4_sht30/ |
SHT30 온습도 측정(I2C) | 2 |
php/ |
cafe24 서버 — API 수신, DB 저장, 판정/SMS, 대시보드 | — |
sql/ |
DB 스키마(schema_sht30.sql = 신규 설치 완결) + 마이그레이션 |
— |
firmware/ |
STM32F407 마이그레이션 트랙(별도) — RPi4 배포와 무관 | — |
문서
- SYSTEM_OVERVIEW.md — 전체 아키텍처·모듈 매핑·서명 스킴 (기준 문서)
- docs/DEPLOYMENT_PLAN_RPI4x3.md — RPi4 × 3 + cafe24 신규 설치 배포 계획
- docs/INSTALL_PI_SERVER.md — cafe24 서버 설치 절차 (STM32 펌웨어 중심)
- docs/OPERATIONS_SECURITY_CHECKLIST.md — 운영·보안 체크리스트