
用 Raspberry Pi 整港鐵實時到站板:硬件照跟,程式要重寫幾多?
官方 API 夠資料顯示未來四班車,但英國版程式唔可以直接套用
XDA 今次介紹嘅作品,係 Jon Morris Smith 整嘅英國列車出發顯示板。佢用 Raspberry Pi 4 推動幾塊大型 RGB LED matrix,再攞 Rail Data Marketplace 嘅資料,顯示月台、目的地、開車時間、延誤同沿途站。個概念搬返香港幾實用:如果每日都喺同一個港鐵站出門,塊板長開喺玄關或者辦公室,望一眼已經知仲有幾耐有車,確實快過逐次開 app。
原項目用咩硬件
作者列出嘅基本組合係 1GB Raspberry Pi 4、三塊 P2 128×64 HUB75E 5V LED matrix、Adafruit RGB Matrix Bonnet 或 Electrodragon 三路驅動板,再配最少 5V 5A 電源;示範成品就用咗四塊面板。三塊橫排已經有 384×64 解像度,擺目的地、月台同幾班車時間都夠位,亦保留到車站顯示板嗰種長條比例。
要留意,呢類 HUB75 面板食電唔少,唔可以由 Raspberry Pi GPIO 直接供電。項目作者話三塊面板顯示出發資訊時約用 1.5A 至 2A,全亮就接近 3.5A,所以佢揀最少 5V 5A。Adafruit 自己亦要求獨立 5V 電源。電源線、接線端子同正負極要處理好,唔熟大電流低壓接線嘅話,買有保護電路嘅 Bonnet 同合規火牛會穩陣好多。

圖片:Adafruit
安裝難度唔算入門級
硬件插好只係第一步。原作者用 64-bit Raspberry Pi OS Lite,仲會關掉音效、隔離一個 CPU 核心,再編譯 hzeller 嘅 RGB matrix driver,減少畫面閃爍。視乎面板掃描方式同驅動板版本,Adafruit Bonnet 可能要接跳線或者焊接 address pad;排線亦要短,方向要由 output 接去下一塊板嘅 input。之後先到裝程式、填設定、設開機自動運行同砌外殼。以 maker 項目計,難度大概係中高階,識 Linux 同基本焊接會舒服好多。
另一個容易睇錯嘅位係軟件。今次 XDA 講嘅版本,主要顯示程式用 C++,Python 只負責網頁設定介面。 舊有細型 OLED 出發板先較常見全 Python 寫法。Jon 呢套程式亦深度跟住英國 API 嘅 JSON 結構,會處理班次編號、沿途站、延誤原因、列車位置同車卡資料;換成港鐵 API 時,淨係改網址同站碼唔夠,資料解析同畫面內容都要重整。
港鐵 API 提供到咩
DATA.GOV.HK 嘅 Next Train API 暫時涵蓋機場快綫、東涌綫、屯馬綫、將軍澳綫、東鐵綫、南港島綫、荃灣綫、港島綫、觀塘綫同迪士尼綫,資料集標示每 10 秒更新,每個方向最多會顯示未來四班車。請求只要綫路、車站同語言參數,唔使申請 API key;例如查金鐘站荃灣綫繁體中文資料,可以用 line=TWL&sta=ADM&lang=TC。
回傳 JSON 會按 UP、DOWN 分方向,每班車有次序 seq、目的地站碼 dest、月台 plat 同預計時間 time。實作時要另外整站碼對照表,先可以將 TSW 顯示成「荃灣」。文件又將 ttnt 標做 dummy 欄位,所以穩陣做法係用 time 減 curr_time 自己計分鐘,唔好直接依賴 ttnt。程式亦要識得處理 status: 0、服務提示、深夜時段回傳空陣列,同資料暫缺等情況,否則 API 一有特別安排,塊板就可能停留喺舊時間。
香港版要收窄顯示內容
港鐵 API 冇交出英國版本用到嘅完整沿途站、個別班次取消原因、列車編組同營運商資料,isdelay 亦只係較概括嘅延誤狀態。香港版適合集中顯示 方向、目的地、月台、未來四班車倒數,同服務提示。呢個版面資訊已經夠日常出門用,亦避開用有限資料扮出一塊功能齊全嘅站內顯示屏。
想全程用 Python,可以用 requests 每 10 至 30 秒讀一次港鐵 API,再用 hzeller driver 嘅 Python binding 將文字畫上 matrix;想沿用 Jon 嘅外觀同更新機制,就要另寫一個港鐵 API client 同 parser,再接返佢嘅 C++ matrix driver。兩條路都做得到,前者較易由零開始,後者要睇熟原有程式架構。純粹想實用、唔追求車站味道嘅話,一塊細 OLED 或普通屏幕會易裝好多;RGB matrix 版本比較啱享受砌機過程嘅人。
參考來源
- XDA Developers — You, too, can build this live train departures board with a Raspberry Pi — original report
- Another Partial Success — UK Train Departure Board — 原作者項目頁,列出 Raspberry Pi、HUB75E 面板、驅動板、電源同安裝步驟。
- jonmorrissmith/RPi_DepartureBoard — 原項目程式碼同架構文件,用嚟核實 C++ 主程式、Python 設定介面、API parser 同 matrix driver。
- Real-time MTR train information — DATA.GOV.HK 官方資料集頁,核實涵蓋綫路、最多四班車同每 10 秒更新頻率。
- MTR Next Train API Specification v1.7 — 港鐵官方 API 文件,核實請求參數、回傳格式、錯誤狀態同特別服務安排。
- Adafruit RGB Matrix Bonnet for Raspberry Pi — 官方產品頁,核實 HUB75 兼容、獨立 5V 供電、Python 支援同面板耗電注意事項。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







