HN 공개: ESP32와 e-paper 화면을 활용한 물리적 포모도로 타이머
(github.com/Rukenshia)ESP32 기반 집중 타이머 프로젝트
ESP32와 ePaper 디스플레이, 회전 다이얼을 사용한 집중 타이머 프로젝트임. 이 저장소의 코드는 일부 자산과 폰트가 제거되어 바로 사용하기는 어려우나, 필요에 따라 수정 가능함.
부품 목록
- ESP32 (AZDelivery ESP32 NodeMCU 사용)
- WaveShare 4.26인치 e-Paper 디스플레이 HAT, 800x480
- KY-040 회전 인코더와 버튼
- WS2812 LED (간단한 RGB LED로 대체 가능)
- USB-C 커넥터
- 3D 프린팅 케이스
- 저항 및 0.1uF 커패시터
프로젝트 기원
생산성 향상 기술을 시도하는 것을 좋아하며, 매년 다른 사람에게 도움이 되는 프로젝트에 시간을 투자함. 전자공학 엔지니어로서의 경험을 살려 물리적인 장치를 만들고자 했으며, 친구의 시간 관리 문제를 해결하기 위해 집중 타이머를 제작하게 됨.
부품 선택 이유
ePaper 디스플레이
- 백라이트가 없는 디스플레이를 원했으며, 4.26인치 디스플레이를 선택한 이유는 다음과 같음:
- 뛰어난 해상도
- 적절한 크기
- 부분 새로 고침 지원
회전 인코더
- 직관적인 입력 장치로 회전 다이얼을 선택했으며, 신호를 부드럽게 하기 위해 0.1uF 커패시터를 추가함.
LED
- 초기에는 LED 계획이 없었으나, 디스플레이의 미묘함을 보완하기 위해 WS2812 LED를 사용하여 다양한 상태를 표시함.
케이스 제작
- 케이스는 두 부분으로 구성되며, 프린팅 시 상단 가장자리가 약간 휘어지는 문제가 있음. 이를 해결하기 위해 고무 발과 무게를 추가함.
소프트웨어
- C++로 작성되었으며, Arduino 프레임워크를 사용함. GxEPD2 라이브러리를 활용하여 디스플레이를 제어하며, 프로젝트의 일부 코드는 AI를 통해 생성됨.
장치 사용법
- 장치 시작 시 설정 변경 또는 프리셋 선택 모드로 진입 가능함. 타이머가 시작되면 LED가 깜박이며 화면에 메시지가 표시됨. 작업을 계속하거나 휴식을 시작할 수 있으며, 몇 번의 반복 후에는 더 긴 휴식 시간이 주어짐.
개발
핀 매핑
회전 인코더 (KY-040)
- CLK: 32
- DT: 21
- SW: 14
ePaper 디스플레이 (GxEPD2_426_GDEQ0426T82, WaveShare 4.26" b/w)
- BUSY: 4
- RST: 16
- DC: 17
- CS: 5
- CLK: 18
- DIN: 23
LED (WS2812)
- DIN: 25
Hacker News 의견
-
이 프로젝트를 정말 좋아함. UI가 매우 매력적이고 잘 설계되었음. 주말 활동으로 적합할 것 같음
- 해커톤 프로젝트를 찾고 있다면, E-ink 생태계는 프로그래밍하기에 충분히 발전되어 있음. Claude/AI가 API를 쉽게 사용할 수 있음
- 사람들은 일반적으로 E-ink 화면을 거실에 두는 것을 선호함. 백라이트 디스플레이보다 덜 방해되기 때문임
- E-ink와 pomodoros는 각각 나의 관심사임
-
"디바이스" 유형의 프로젝트는 항상 흥미로움. 목표가 단순하더라도 가장 도전적인 경우가 많음
- 화면 선택이 마음에 들고, 목적과 사용성을 고려한 점이 좋음
- 오브젝트 디자인에 대한 몇 가지 메모
- 노브가 장치 위에 넓고 평평하게 있으면 화면을 중앙에 배치하고 장치를 작게 만들 수 있음
- 모서리와 필렛은 물건을 세련되게 보이게 함. 작은 디테일이지만 큰 차이를 만듦
- 메뉴에 항상 세 가지 옵션이 있다면, 노브 대신 세 개의 버튼을 상단에 두는 것은 어떨지 제안함
- 반투명 필라멘트를 사용하면 멋진 "빛 전도" 부품을 만들 수 있음
- 노브 디자인에 OpenSCAD를 사용했는지 궁금함. 노브의 무늬가 프로그램적으로 잘 만들어진 것 같음
-
세 가지 다른 사용 사례에 집중하고 통계를 제공하는 것이 멋진 추가 요소임
- pomodoro가 회전 인코더가 있는 물리적 타이머에서 이름을 따온 것임을 언급하는 것이 좋을 것 같음
-
아는 사람이 물리적 pomodoro 타이머로 사업을 시작하려 했음
- 사무실에서 사용하는 사람들에게 유용한 추가 기능으로 LED를 장치 상단에 두어 화면을 보지 않고도 상태를 알 수 있게 함
-
멋진 프로젝트임. LVGL 라이브러리를 확인해보길 추천함. 임베디드 그래픽 라이브러리로 UI를 만드는 데 유용함
-
pomodoro의 전체 아이디어는 주방 타이머에서 유래함. 최고의 UX는 물리적 주방 타이머에서 찾을 수 있음
-
물리적 pomodoro 타이머를 만드는 방법을 고민 중임. 남은 시간이 보이지 않는 것이 좋음. Visual Timer 앱을 사용 중임
-
이 프로젝트를 매우 사랑함. 나만의 생산성 도구를 실제 장치로 포팅하는 것을 생각하게 함
-
pomodoro 타이머와 관련된 것을 볼 때마다 YC 창업자와의 인터뷰가 떠오름. 회사는 1년 내에 망했고, 이후 이 기술을 존중할 수 없었음