# 미니 상태 표시기 — Pi Zero 2 W + ST7789V (GMT020-02 2.0" 240×320) 관제 서버의 요약 상태를 2인치 IPS 화면에 상시 표시하는 글랜스 장치. 서버 `api/status_summary.php` 를 30초 폴링(읽기 전용, X-Status-Key HMAC 인증), 페이지 자동 순환: 시스템 요약 → 센서별(누수/온습도) 상세. 배경색 = 시스템 상태(정상 녹색 / 온습도 경보 주황 / 누수 청색 / 오프라인 회색 / 서버 무응답 적색 STALE). ## 배선 (GMT020-02 7핀 ↔ Zero 2 W 40핀, BCM) | LCD 핀 | 기능 | Pi 핀(BCM) | 물리 핀 | |---|---|---|---| | VCC | 3.3V | 3V3 | 17 | | GND | GND | GND | 20 | | SCL | SPI SCLK | GPIO11 | 23 | | SDA | SPI MOSI | GPIO10 | 19 | | RES | Reset | GPIO24 | 18 | | DC | Data/Cmd | GPIO25 | 22 | | CS | Chip Select | GPIO8 (CE0) | 24 | 핀 변경 시 `config.py` 의 PIN_* 수정. 상세 그림: `WIRING.html`. ## 설치 ```bash cp config_local.example.py config_local.py # STATUS_URL / STATUS_KEY 입력(파생키 — API_KEY 아님) ./install.sh # SPI 활성 + apt + venv (번들 있으면 오프라인) python3 test_connection.py # 서버 연결 검증 sudo cp systemd/display-dashboard.service /etc/systemd/system/ sudo systemctl daemon-reload && sudo systemctl enable --now display-dashboard ``` 폐쇄망: 빌드 PC에서 `bash vendor.sh` → `debs/`+`wheelhouse/` 동봉 후 USB 이송. 하드닝: 센서 노드와 동일 `harden_pi.sh` 사용 가능(아웃바운드 전용 장치). ## 화면 텍스트 기본 폰트 DejaVu → 라벨은 영문 축약(ALL OK / LEAK! / TEMP C …). 한글 표시를 원하면 한글 TTF 를 복사하고 `config.py` FONT_PATH 를 바꾼다 (폐쇄망이므로 폰트 파일도 USB 로 반입). ## 문제 해결 - 화면 백지: SPI 활성 여부(`ls /dev/spidev0.0`), 배선(DC/RES 스왑 흔함) - 색 이상: `config.py` INVERT 토글 - 403: STATUS_KEY 불일치 — `php -r 'echo hash_hmac("sha256","status","<서버 API_KEY>");'` 로 재계산 - 서비스 로그: `journalctl -u display-dashboard -e` - 하드웨어 없이 렌더 확인: `FORCE_SIMULATION = True` → `/tmp/display_preview.png`