네, 저희는 줄랜더 농담이 바로 떠올랐어요.

데스크톱 모니터를 떠올리면 당연히 고해상도 디스플레이가 연상되며, 최고의 모니터라면 충분할 것이라고 생각하기 쉽습니다. 하지만 스스로 작은 1.14인치 디스플레이를 제작할 것이라고는 생각하기 어렵습니다. 터커 샤논(Tucker Shannon)은 ESP32 마이크로컨트롤러 기반 보드를 사용하여 실제로 이를 구현해냈습니다.
r/esp32에서 가져온 ESP32-Desktop-Monitor
샤논의 프로젝트는 TENSTAR T-Display ESP32-D0WD를 기반으로 합니다. 이 보드는 1.14인치 ST7789 LCD 디스플레이가 통합되어 있으며, 해상도는 135 x 240 픽셀입니다. 이는 무언가를 보기에는 충분히 큰 크기지만, 실용적인 업무용 디스플레이라기보다는 개미들을 위한 보조 디스플레이에 가깝습니다. 위 비디오에서 볼 수 있듯이, 이 모니터에는 샤논의 주 디스플레이에서 나온 출력과 본질적으로 동일한 구글 크롬 창이 축소되어 미러링 및 스케일링되어 표시됩니다. ST7789와 같은 종류의 화면은 메이커 및 마이크로컨트롤러 분야에서 흔하며, 책상 서랍을 살펴보면 이와 호환되는 다양한 디스플레이 예시를 쉽게 찾을 수 있습니다.
비디오 스트리밍을 ESP32로 전송하는 방식은 메인 디스플레이를 캡처한 후, 커스텀 프로토콜을 통해 Wi-Fi로 프레임을 스트리밍하는 것입니다. 이 스트림은 현재 프레임과 이전 프레임을 비교하여 변경된 픽셀(differential pixels)만 전송하는 방식을 사용합니다. 따라서 비교적 정적인 화면에서는 샤논의 프로젝트가 60FPS를 달성할 수 있지만, 내용이 활발하게 변화하는 디스플레이의 경우 약 5FPS로 속도가 떨어집니다. 물론 이는 네트워크 속도와 품질에 의존하지만, 샤논은 좋은 Wi-Fi 환경에서 종단 간(end-to-end) 지연 시간(latency)이 100ms 미만이라고 밝히고 있습니다.

프로젝트에 전원을 공급하는 핵심 부품은 앞서 언급된 TENSTAR T-Display ESP32-D0WD입니다. 이 $11 개발 보드는 16MB의 플래시 메모리와 ST7789 LCD 디스플레이가 통합되어 있습니다. 이 화면은 보드의 SPI 인터페이스를 통해 칩과 통신하며, 샤논은 아두이노 IDE를 사용하여 보드를 프로그래밍했습니다. 이 보드는 단순히 수신기(receiver) 역할을 하며 프레임 데이터를 수신할 준비를 합니다. 데이터를 전송하는 송신 PC에서는 파이썬 스크립트가 실행됩니다. 이 스크립트가 현재 프레임과 이전 프레임을 비교(프레임 디핑, frame diffing)하여 가장 효율적인 방식으로 데이터를 인코딩합니다. 이후 프레임들은 묶여서(batched up) 수신하는 ESP32로 전송됩니다.
"이 프로젝트의 목적이 무엇일까요?"라고 궁금해하실 수 있습니다. 샤논은 이 프로젝트가 원격 모니터링 대시보드, 보조 디스플레이, 사물 인터넷(IoT) 애플리케이션에 완벽하며, ESP32와 Wi-Fi 스트리밍 기술을 학습하는 데 매우 유용하다고 설명합니다. 어떤 용도로 사용하든, 샤논의 프로젝트는 제한된 자원과 영리한 코딩만으로 얼마나 많은 것이 가능한지를 보여주는 사례입니다.
코드 및 직접 제작에 필요한 모든 지침은 샤논의 GitHub 페이지에서 확인할 수 있습니다.
최신 뉴스, 분석 및 리뷰를 받아보시려면 Tom's Hardware를 구글 뉴스(Google News)에서 팔로우하거나 즐겨찾는 출처로 추가해 주세요.