# ============================================================================= # config.py — 미니 상태 표시기 (Pi Zero 2 W + ST7789V GMT020-02 2.0" 240x320) # 비밀값(STATUS_URL/STATUS_KEY)은 config_local.py 에서 로드한다(커밋 금지). # cp config_local.example.py config_local.py 후 실값 입력. # ============================================================================= # ───────────────────────────────────────────── # 폴링/화면 주기 # ───────────────────────────────────────────── POLL_INTERVAL = 30 # 서버 상태 폴링 주기(초) — 대시보드 자동 새로고침과 동일 PAGE_INTERVAL = 8 # 페이지 자동 순환 주기(초): 요약 ↔ 센서별 FETCH_TIMEOUT = 10 # HTTP 타임아웃(초) STALE_AFTER = 120 # 마지막 성공 수신 후 이 시간(초) 지나면 STALE 표시 # ───────────────────────────────────────────── # ST7789V SPI 배선 (BCM 번호) — README.md 배선표와 일치 # GMT020-02(7핀): GND / VCC / SCL=SCLK / SDA=MOSI / RES / DC / CS (BLK 없음) # ───────────────────────────────────────────── SPI_BUS = 0 # SPI0 SPI_DEVICE = 0 # CE0 (GPIO8) SPI_SPEED_HZ = 40_000_000 PIN_DC = 25 # Data/Command PIN_RST = 24 # Reset — 물리 18번(SDA 옆). 7핀을 물리 17~24 블록에 집약 PIN_BL = None # 7핀 모듈은 백라이트 핀 없음(내부 상시 점등). 8핀이면 BCM 번호(예: 18) WIDTH = 240 HEIGHT = 320 ROTATION = 0 # 0/90/180/270 — 설치 방향에 맞춰 조정 INVERT = True # GMT020-02(IPS) 는 색반전 ON 이 정색 # 하드웨어 없이 개발/검증: True 면 SPI 대신 /tmp/display_preview.png 로 렌더 저장. # spidev/RPi.GPIO 미설치 환경에서는 자동으로 시뮬레이션 폴백. FORCE_SIMULATION = False # 한글 라벨이 필요하면 한글 TTF 경로 지정(기본은 DejaVu — 영문/숫자만). FONT_PATH = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf" FONT_PATH_LIGHT = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" LOG_FILE = "/var/log/display_dashboard.log" # ───────────────────────────────────────────── # 비밀값 로드 (fail closed — config_local.py 없으면 즉시 중단) # ───────────────────────────────────────────── try: from config_local import * # noqa: F401,F403 — STATUS_URL/STATUS_KEY/DEVICE_NAME except ImportError as e: raise RuntimeError( "config_local.py not found. Run `cp config_local.example.py config_local.py`, " "then fill in STATUS_URL / STATUS_KEY." ) from e