1P by GN⁺ 23일전 | ★ favorite | 댓글 1개
  • BART 열차 도착 정보를 실시간 표시하는 소형 디스플레이를 제작해 실제 플랫폼 표지판의 분위기를 재현한 프로젝트
  • Seeed Studio XIAO ESP32C620x4 적색 OLED 문자 디스플레이를 사용해 하드웨어 구성
  • GTFS Realtime API 데이터를 직접 처리하지 않고, 중간 서버(middleware) 를 만들어 단순화된 API로 변환 후 ESP32에서 호출
  • 3D 프린팅으로 제작한 하우징에 라벨·나사 등 세부 요소를 추가해 실제 BART 표지판과 유사한 외형 구현
  • 완성품은 모니터 위 선반 아래에 부착되어 도착 시간·안전 문구·시계 표시를 제공, 실내에서도 플랫폼 감각을 재현

하드웨어 구성

  • 프로젝트는 Seeed Studio XIAO ESP32C6, SPI Red 20x4 Character OLED Display, SparkFun Logic Level Converter로 구성
    • ESP32C6은 디스플레이 구동과 BART 도착 정보 수집을 담당
    • 로직 레벨 변환기를 통해 전압 호환성 확보
  • BuyDisplay의 적색 OLED 모듈을 선택해 실제 BART 플랫폼 표지판의 느낌을 구현
    • PCB가 디스플레이보다 약간 커 최종 크기에 영향을 주었으나, 시각적 만족도를 위해 감수
  • 모든 부품은 퍼프보드(perfboard) 에 납땜해 헤더핀으로 연결, 디스플레이에 카트리지 형태로 직접 장착 가능

펌웨어 구조

  • BART 공식 API는 Google과 협력해 개발된 GTFS Realtime 형식을 사용
  • ESP32에서 직접 파싱하기 어려워, 중간 서버(middleware) 를 구축
    • 서버가 GTFS 데이터를 가져와 필요한 정보만 추출
    • ESP32가 호출할 수 있는 단순화된 API로 변환
  • 관련 코드는 GitHub 저장소(filbot/bart-proxy)에 공개

데모 및 조립

  • 모든 부품을 조립하고 3D 프린트 하우징의 초기 버전을 테스트
  • 시연 영상에서는 도색 전 단계의 완성품이 실시간 데이터 수신 상태로 작동
  • 실제 크기와 비율을 확인하기 위한 조립 과정 포함

마감 및 외형 완성

  • 3D 프린트 부품을 샌딩·프라이밍 후 도색하여 마감
  • 실제 BART 표지판 제작사 로고와 플랫폼 번호를 Brother 라벨 프린터로 출력해 부착
  • 완성된 3D 모델 파일은 Makerworld에서 다운로드 가능

최종 결과

  • 완성품은 모니터 위 금속 선반 아래에 양면테이프로 부착
  • 디스플레이에는 열차 도착 시간, 현재 시각, BART 안전 문구가 표시
  • 실시간 정보를 웹에서 확인할 수도 있지만, 실제 플랫폼 미니어처 형태의 디스플레이가 더 즐거운 사용 경험 제공
Hacker News 의견
  • 정말 멋진 프로젝트임. 예전에 나도 역 시간표에 맞춰 집을 나서곤 했는데, 곧 그게 의미 없다는 걸 깨달았음
    그냥 편한 시간에 나가면 계획 스트레스가 사라지고, 평균 대기시간이 조금 늘어도 훨씬 마음이 편해짐

    • 핀란드에 사는데, 겨울엔 너무 추워서 집 근처 트램 출발 시간을 보여주는 하드웨어 장치를 직접 만들었음
      영하 20도쯤 되는 날엔 1분 기다리는 것과 7분 기다리는 게 정말 큰 차이임
    • 평균 대기시간이 단순히 절반보다 더 길어질 수도 있음. 이건 Waiting Time Paradox 때문인데, 교통 분야의 Inspection Paradox 현상임
      관련 글은 Medium 글 참고
    • 나도 같은 경험을 했음. 오히려 BART 열차를 막 놓친 아침이 더 좋았음
      그 시간에 SSR 플래시카드를 하거나 책을 읽으며 마음을 가다듬을 수 있었음
      특히 South San Francisco 역은 천장이 높고, 비둘기 소리까지 들려서 거의 성당 같은 분위기임
    • 버스나 기차가 10분 간격 이상일 때만 시간표를 확인함. 트램은 거의 항상 10분 이내라 그냥 나감
    • 열차가 30분 간격으로 오는 노선을 이용할 때는 이야기가 달라짐. 이런 경우엔 시간 맞춰 도착하는 게 확실히 가치 있음
  • 나도 비슷한 걸 만들었음. 스위스 교통 데이터를 이용한 컬러 디스플레이 프로젝트인데, 제품화까지 했음
    프로젝트 글제품 사이트 참고
    ESP32-S3에서 정부가 제공하는 공공 데이터를 사용함

    • 환율 계산이 맞는지 궁금함. 약 1449CHF가 1800달러 정도로 보이는데 맞는지 모르겠음
  • 완성도가 정말 좋음. 디스플레이 선택도 훌륭함
    미들웨어를 줄이고 싶다면, 최신 LLM을 이용해 코드 언어를 변환해보는 것도 방법임
    ESP는 API 작업을 직접 처리할 만큼 충분히 강력하니까, LLM으로 변환해보면 학습 효과도 큼

  • 이런 종류의 프로젝트가 정말 영감을 줌
    세밀한 디테일 덕분에 실제 역의 미니어처 간판처럼 느껴짐. 멋진 완성도임

  • 디스플레이를 볼 때마다 머릿속에서 자동으로 BART 안내 음성이 들리는 느낌임
    관련 기사: BART 안내 방송 관련 글

  • 정말 멋진 제작물임. 방 안 분위기도 확 달라질 것 같음

  • 기능 제안 하나 있음 — 로봇 음성을 추가해주면 좋겠음
    참고: BART 안내 방송 기사

    • 예전에 Noisebridge에서 BART 도착 시간을 합성 음성으로 방송하는 프로그램을 만들었음
      하지만 다른 사람들이 시끄럽다고 해서 금방 꺼야 했음
    • 내게는 그 불분명하지만 매력적인 음성이 향수로 남아 있음
      예전엔 플랫폼이 바뀌면 직접 다 확인해야 했던 시절이 있었음
    • BART의 오래된 음성 합성 시스템이 아직도 인상적임. 당시엔 최첨단이었고, 지금 들어도 미래적인 느낌임
      관련 기사를 보고 “이 목소리를 꼭 찾아야겠다”는 생각이 들었는데, 바로 그걸 찾은 느낌이었음
  • 단순하고 깔끔한 실시간 API 설계에서 영감을 받았음
    예전에 GTFS 데이터를 다뤘을 때보다 훨씬 간단하게 접근할 수 있겠다는 생각이 듦

  • 전체적으로 완성도와 디테일이 훌륭함. 분위기와 몰입감이 정말 좋음

  • 나도 집 앞 기차 정보를 보여주는 비슷한 걸 만들고 싶었음
    하지만 신뢰할 만한 API를 아직 찾지 못했음