No description
Find a file
cw2007 0b1e86c84a feat(sht30): 누수 노드에 온습도 동일-id 통합 (소스·서버예시·테스트·문서)
누수 노드(Pi-A=sensor_id 1, Pi-C=sensor_id 3)에 SHT30 온습도를 "같은
sensor_id"로 보고하는 구성을 반영. 노드는 기존 sht30_sensor.py를 별도
systemd 서비스로 얹고(불안정한 누수 코드 무변경), config_local로 SENSOR_ID만 지정.

- raspberry_pi4_sht30/config.py: config_local로 SENSOR_ID/SENSOR_NAME 오버라이드
  지원(미지정 시 기본 2 유지 — Pi-B 하위호환)
- php/config.local.example.php: METRIC_SENSOR_IDS=[1,2,3] 예시 +
  SENSOR_HEARTBEAT_TIMEOUT_SEC[1,3]=1800(1·3이 온습도 목록에 들어가도 누수
  오프라인 감지 속도 유지)
- tests/heartbeat_timeout_test.php: 동일-id 통합 시 1·3 누수 타임아웃 유지 검증
- docs/superpowers/{specs,plans}: 설계 문서 + 구현 계획

설치 패키지(deploy/* — gitignored)는 온디스크 산출물로 별도 반영(sht30 서브폴더,
install.sh 체이닝, WIRING/SETUP/README, 서버 SETUP 절차).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nd7QvbgEWCjSQtUYnGNvvV
2026-07-15 10:16:49 +09:00
.claude docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
.tours docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
docs feat(sht30): 누수 노드에 온습도 동일-id 통합 (소스·서버예시·테스트·문서) 2026-07-15 10:16:49 +09:00
firmware docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
P4422-2 feat(sht30): 벤더 예제(P4422-2) 기반 단발 측정 명령 0x2400 전환 2026-07-10 10:42:10 +09:00
php feat(sht30): 누수 노드에 온습도 동일-id 통합 (소스·서버예시·테스트·문서) 2026-07-15 10:16:49 +09:00
raspberry_pi4 i18n(pi): Raspberry Pi 번들 소스 한글 → 영어 (콘솔 mojibake 해소) 2026-07-10 10:44:13 +09:00
raspberry_pi4_sht30 feat(sht30): 누수 노드에 온습도 동일-id 통합 (소스·서버예시·테스트·문서) 2026-07-15 10:16:49 +09:00
scripts refactor(db)!: DB 테이블 전체 leak_ 접두사 통일 + 구 마이그레이션 폐기 2026-07-02 18:50:56 +09:00
sql feat(alert): 누수 감지/복구 디바운스 · 온습도 1시간 주기 · 센서별 수신자 그룹 2026-07-13 20:57:17 +09:00
tests feat(sht30): 누수 노드에 온습도 동일-id 통합 (소스·서버예시·테스트·문서) 2026-07-15 10:16:49 +09:00
tools feat(sensor): 센서별 표시 라벨(위치·관리주체) 서버측 오버라이드 2026-07-11 11:22:40 +09:00
(20260518)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
(Y수정)_(20260520)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
(Y수정)_(20260528)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
.gitignore chore: 실수로 커밋된 tools/__pycache__ 제거 + __pycache__ gitignore 2026-07-02 18:56:33 +09:00
CHANGELOG.md feat: RPi4 누수+온습도 2-모듈 단일 서버 통합 + 보안 하드닝 2026-06-23 16:21:11 +09:00
PR_BODY.md docs: PR 본문 추가 (PR_BODY.md) 2026-06-24 09:01:56 +09:00
README.md docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
report_leak_detection_system.md feat: RPi4 누수+온습도 2-모듈 단일 서버 통합 + 보안 하드닝 2026-06-23 16:21:11 +09:00
run_tests.sh feat(observability): 수집 거부 출처 IP 로그 + 대시보드 노출 2026-07-09 13:43:12 +09:00
SYSTEM_OVERVIEW.md docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
VERSION chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00

서버실 통합 모니터링 시스템 (누수 + 온습도)

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 배포와 무관 —

문서