E-ink 디스플레이 캘린더 DIY
2년전 사놓았지만, 쓸데를 찾지 못해 늘 마음의 빚으로 남아있던 녀석, 바로 Lilygo T5-4.7이다. ESP32에 4.7인치 960 x 540 전자잉크 디스플레이가 붙어있는 훌륭한 녀석이다.
구매할 당시에도 책상에 놓고 쓸 캘린더용을 염두에 두고 있었다. ESP32 펌웨어 제작에 주로 쓰는 esphome으론 한글 처리가 쉽지 않다는 점 때문에 사자마자 대충 시계 정도 띄워보고는 자동차 트렁크에 처박아 두었다.
그런데 최근 들어 컴퓨터 앞에 앉아 있는 시간이 늘면서 처박혀 있던 녀석이 생각났다. 다시 캘린더 용도로 쓸 수 있는 방법을 고민했다.
한글 직접 처리가 안되면 이미지를 띄우는 식으로 접근하기로 했다. 문제는 esphome은 펌웨어 자체에 이미지를 넣는 건 되지만, 웹서버서 이미지를 받아 처리하는 것은 불가능하다는 것.
열심히 해결방법을 찾다가 위 블로그를 발견했다. 똑같은 모델을 똑같은 방법으로 구현한 사람이 있었던 것이다.
블로그에 적힌 깃랩을 보니 크게 두 파트다. 하나는 웹서버에 올려진 이미지를 T5 디스플레이에 뿌려주는 펌웨어고, 나머지 하나는 서버 사이드에서 캘린더 이미지를 캡쳐해 적합한 형식으로 바꿔주는 파이썬 스크립트였다.
우선 펌웨어는 30분에 한번씩 깨어나 지정해 둔 웹서버에 접속해 파일이 바꼈는지를 확인한 뒤, 바꼈다면 이미지를 새로 다운로드, 아니면 슬립모드로 들어가는 식으로 구성돼 있었다. 펌웨어는 수정할 것이 없었다.
서버 사이드쪽은 내 입맛에 맞게 새로 구성해야했다. 저 블로그 주인장은 구글캘린더 일정을 가져와 새로 그림을 그리고, 이걸 캡처해서 후처리 후 T5에서 땡겨가도록 구성했지만, 난 직업 특성상 밥 약속이 주된 일정 관리라 Monthly View가 낫다는 점, 이미지 캡처 서버와 웹서버가 분리돼있다는 점 때문에 내 구글 캘린더 ics 파일을 가져가 월별 뷰를 만든 뒤, 이걸 캡처해서 후처리 후 파일서버에 전송하는 식으로 구성했다.
일단 구글캘린더 ics 파일을 웹에 띄워주는 서비스는 아래 페이지를 이용했다.
요 사이트에 ics 파일 경로를 넣어주면 웹으로 캘린더를 띄워준다.
위 깃랩의 파이썬 코드를 참조해 해당 url을 960 x 540 사이즈로 캡처한 뒤 변환하고, ftp로 파일 서버에 올려주는 파이썬 코드를 짰다. 크론탭을 이용해 10분마다 스크립트를 돌리도록 했다. 그 결과, 생각대로 구현하는데 성공했다.
이제 옷(?)을 입혀줄 차례다. 씽기버스를 뒤져보니 T5 하우징용 3D프린팅 파일이 다수 있었다. 그 중 적당한 것을 골라 JLC3DP에 주문했다.
첫 구매 쿠폰을 적용하니 배송비 포함 3.64불이더라. 취미로 간간이 DIY하는 나같은 사람은 건강에도 좋지 않은 3D프린터를 굳이 집에 들일 필요가 없는 가격이다.
주문 후 하루 정도 지나 페이팔로 결제했고, 결제 후 열흘 정도 지나니 박스가 도착했다.
앞판과 뒷판 모두 훌륭한 퀄리티였다. 사포질도 다 해놓았는지 매끈했다.
T5에 리튬폴리머 배터리 703048(두께가 7mm, 가로세로가 각각 30mm, 48mm)을 하나 달아줬다. 이건 국내에서 5000원쯤 주고 샀다. 어디 분명히 있겠지만, 수축튜브를 찾을 수 없어서 커넥터는 납땜 후 전기테이프를 감아줬다. 공간이 넉넉해서 큰 문제는 없었다.
하우징 조립까지 완료하니 그럴싸해졌다.
뒤쪽엔 알리에서 1500원쯤 주고 산 핸드폰 거치대를 붙였다.
완성 후 사무실 내 자리에 저렇게 뒀다. 글씨가 작아서 코앞까지 가야 보인다. 실용성은 좀 떨어지지만, 뭔가 데스크테리어 느낌이 나서 뿌듯하다.