/* ============================================================================= * app_config.h - SHT30 온습도 모니터링 STM32F407 펌웨어 공통 설정 (컴파일 타임) * * 이 헤더는 SHT30 온습도 보드의 네트워크/API/주기/핀 설정을 담는다. * 운영 비밀값(API_KEY 등)은 secrets.h 로 분리한다(저장소 미포함). * 보드 식별값(device_id 등)은 board_config.h 에서 BOARD_* 매크로로 정의한다. * * RPi config.py 대응: * API_URL/API_KEY -> APP_API_HOST/APP_API_PATH/secrets.h:APP_API_KEY * REPORT_INTERVAL -> APP_SHT30_REPORT_INTERVAL_SEC * HTTP_TIMEOUT/RETRY -> APP_HTTP_*_* * ===========================================================================*/ #ifndef APP_CONFIG_H #define APP_CONFIG_H /* ── 펌웨어 버전 (서버로 보고하는 app_version 필드) ───────────────────────── */ #define APP_VERSION "v2606-sht30" /* ── 서버 API (Cafe24 PHP, HTTPS) ───────────────────────────────────────── */ /* 서버 호스트명. TLS SNI 및 HTTP Host 헤더, 인증서 CN/SAN 검증에 사용된다. */ #ifndef APP_API_HOST #define APP_API_HOST "your-domain.example" #endif #ifndef APP_API_PORT #define APP_API_PORT 443 #endif /* sensor_data.php 경로 (서버 디렉터리 구조에 맞게 조정) */ #ifndef APP_API_PATH #define APP_API_PATH "/raspi_leck_detecter/api/sensor_data.php" #endif /* ── 주기/타이밍 (초) ───────────────────────────────────────────────────── */ /* SHT30 측정/보고 주기 (sht30_monitor.py: 기본 300초, 최소 30초) */ #define APP_SHT30_REPORT_INTERVAL_SEC 300u /* ── HTTP/네트워크 재시도 (config.py HTTP_*_*) ──────────────────────────── */ #define APP_HTTP_TIMEOUT_MS 10000u /* 단일 요청 타임아웃 */ #define APP_HTTP_RETRY_COUNT 3u /* 재시도 횟수 */ #define APP_HTTP_RETRY_DELAY_MS 5000u /* 재시도 간 대기 */ /* ── 시간 동기 (SNTP) — TLS 인증서 유효기간/timestamp 필드에 필수 ────────── */ #define APP_SNTP_SERVER "pool.ntp.org" #define APP_SNTP_RETRY_DELAY_MS 15000u /* ── 네트워크 주소 지정 ─────────────────────────────────────────────────── */ /* 1 = DHCP 우선(실패 시 아래 static fallback), 0 = static 고정 */ #define APP_NET_USE_DHCP 1 #define APP_NET_DHCP_TIMEOUT_MS 20000u /* static fallback (DHCP 실패 또는 APP_NET_USE_DHCP=0 일 때) */ #define APP_NET_STATIC_IP "192.168.0.50" #define APP_NET_STATIC_NETMASK "255.255.255.0" #define APP_NET_STATIC_GW "192.168.0.1" #define APP_NET_STATIC_DNS "8.8.8.8" /* ── 워치독 (IWDG) ──────────────────────────────────────────────────────── */ #define APP_WATCHDOG_TIMEOUT_MS 20000u /* 이 시간 내 refresh 없으면 리셋 */ /* ── 디버그 로그 UART (USART3: PD8 TX / PD9 RX) ────────────────────────── * 주의: PA2/PA3 는 LAN8720 RMII(ETH_MDIO 등)와 충돌하므로 로그 UART 로 쓸 수 없다. * 따라서 ST-Link VCP(PA2/PA3) 대신 USART3 PD8/PD9 를 사용한다. HARDWARE.md 참조. */ #define APP_LOG_UART_BAUD 115200u /* ── SHT30 보드: I2C 설정 (board_sht30) ─────────────────────────────────── */ #define APP_SHT30_I2C_ADDR 0x44u /* 7-bit 주소 */ /* 센서 plausibility 범위 (벗어나면 metric_status="out_of_range"). * 주의: 운영 경보 임계(고온/저온/고습/저습 → SMS)는 서버(php/config.php 의 * METRIC_* 상수)에서 판정한다. 폐쇄망에서 임계값을 바꿀 때 펌웨어 재플래시가 * 불필요하도록, 펌웨어는 측정 원값만 보고하고 아래 범위는 센서 물리/타당성 * 한계로만 사용한다. */ #define APP_SHT30_TEMP_LOW_C (-40.0) #define APP_SHT30_TEMP_HIGH_C (125.0) #define APP_SHT30_RH_LOW (0.0) #define APP_SHT30_RH_HIGH (100.0) /* 운영 비밀값/보드 식별 */ #include "secrets.h" #include "board_config.h" #endif /* APP_CONFIG_H */