呂凱崴kaiweilu.tw

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

3D 校園日景:建物模型與 AP 點位
3D 校園日景:建物模型與 AP 點位
本頁目錄
  1. 平台簡介
  2. 和平校區 II 3D 建模
  3. AP 歷史回放
  4. 人流推估
  5. 日夜光影與行動裝置效能
  6. 校車與兩種時間語意
  7. 資料整備、窗口與部署
  8. 成果

平台簡介

校園網路品質在不同館舍與時段差異明顯,資訊中心有 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 對外;推送主線即自動部署。

3D 校園夜景:路燈、圍牆與依時刻表運行的接駁校車
3D 校園夜景:路燈、圍牆與依時刻表運行的接駁校車

和平校區 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 趨勢與在線率。
30 天時間回放:選日期與當天時間滑桿
30 天時間回放:選日期與當天時間滑桿
單一 AP 的即時狀態與連線數
單一 AP 的即時狀態與連線數

人流推估

以各棟 AP 連線數的變化驅動門口進出動畫。第一版「拿現在跟 5 分鐘前比,增加就進、減少就出」上線後,半夜三點也冒出人潮:數百台 AP 加總的連線數本身有 √N 量級的隨機起伏;改成 60 分鐘多時窗加權後,又出現「還沒下課就一堆人往外跑」的拖尾。

最終設計:量級只取最近 10 分鐘的去雜訊變化;加雜訊死區(每窗變化須超過 √N 門檻才計入);加持續性閘門(最近兩段反向視為震盪歸零,連續同向才放人);在館人潮與進出潮拆成兩條獨立曲線,以次線性壓縮動態範圍讓小樓也看得到人。設計依據來自實測:凌晨三點全校連線 46、5 分鐘變化 9;下午兩點連線 343、變化 113。即時與回放共用同一演算法,跑在真實的資料序列上,使上下課人潮呈現為清晰脈衝。

由 AP 連線數推估的建物人流
由 AP 連線數推估的建物人流

日夜光影與行動裝置效能

  • 路面與斑馬線閃爍:相機近平面 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 合入團隊主線。同一系統亦為「學習分析工具實務應用」課程之專題。