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