네이버지도 TBT 스크린 DIY(1)

네이버지도 TBT 스크린 DIY(1)

유튜브를 보다가 위의 영상을 보았다. 구글 내비게이션에서 목적지를 찍으면 노티바를 파싱해서 ESP32 스크린에 띄워주는 프로젝트다.

다음 호작질꺼리 후보 중 하나로 TBT(Turn by Turn) 스크린 구현을 염두에 두고 있었는데, 저 영상을 보고 '이거다' 싶었다.

평소 쓰는 티맵이나 카카오내비는 노티바에 목적지만 보여주기 때문에 유튜브 영상처럼 구현하기는 어려웠다.

하지만 네이버지도(내비게이션 기능도 있음)는 TBT용으로 적합했다. 위 사진처럼 경로 안내를 시작하면 현재 위치와 도착예정 시간, 다음 방향 전환까지 남은 거리, 가야할 방향 등을 모두 노티바에 표시해주기 때문이다.

호작질의 단짝 챗GPT와 상담을 해보니 네이버지도 알림을 파싱해서 ESP32로 보내주는 안드로이드앱 / 이걸 받아서 처리하는 아두이노 코드 이런 형식으로 해보자고 하더라.

일단 전자식 가오레 디스크(?)용으로 샀다가 두께가 두꺼워 방치됐던 Lilygo T-display S3를 이용하기로 했다. 320 x 170 스크린을 갖고 있어 납땜도 필요없어서 구현하기 적합했기 때문이다.

GPT는 eTFT를 이용한 코드를 짜줬지만 한글 구현이 매우 까다로웠다. ESP32로 호작질할 때마다 느끼는거지만 한글은 이런면에선 참 어려운 문자다. 한참을 씨름하다 제미나이에게 문의했더니 U8G2를 이용한 코드를 짜주더라.

위 사진은 처음 코드. 문제는 폰트가 이쁘지 않다는것... 여튼 NRF connector앱을 이용해 BLE로 메시지를 뿌리니 잘 들어가는 것을 확인했다.

그리고 GPT를 이용해서 안드로이드앱도 만들었다. 한번도 안해본일이지만, GPT가 시키는대로 했더니 뚝딱 만들어졌다.

프로토타입이라 배치가 이상해서 손봐야하지만 뚝딱 만들어졌다.

이제 남은건 방향 아이콘을 만들어서 표시해주는거다. 지금은 우회전은 R 좌회전은 L 이런식으로만 표시된다.

여담으로 네이버지도 알림을 파싱했을때 다른 정보는 텍스트 그대로 가져올 수 있었지만, 방향은 좌회전 우회전 이런식이 아니라 요상한 ID로만 나왔다. 일일이 해당 ID가 어떤 아이콘을 의미하는지를 매칭해줘야 했다. 일단은 좌회전, 우회전, 유턴, 터널진입, 목적지 주변 ID만 따서 매칭해뒀다.

네이버지도가 모의주행을 지원하면 좀 쉽겠지만, 그게 아니라 실제 주행하면서 일일이 ID와 아이콘을 매칭해야하는 일은 남아있다.

그냥 s3말고 long버전을 쓰면 대시보드에 올려놨을 때 더 멋질거 같다는 생각도 든다. 물론 40달러 가량으로 비싸서 일부러 살 것 같진 않지만...

누가 따라할 사람이 있는지도 모르겠고, 현재로썬 미완성이지만.. 코드도 공유합니다.

  • 일단 안드로이드 앱 제작용 코드
  • Lilygo T-display S3에 올릴 아두이노 코드

추가로 아이콘을 찾아 변환해 넣어봤다.