高瀟宇 何松庭 劉天成 吳凡 劉朋 楊巍
(天津理工大學中環信息學院 天津 300380)
近年來,隨著教育資源格局的優化,校車成為學生上下學重要的交通工具,校車被大量使用的同時,安全問題也處于相對高發的態勢。此類問題已長時間成為社會關注的熱點,牽動著社會多方面的神經。
校車安全事故頻發的原因,一是對校車自身狀態、運行軌跡等缺乏有效的監管,導致超員超載、隨意變更行車路線情況頻繁發生;二是缺乏有效的技術手段對校車車內狀態進行監管,導致學生被遺忘在車內的事件時有發生。現有的校車安全解決方案中能夠實現車輛行駛路線的追蹤和車內情況的實時監控功能,但是多種功能間缺乏聯動機制,且缺乏統一的數據呈現和有效反饋,如車內人員情況發生變化時,系統缺乏實時動態的反饋機制。理想狀態下的校車乘車人員安全輔助系統應實現對校車的全面跟蹤、監控、預警和提醒,為家長、學校乃至各級各類主管部門提供一體化、多渠道、全方位的數字化服務。軟硬件的系統集成、聯合開發、聯試聯調已成為校車乘車人員安全輔助系統開發的主流趨勢[1]。
(1)RFID的應用。RFID技術是一種無線通信技術,在無需建立機械或者光學接觸的前提下,可通過無線電信號識別特定目標,并讀取相關數據。系統應用RFID讀寫器對標記有乘車人信息的標簽進行識別。
(2)人臉識別的應用。人臉識別技術是一種基于人的面部特征信息進行身份識別的一種生物識別技術,用攝像頭采集人臉的圖像,并在圖像中檢測跟蹤人臉。在系統應用中作為RFID標簽識別的有益補充。
(3)GPS定位的應用。GPS定位技術是一種以衛星為基礎的無線電導航定位系統,在系統應用中用于追蹤校車的地理位置、車行速度等信息。
(4)移動4G的應用。4G移動通信技術可以在多個不同的網路系統、平臺與無線通信介面之間找到快速與效率的通信路徑,以進行最即時的傳輸、接收與定位等動作。在系統應用中與GPS相結合,進一步提升系統定位的可靠性和準確性。
(5)車載工控機系統集成。車載工控機配有觸摸屏、Intel J1900 CPU、4GB運行內存,128GB儲存硬盤以及支持多種接口的主板,操作系統為Windows 7。
(6)軟件開發技術的應用。以Android SDK為軟件開發工具包,以Java和PHP為主要開發語言,進行APP軟件的開發;以QT為編程框架,以C++為主要編程語言編寫車載工控機與RFID讀寫器的接口程序;以Spring boot技術開發系統軟件接口,處理工控機上傳的高并發數據[2]。
通過與其他系統的對比,確定學生家長、學校教師、校車司機為系統用戶,以學生乘坐校車行為活動的安全保障體系為研究對象,開展需求分析。
(1)學生家長需要了解:孩子上下車的具體時間和地點;孩子在上下學過程中具體乘坐了哪輛校車等信息;遇突發情況不能搭乘校車,及時向學校教師進行請假。
(2)學校教師需要了解:自己班上的哪位學生乘坐了哪部校車;學生具體上下車的時間和地點;是否有學生請假。
(3)校車司機需要了解:上下學途中需要接送的學生信息,如接送地點、應接送人數、實際接送人數、學生姓名、學生家長以及學校教師的聯系方式;車內人員的實時情況;給學生家長、學校教師一鍵撥號功能;校車故障一鍵報修功能。
(4)學生家長、學校教師、校車司機三端實時數據的一致性[3]。
系統軟硬件模塊如圖1所示。系統軟硬件各模塊間數據流程圖,如圖2所示。
問題描述:RFID讀寫器能感知標簽的存在,但是當標簽離開RFID讀寫器感知范圍時,它并不能提供該標簽離開的時刻,因此需要設計一個算法,記錄標簽離開時的大概時間。
解決方案:在數據庫中分別設置time字段(用于記錄上下車時間)以及statu字段(用于表示上下車狀態)。當statu字段為1時表示上車狀態,硬件控制模塊周期性對記錄時間進行更新,并且用當前系統時間減去最近一次硬件模塊記錄的時間,看該時間差是否大于預設的閥值(設置閥值的目的是為了避免出現標簽攜帶者只是臨時下車的情況),超過閥值,表明該標簽已經離開讀寫器檢測范圍,即已下車[4]。
問題描述:對數據庫中同一個記錄的不同字段進行操作時,可能會出現并發問題,進而影響數據的一致性。
解決方案:MYSQL自帶并發鎖,可以保證數據操作的一致性。
問題描述:RFID掃描間隔會影響RFID標簽的讀取數據的準確性。如設置太快,不但影響工控機的性能,而且可能導致同一個標簽被讀取多次,進而影響程序執行的準確性;如設置太慢,當攜帶該標簽的乘車人離開感應范圍時,實時性就會變差,甚至可能導致數據遺漏的情況發生。
解決方案:在系統調試的過程中,通過多次嘗試的方法,確定合理的掃描時間間隔。
問題描述:GPS的位置信息是實時傳輸的,在進入信號較弱地段時會出現校車定位丟失現象。
解決方案:通過編程的方法預置GPS存儲類、處理類和轉發類,在信號不好時調用上述類,并將GPS所采集到的實時數據寫入存儲類在車載工控機所創建的文本中,待信號恢復后將校車所行駛過得路線發送至服務器[5]。
針對系統的主要功能模塊開展測試,具體測試用例參見表1。

表1 測試用例