NTNU Dashboard:校園網路品質監測平台
整合全校 644 台無線 AP 即時狀態與六類校務資料,於 2D 校園地圖與 3D 校園模型呈現。資料庫理論課程五人團隊專案,正式上線於 dashboard.ntnu.cc 並持續運作。
- 期間
- 2026-06 上線至今
- 角色
- 五人團隊,本人為第二大貢獻者:3D 時序視覺化與和平二校區建模、AP 歷史回放前後端、人流推估、資料取得與資訊中心窗口、正式部署
- 技術
- Vue 3、TypeScript、Three.js、ECharts;Node.js/Express、MySQL 8、Redis;Docker Compose、Cloudflare Tunnel
- 規模
- 644 台 AP(約每 5 分鐘更新,快照保留 30 天)、2,850 筆人工測速、19 張資料表、48 支 API
書審對應:附件 C-1;線上站台 dashboard.ntnu.cc

平台簡介
校園網路品質在不同館舍與時段差異明顯,資訊中心有 AP 即時資料但沒有彙整呈現。平台把六類來源以排程 ETL 匯入 MySQL,經 Express API 供 Vue 3 前端呈現:
| 來源 | 內容 |
|---|---|
| 無線 AP 控制器 | 644 台 AP 的即時狀態與 2.4G/5G 連線人數;脫敏後儲存(device_id 為 MAC 加鹽雜湊,不存 MAC、IP 與序號) |
| 人工測速紀錄 | 2024 至 2026 年 2,850 筆 |
| 各大樓與校際線路頻寬 | 資訊中心公開頁面即時抓取 |
| 圖書館環境感測 | 溫溼度與 CO₂ |
| 工程與校務公告 | 總務處工程公告、資訊中心公告 |
| 使用者回報 | 一鍵測速與斷網回報 |
功能包括 2D 校園地圖與 3D 校園模型、AP 連線人數 30 天時間回放、規則化異常預警、使用者測速與回報。正式環境全 Docker(六個服務)、主機不開任何對外埠、經 Cloudflare Tunnel 對外;推送主線即自動部署。
和平校區 II 3D 建模
依官方平面圖與兩校區相對位置圖反推比例尺,建置圖書館校區 10 棟建物(綜合、圖書館、博愛、進修推廣、教育學院、美術館、科技與工程、機械、產學、地下停車場),樓層數依 AP 清單,並掛載 297 個 AP 點位;補上周邊道路、大門與內部環形道路。每輪以腳本確定性檢查「零重疊、零壓到馬路、AP 樓層全對得上」才提交。
AP 歷史回放
- 後端四支時序端點:history、range、at、series。參數化查詢讀取 AP 狀態歷史表,依 device_id 聚合再依名稱加總,避免同名 AP 漏算。
- 前端「選日期+當天時間滑桿(5 分鐘步進)」回放近 30 天任一時刻的 AP 狀態、連線數、人流與光線;管理者可把時間拉回事故當下重看全校 AP 狀態。
- AP 報表頁:依校區、大樓、AP 分組,可折疊、搜尋、篩選狀態,單台 24h/7d/30d 趨勢與在線率。
人流推估
以各棟 AP 連線數的變化驅動門口進出動畫。第一版「拿現在跟 5 分鐘前比,增加就進、減少就出」上線後,半夜三點也冒出人潮:數百台 AP 加總的連線數本身有 √N 量級的隨機起伏;改成 60 分鐘多時窗加權後,又出現「還沒下課就一堆人往外跑」的拖尾。
最終設計:量級只取最近 10 分鐘的去雜訊變化;加雜訊死區(每窗變化須超過 √N 門檻才計入);加持續性閘門(最近兩段反向視為震盪歸零,連續同向才放人);在館人潮與進出潮拆成兩條獨立曲線,以次線性壓縮動態範圍讓小樓也看得到人。設計依據來自實測:凌晨三點全校連線 46、5 分鐘變化 9;下午兩點連線 343、變化 113。即時與回放共用同一演算法,跑在真實的資料序列上,使上下課人潮呈現為清晰脈衝。
日夜光影與行動裝置效能
- 路面與斑馬線閃爍:相機近平面 0.5 拉到 8 提升深度精度,並把綠地、路面、斑馬線分層拉開高度。
- 天際精靈以深度測試但不寫深度,讓不透明建物先寫深度;日間直接不渲染。
- 燈柱與圍牆石柱改用 InstancedMesh:約 36 盞路燈 3 個繪製呼叫、數百根石柱 1 個繪製呼叫;夜景不放真實點光源,改自發光材質加光暈,桌機才開最多 8 至 10 盞真光源。
- 真實太陽軌跡與陰影(修正北半球方向)、夜空星月、「保持白天」開關。
校車與兩種時間語意
回放時鐘可以暫停,動畫不能停:校車位置原本是「時刻到位置」的函數,回放停在某刻時校車就定格。改為以目前時刻決定校車階段(依接駁時刻表:發車前 10 至 5 分繞行進場、5 至 0 分候車、發車後 0 至 3 分駛離、無班次即消失),階段內以真實經過時間循環播放,與暫停的回放時鐘脫鉤;太陽、人流、校車、紅綠燈共用同一時間源。
回報定位常吸到隔壁棟,主因是粗估座標加 600 公尺的吸附半徑(校區建物僅相距 30 至 80 公尺),與 GPS 誤差無關;改以官方建物經緯度重寫座標表,吸附半徑縮為 150 公尺,兼顧裝置誤差與跨校區誤吸。
資料整備、窗口與部署
整理 28 個大樓分頁、644 顆 AP 的清單作為樓層與 3D 依據;向資訊中心取得 AP 控制器資料並擔任聯絡窗口;正式部署與手機版面(功能列收合、室內圖觸控、全螢幕模式)。
成果
平台於 dashboard.ntnu.cc 正式上線並持續運作,AP 資料經脫敏後約每 5 分鐘更新;本人的變更皆以 feature branch 與 PR 合入團隊主線。同一系統亦為「學習分析工具實務應用」課程之專題。



