- Dự án tạo ra một màn hình nhỏ hiển thị thông tin tàu BART đến theo thời gian thực, tái hiện cảm giác của bảng chỉ dẫn thật trên sân ga
- Cấu hình phần cứng sử dụng Seeed Studio XIAO ESP32C6 và màn hình ký tự OLED đỏ 20x4
- Thay vì xử lý trực tiếp dữ liệu từ GTFS Realtime API, dự án tạo một máy chủ trung gian (middleware) để chuyển đổi sang API đơn giản hơn rồi ESP32 gọi tới
- Vỏ được in 3D và bổ sung các chi tiết như nhãn, ốc vít để tạo ngoại hình giống bảng chỉ dẫn BART thật
- Thành phẩm được gắn bên dưới kệ phía trên màn hình, cung cấp thời gian tàu đến, thông điệp an toàn và đồng hồ, tái hiện cảm giác sân ga ngay trong nhà
Cấu hình phần cứng
- Dự án gồm Seeed Studio XIAO ESP32C6, SPI Red 20x4 Character OLED Display, và SparkFun Logic Level Converter
- ESP32C6 đảm nhiệm việc điều khiển màn hình và thu thập thông tin tàu BART đến
- Bộ chuyển đổi mức logic giúp đảm bảo tương thích điện áp
- Mô-đun OLED đỏ của BuyDisplay được chọn để tái hiện cảm giác của bảng chỉ dẫn trên sân ga BART thật
- PCB lớn hơn màn hình một chút nên có ảnh hưởng đến kích thước cuối cùng, nhưng được chấp nhận để đổi lấy độ hài lòng về mặt thị giác
- Tất cả linh kiện được hàn lên perfboard và kết nối bằng header pin, có thể gắn trực tiếp lên màn hình theo kiểu cartridge
Cấu trúc firmware
- API chính thức của BART sử dụng định dạng GTFS Realtime được phát triển với sự hợp tác của Google
- Vì khó phân tích cú pháp trực tiếp trên ESP32, dự án đã xây dựng máy chủ trung gian (middleware)
- Máy chủ lấy dữ liệu GTFS và chỉ trích xuất những thông tin cần thiết
- Sau đó chuyển đổi sang API đã được đơn giản hóa để ESP32 có thể gọi
- Mã liên quan được công khai trong kho GitHub (filbot/bart-proxy)
Demo và lắp ráp
- Tất cả linh kiện được lắp ráp và phiên bản đầu tiên của vỏ in 3D được đem ra thử nghiệm
- Trong video trình diễn, thành phẩm ở giai đoạn trước khi sơn hoạt động trong trạng thái nhận dữ liệu thời gian thực
- Bao gồm cả quá trình lắp ráp để kiểm tra kích thước và tỷ lệ thực tế
Hoàn thiện và hoàn tất ngoại hình
- Các bộ phận in 3D được chà nhám, sơn lót rồi sơn phủ để hoàn thiện
- Logo nhà sản xuất bảng chỉ dẫn BART thật và số sân ga được in bằng máy in nhãn Brother rồi dán lên
- Tệp mô hình 3D hoàn chỉnh có thể tải xuống từ Makerworld
Kết quả cuối cùng
- Thành phẩm được gắn bằng băng dính hai mặt bên dưới kệ kim loại phía trên màn hình
- Màn hình hiển thị thời gian tàu đến, giờ hiện tại và thông điệp an toàn của BART
- Dù cũng có thể xem thông tin thời gian thực trên web, một màn hình thu nhỏ mô phỏng sân ga thật mang lại trải nghiệm sử dụng thú vị hơn
1 bình luận
Ý kiến trên Hacker News
Đây thực sự là một dự án rất tuyệt. Trước đây tôi cũng từng rời nhà theo lịch tàu ở ga, nhưng rồi sớm nhận ra điều đó chẳng có nhiều ý nghĩa
Cứ ra ngoài vào lúc thuận tiện thì bớt hẳn áp lực phải canh giờ, và dù thời gian chờ trung bình có tăng lên một chút thì tinh thần vẫn thoải mái hơn nhiều
Vào những ngày khoảng âm 20 độ thì chờ 1 phút với chờ 7 phút thật sự khác biệt rất lớn
Có thể tham khảo bài trên Medium
Lúc đó tôi có thể ôn flashcard SSR hoặc đọc sách để lấy lại bình tĩnh
Đặc biệt, ga South San Francisco có trần rất cao, lại còn nghe thấy cả tiếng bồ câu nên không khí gần như giống một nhà thờ lớn
Tôi cũng đã làm một thứ tương tự. Đó là dự án màn hình màu dùng dữ liệu giao thông Thụy Sĩ, và tôi còn thương mại hóa nó
Có thể xem bài viết về dự án và trang sản phẩm
Nó dùng dữ liệu công khai do chính phủ cung cấp trên ESP32-S3
Mức độ hoàn thiện thật sự rất cao. Lựa chọn màn hình cũng rất xuất sắc
Nếu muốn giảm middleware, một cách là thử dùng LLM đời mới để chuyển đổi ngôn ngữ mã
ESP đủ mạnh để tự xử lý công việc API, nên nếu thử chuyển bằng LLM thì hiệu quả học tập cũng rất lớn
Những dự án kiểu này thật sự truyền cảm hứng
Nhờ những chi tiết tỉ mỉ mà nó tạo cảm giác như một biển báo ga thu nhỏ ngoài đời thực. Thành phẩm rất đẹp
Mỗi lần nhìn màn hình là trong đầu tôi tự động vang lên giọng thông báo của BART
Bài liên quan: bài viết về phát thanh thông báo của BART
Đây là một món tự chế thực sự rất đẹp. Có cảm giác nó sẽ làm thay đổi hẳn không khí của căn phòng
Tôi có một đề xuất tính năng — sẽ rất hay nếu thêm giọng nói robot
Tham khảo: bài viết về phát thanh thông báo của BART
Nhưng vì những người khác thấy ồn ào nên nhanh chóng phải tắt đi
Ngày trước, khi sân ga thay đổi thì phải tự mình đi kiểm tra từng nơi
Sau khi đọc bài liên quan, tôi đã nghĩ “mình nhất định phải tìm ra giọng nói này”, và cảm giác như vừa tìm đúng thứ đó vậy
Tôi thấy được truyền cảm hứng từ thiết kế API thời gian thực đơn giản và gọn gàng này
Nó khiến tôi nghĩ rằng có lẽ có thể tiếp cận vấn đề dễ hơn nhiều so với lần trước khi tôi làm việc với dữ liệu GTFS
Tổng thể thì mức độ hoàn thiện và chi tiết đều rất xuất sắc. Không khí và cảm giác nhập vai thực sự rất tốt
Tôi cũng từng muốn làm thứ tương tự để hiển thị thông tin tàu trước nhà
Nhưng tôi vẫn chưa tìm được một API đủ đáng tin cậy