Hyunseok Byun · 변현석
← indexesp32-weather
ESP32 Weather — 책상 날씨 디스플레이 펌웨어
AI · Hardware·운영 중·2026-05: 진행중

ESP32 Weather

책상 날씨 디스플레이 펌웨어

매일 아침 Siri 를 부르는 루틴을 간소화하고, 날씨를 시각적으로 확실하게 확인하기 위해 ESP32 로 만든 ambient 대시보드입니다. 화장실에 설치해 두었고, 집에 있는 동안에는 항상 가동되고 있습니다.

기술 스택

ESP32C++PlatformIOArduinoKMA API

만든 이유

매일 아침 샤워 후 Siri 를 부르는 루틴을 간소화하고, 날씨를 시각적으로 확실하게 확인하기 위해 ESP32 로 대시보드를 작성했습니다. 마침 손에 ESP32 가 있어, 한 번 직접 만들어 보기로 했습니다.

코멘트

임베디드를 실제로 구현하고, 체험하고, 사용하고 있습니다. 펌웨어 (C++) → b-hub (TypeScript) → MySQL → KMA 로 이어지는 풀스택 흐름을 완성했으며, 책상이 아닌 기계 단에서 메모리 · 화면 buffer · 폰트 렌더링을 다시 생각해 보는 계기가 되었습니다.

주요 특징

  • 01ESP32-D0WD-V3 + ILI9341 2.8" TFT (320×240) + XPT2046 저항식 터치: "Cheap Yellow Display"
  • 02State machine: BOOT → WIFI_SETUP → LOCATION_SEARCH → WEATHER ⇄ SETTINGS / DISPLAY_SETTINGS
  • 03두벌식 한글 키보드 직접 구현 (위치 검색용): 라이브러리 없이 작성, 재사용 가능하게 분리
  • 04u8g2 unifont 한글 + drawJamoGlyph()로 호환 자모 픽셀 작도
  • 05자기 복원: 60초 heap 모니터, KST 00/12시 자발적 reboot, fetch all-or-nothing (stale 유지)
  • 06b-hub /weather/* 프록시: KMA API 키 미노출, 격자좌표 변환 위임, weatherApiKey quota 관리

비고

  • ·ILI9341 표준 드라이버의 색 반전 / 축 교환 버그: ILI9341_2_DRIVER + setRotation(1) + invertDisplay(1)로 회피 (3~4시간 삽질)
  • ·WiFi 늦은 연결 시 백그라운드 자동 재연결 기능 추가 예정