피드로 돌아가기
Dev.toInfrastructure
원문 읽기
15달러 하드웨어로 구현한 UX 중심 스마트 홈 컨트롤러 설계
I Built a $15 Smart Home Controller (and Why Phones Are Bad Dashboards)
AI 요약
Context
스마트 홈 제어 시 모바일 앱의 복잡한 진입 경로로 인한 낮은 사용성 발생. 앱 실행과 메뉴 탐색 과정이 실제 물리 버튼 조작보다 비효율적인 구조. 실시간 상태 확인과 즉각적인 제어가 가능한 전용 물리 인터페이스 필요성 대두.
Technical Solution
- ESP32 기반의 Cheap Yellow Display(CYD)를 활용한 저전력 독립 제어 단말기 구축
- YAML 기반 ESPHome의 MQTT 토픽 구조 한계를 극복하기 위해 PlatformIO와 C++ 기반의 커스텀 펌웨어로 전환
- TFT_eSPI 및 espMqttClient 라이브러리를 사용한 디스플레이 렌더링과 MQTT 통신 최적화
- 320x240 저해상도 환경에서 가독성을 높이기 위해 색상 기반 상태 배지와 컨텍스트 기반 액션 버튼 설계
- 디스플레이(40MHz)와 터치 컨트롤러(2.5MHz)의 SPI 클럭 차이 해결을 위해 HSPI와 VSPI 하드웨어 버스 분리
- MQTT 콜백의 비동기 업데이트로 인한 SPI 충돌 방지를 위해 불리언 플래그 기반의 메인 루프 갱신 방식 도입
Impact
- 하드웨어 구축 비용 20유로 미만 달성
- 전력 소모량 약 0.5W 수준의 저전력 구동
- 디스플레이 해상도 320 x 240 픽셀 최적화
Key Takeaway
임베디드 환경의 공유 리소스 접근 시 비동기 콜백 내 직접 제어보다 상태 플래그를 통한 동기화 처리가 시스템 안정성 확보에 필수적임.
실천 포인트
SPI 버스 공유 시 주변 장치 간 클럭 속도 차이를 확인하고, 상이할 경우 물리적 버스 분리 또는 속도 재설정 로직을 구현할 것