姜昌成,張 奕
(桂林理工大學,廣西 桂林 541001)
公交電子站牌的出現不僅讓城市居民的出行變得更加便利,也減緩了城市道路的交通壓力。隨著電子信息產業(yè)與計算機的快速發(fā)展,電子公交站牌系統(tǒng)的研究也引起相關部門的重視。但是已有的電子站牌仍存在一些缺陷,例如:不能通過后臺實時動態(tài)遠程更新屏幕顯示的數據與信息、造價過于昂貴等。因此,針對以上缺陷,本文在系統(tǒng)可行性分析的基礎上,設計并實現了一種新型公交電子智能站牌系統(tǒng):結合時下流行的物聯網技術,使電子公交站牌不僅可實時顯示某公交線路的站點信息,還可靈活顯示運行在某站臺線路的公交車預計到站耗時以及公交車行駛速度等信息。通過請求后臺服務器端數據接口可實時對站牌端數據進行遠程同步更新。同時,通過移動端應用開發(fā)將站牌數據適配到手機應用,實現電子站牌的公交信息數據在移動端應用實時同步顯示的目的,使乘客能隨時隨地通過手機應用查看該站臺相關公交車信息數據。新型公交電子智能站牌系統(tǒng)成本低廉,信息同步實時遠程更新速度快,適用于在小城市進行應用與推廣。該系統(tǒng)將改變未來小城市居民的候車方式,提高居民的出行效率,并可以進一步緩解城市道路交通壓力。
公交電子智能站牌系統(tǒng)主要分為4個部分:公交車端、電子站牌端、移動端與服務器端。公交車端負責采集公交車實時位置信息,并上傳定位數據到阿里云物聯網平臺,通過阿里云物聯網平臺將數據轉發(fā)到服務器端應用。服務器端負責對公交車端上傳的數據與指定站牌數據進行處理,并開發(fā)相應公交車數據接口。移動端與電子站牌端可以調用服務器端數據接口,并將數據顯示到屏幕,提供給用戶或者乘客查看。系統(tǒng)功能架構如圖1所示。系統(tǒng)多端整體運行流程如圖2所示。
圖1 系統(tǒng)功能架構
圖2 多端系統(tǒng)整體運行流程
該系統(tǒng)使用Air202 S6核心板作為電子站牌與公交車端核心模塊,模塊具備GPRS通信功能,可以使用Lua腳本編程,實現GPS模塊位置信息讀取與解析、常用顯示屏驅動等功能。公交車端使用Air530模塊作為定位模塊,Air530 GPS模塊是一款性能優(yōu)異并且封裝小巧的多模式GPS模塊,該模塊尺寸小,耗能低,可應用于多種場景。Air202 S6核心板通過USART2串口與GPS模塊相連,波特率設置為9 600。公交車端通過SPI協(xié)議驅動0.96英寸OLED顯示屏進行相關參數的顯示。電子站牌通過SPI協(xié)議驅動1.8英寸TFT_LCD顯示屏,將該屏作為電子站牌系統(tǒng)顯示模塊。由于公交車端與電子站牌端使用的硬件接口較類似,因此經過對系統(tǒng)硬件原理圖的繪制以及系統(tǒng)硬件PCB電路圖的設計,將公交車端與電子站牌集成在同一塊PCB板中。系統(tǒng)硬件設計原理如圖3所示。系統(tǒng)硬件PCB電路板如圖4所示。
圖3 系統(tǒng)硬件原理
圖4 系統(tǒng)硬件PCB電路板
公交車端與電子站牌端的應用程序功能基于Luat嵌入式系統(tǒng)框架實現,Luat嵌入式系統(tǒng)框架使用Lua語言將傳統(tǒng)的通信模塊AT指令封裝為可調用的功能接口,開發(fā)者直接調用相關接口即可實現指定功能,極大地降低了系統(tǒng)的開發(fā)費用。
(1)電子站牌端
電子站牌端是系統(tǒng)的核心部分,它作為對外展示公交車數據信息的窗口,發(fā)揮著承上啟下的作用。通過調用服務器數據接口,將公交車端上傳的公交車數據信息顯示在電子站牌顯示屏中,展示給乘客。電子站牌接電源初始化系統(tǒng)后進入等待連接GPRS網絡狀態(tài),如果未成功連接GPRS網絡,則重新連接,連接上GPRS網絡后建立HTTP客戶端,請求服務器端數據接口獲取本站點公交車數據信息,并將獲取的數據在LCD顯示屏上實時顯示出來。實時顯示某輛公交車與本站點的距離、公交車到達本站預計需要的時間以及公交車行駛速度等。
(2)公交車端
公交車端將公交車定位信息上傳到服務器,提供給服務器端進行計算。系統(tǒng)程序可以通過串口讀取GPS模塊輸出的NMEA語句并對其進行解析,從而獲取公交車端經緯度以及行駛速度等信息。同時,將系統(tǒng)的運行狀態(tài)與GPS定位等信息在OLED屏上顯示。主要用于實時顯示公交車端運行時的參數信息,例如:公交車的經緯度信息、公交車行駛速度、網絡接入情況等。公交車端系統(tǒng)上電后進入等待連接GPRS網絡狀態(tài),連接上GPRS網絡后初始化MQTT客戶端,連接阿里云物聯網平臺并訂閱設置好的Topic,完成訂閱后每隔5 s讀取一次GPS模塊的數據信息,并將其上傳到阿里云物聯網平臺。
(3)移動端
系統(tǒng)啟動后,移動端應用程序調用服務器端數據接口getStations并傳入公交線路參數,進而獲取公交線路各站點信息,用戶點擊指定站點可以跳轉到地圖頁面,地圖初始化完畢后啟動一個新線程getBusData,請求公交車與站點關聯的數據信息,通過調用高德地圖SDK將每個站點的坐標點和公交車位置顯示在地圖中。同時,在系統(tǒng)運行的過程中會實時請求服務器端應用數據接口,獲取公交車實時數據信息并更新。數據接口與電子站牌共用一個接口,實現移動端應用與電子站牌數據的實時同步顯示。
(4)服務器端
服務器端應用基于SpringBoot框架進行業(yè)務開發(fā),主要將公交車端上傳的數據信息進行解析處理,并通過查詢數據庫獲取公交車站點信息,將公交車與站點之間的距離、預計到達站點時間等信息封裝成JSON字符串,開發(fā)相應數據接口供電子站牌與移動端應用調用。服務器端在系統(tǒng)啟動時建立子線程,基于AMQP協(xié)議創(chuàng)建JMS客戶端接入阿里云物聯網平臺,接收公交車端上傳的公交數據信息。服務器端接收到公交車端上傳的數據信息后將數據緩存到Redis數據庫中,業(yè)務代碼讀取Redis數據庫中的公交車數據信息,并查詢MySQL數據庫獲取指定線路站點信息,經過計算封裝處理后實現相關功能數據接口的開發(fā)。
在完成所有功能的設計后進行系統(tǒng)整體測試,測試環(huán)境選在G321國道。公交車端通過軟件編程設定為1736號公交車,使用電動車搭載本公交車端系統(tǒng),模擬公交車在公交線路上的行駛狀況。測試過程在公交車到達桂林市雁山鎮(zhèn)站臺時結束。公交車端上電后系統(tǒng)正常運行。Air202 S6核心板注冊GPRS網絡,完成GPRS網絡注冊后接入網絡。Air530 GPS模塊在首次接通電源后進行冷啟動,搜索衛(wèi)星需要2~3 min,進行公交車定位。公交車端運行時的經緯度信息與行駛速度會發(fā)生相應的變化,公交車端運行效果如圖5所示。
圖5 公交車端運行效果
電子站牌端設定站牌為桂林市博文學院-文明路(5路),對公交路線上雁山鎮(zhèn)站牌進行實地測試,使用Android手機打開移動端應用并選中雁山鎮(zhèn)站點模擬乘客使用過程。公交車節(jié)點運行在公交路線上時,可以通過電子站牌與移動端應用查看公交車實時位置信息。電子站牌運行實際效果如圖6所示,移動端應用運行效果如圖7所示。通過對系統(tǒng)整體功能進行實地測試,檢驗了系統(tǒng)運行的穩(wěn)定性和可行性。
圖6 電子站牌運行效果
圖7 移動端應用運行效果
本文對新型公交電子智能站牌系統(tǒng)的設計與實現過程進行了全面分析與闡述,并對系統(tǒng)實現的功能進行了多條實際公交線路的實地測試,檢驗了系統(tǒng)運行的穩(wěn)定性和可行性。本文設計與實現的系統(tǒng)具有成本低廉、穩(wěn)定性強等優(yōu)點,具有較好的應用與推廣價值。