王芳艷,焦鉻,陸金佳,袁依平
(衡陽(yáng)師范學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖南衡陽(yáng) 421000)
近年來(lái)隨著信息技術(shù)的快速發(fā)展,機(jī)動(dòng)車(chē)輛數(shù)量逐年增長(zhǎng),機(jī)動(dòng)車(chē)輛的交通事故和突發(fā)情況高頻發(fā)生,根據(jù)《中華人民共和國(guó)道路交通安全法》相關(guān)法律規(guī)定,車(chē)輛在發(fā)生故障或交通事故時(shí)應(yīng)在車(chē)后規(guī)定距離設(shè)置三角警示牌。傳統(tǒng)警示牌結(jié)構(gòu)簡(jiǎn)單、功能單一且市場(chǎng)管控不嚴(yán),這導(dǎo)致大量不合規(guī)范,設(shè)計(jì)錯(cuò)誤的警示牌的出現(xiàn)。這些警示牌在處理道路交通事故中帶來(lái)諸多不便,如在高速公路或快速公路上車(chē)輛發(fā)生事故時(shí)需要人為放置警示牌,因視線(xiàn)盲區(qū)或后方車(chē)輛駕駛員的不規(guī)范駕駛行為導(dǎo)致二次事故頻繁發(fā)生。
現(xiàn)針對(duì)傳統(tǒng)警示牌存在的弊端,本文設(shè)計(jì)了一種基于北斗導(dǎo)航的智能三角警示牌,該警示牌的底部增加智能履帶小車(chē)[1],用戶(hù)通過(guò)多途徑連接手機(jī)端App,使用App遠(yuǎn)程控制警示牌放至相應(yīng)位置,保障人員安全。同時(shí)使用紅外避障模塊,使得履帶車(chē)更平穩(wěn)可靠。小車(chē)安裝BD+GPS 雙定位[2],通過(guò)精確定位將數(shù)據(jù)返回至服務(wù)器,將事故發(fā)生點(diǎn)傳回給地圖用戶(hù),提醒后方行駛車(chē)輛注意避讓?zhuān)瑫r(shí)將事故車(chē)輛信息以及事故點(diǎn)數(shù)據(jù)迅速發(fā)送給交警以及保險(xiǎn)公司,通過(guò)短信提醒實(shí)現(xiàn)三方互連。普通警示牌的有效顯示距離為50~150米,可視距離短,可視效果差,智能警示牌增加LED燈串,即使在晚上或大霧天氣警示距離也能達(dá)到100~200 米。解決大霧、夜間或者特殊天氣導(dǎo)致反光效果差,車(chē)輛用戶(hù)辨識(shí)度低的問(wèn)題,可以有效警示后方車(chē)輛。
基于北斗導(dǎo)航的智能三角警示牌藍(lán)牙連接采用Arduino Uno單片機(jī)作為主控單元的智能小車(chē),智能小車(chē)安裝BDS+GPS[3],通過(guò)獲取智能三角警示牌的經(jīng)緯度數(shù)據(jù),通過(guò)物聯(lián)網(wǎng)卡,MQTT進(jìn)行數(shù)據(jù)的傳輸進(jìn)入服務(wù)器端,嵌入式端再通過(guò)云服務(wù)器獲取數(shù)據(jù)返回給Web端,地圖軟件Web 服務(wù)API 向開(kāi)發(fā)者提供HTTP接口,開(kāi)發(fā)者可通過(guò)這些接口使用各類(lèi)型的地理數(shù)據(jù)服務(wù),返回結(jié)果支持JSON和XML格式。
智能三角警示牌開(kāi)啟后,可由北斗衛(wèi)星導(dǎo)航系統(tǒng)在全球范圍內(nèi)實(shí)時(shí)為各類(lèi)用戶(hù)提供精確定位、導(dǎo)航、授時(shí)服務(wù)定位地圖的數(shù)據(jù),短信提醒用戶(hù)事故發(fā)生地,用戶(hù)靈活規(guī)劃路線(xiàn)或者規(guī)避路線(xiàn),為了防止放置警示牌時(shí)進(jìn)一步造成人員傷亡,使用App遠(yuǎn)程控制警示牌放至相應(yīng)位置,從而避免二次事故發(fā)生。
本文設(shè)計(jì)的智能三角警示牌主要有:藍(lán)牙連接控制、北斗+GPS雙定位、LED發(fā)光組、三端互連、三方提醒的智能性能。
本文提出的基于北斗導(dǎo)航的智能警示牌是利用stm32F103RE 芯片來(lái)統(tǒng)籌協(xié)調(diào)各個(gè)模塊,使用低功耗藍(lán)牙模塊和5G 通信技術(shù)實(shí)現(xiàn)對(duì)警示牌的無(wú)線(xiàn)控制,利用BC35模塊實(shí)現(xiàn)北斗+GPS雙精定位,通過(guò)為智能警示牌添加LED燈發(fā)光組更好地實(shí)現(xiàn)警示后方車(chē)輛。
1)三方提醒:地圖用戶(hù)通過(guò)接收短信提醒,選擇新的路線(xiàn)或者小心駕駛,注意安全。后臺(tái)定位系統(tǒng)通過(guò)北斗返回的數(shù)據(jù)將事故發(fā)生地展示在地圖上,以便進(jìn)行交通管理,統(tǒng)計(jì)事故發(fā)生地。提醒交警和救援人員,詢(xún)問(wèn)車(chē)主是否需要交警以及救援人員的幫助,快速處理交通事故、精準(zhǔn)救援。
2)多途徑推送告知:事件同時(shí)分發(fā),多途徑告知后方地圖用戶(hù)和交警及保險(xiǎn)公司。通知信息可在地圖、后臺(tái)管理系統(tǒng)等相關(guān)平臺(tái)進(jìn)行推送。
教師在APP上進(jìn)行課程內(nèi)容概要的總結(jié),并請(qǐng)學(xué)生掃二維碼開(kāi)展課程評(píng)價(jià)的調(diào)查問(wèn)卷填寫(xiě)。學(xué)生掃二維碼進(jìn)入問(wèn)卷星頁(yè)面,進(jìn)行課堂評(píng)價(jià)。通過(guò)學(xué)生評(píng)價(jià),知曉本課程的教學(xué)內(nèi)容是否完整、教學(xué)方法是否合理、教學(xué)重難點(diǎn)是否突出和教學(xué)效果是否理想等,以便日后加以改善與提高。
3)警示距離加長(zhǎng):通過(guò)給普通的警示牌增加LED燈串,解決大霧、夜間或者特殊天氣導(dǎo)致反光效果差,車(chē)輛用戶(hù)辨識(shí)度低的問(wèn)題。
4)BD高精定位自動(dòng)回傳:設(shè)備支起,自動(dòng)回傳位置信息至云端,北斗模塊定位鎖定事件出現(xiàn)位置。
5)遠(yuǎn)程控制警示牌,保障人員安全:在警示牌的底部增加智能履帶小車(chē),用戶(hù)通過(guò)多途徑連接手機(jī)端App,使用App遠(yuǎn)程控制警示牌放至相應(yīng)位置,保障人員安全。同時(shí)使用紅外避障模塊,使得履帶車(chē)更平穩(wěn)可靠。
嵌入式端程序分為環(huán)境數(shù)據(jù)采集、系統(tǒng)控制和網(wǎng)絡(luò)三個(gè)模塊,這三個(gè)模塊各自針對(duì)不同的功能封裝了一組函數(shù),使用這些函數(shù)可完成對(duì)經(jīng)緯度數(shù)據(jù)采集工作;完成使用藍(lán)牙對(duì)智能小車(chē)的控制[4];實(shí)現(xiàn)通過(guò)NBIOT模塊接入網(wǎng)絡(luò)功能。本文因篇幅關(guān)系將只針對(duì)幾個(gè)重點(diǎn)函數(shù)進(jìn)行介紹。其程序模塊圖嵌入式端程序模塊(如圖1所示)。
2.2.1 北斗+GPS模塊
主要用于小車(chē)精確定位,準(zhǔn)確傳回定位點(diǎn),加快救援工作與緊急避險(xiǎn)。模塊電路圖(如圖2所示)。
2.2.2 MQTT協(xié)議NBIOT模塊
NBIOT 通信模塊是一款使用NB-IoT 網(wǎng)絡(luò)進(jìn)行無(wú)線(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)那度胧浇K端[5]。NBIOT模塊用于無(wú)線(xiàn)連接云服務(wù)器,傳輸北斗數(shù)據(jù)。其廣覆蓋特點(diǎn)可以在快速及高速公路上連接5G信號(hào)。
通過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)模塊控制智能小車(chē)的運(yùn)動(dòng),準(zhǔn)確全面控制智能小車(chē)運(yùn)動(dòng)的方向。小車(chē)有5個(gè)運(yùn)動(dòng)方向,前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止,結(jié)合道路的路面狀況實(shí)時(shí)更新智能小車(chē)運(yùn)動(dòng)方向。
2.2.4 HC08藍(lán)牙模塊
HC-08 藍(lán)牙串口通信模塊主要用在用戶(hù)通過(guò)手機(jī)自帶的藍(lán)牙功能打開(kāi)軟件發(fā)送數(shù)據(jù),而智能小車(chē)上的藍(lán)牙模塊在接收到手機(jī)端發(fā)送的數(shù)據(jù)后,進(jìn)行判斷,從而控制智能小車(chē)的運(yùn)動(dòng)狀態(tài)[6]。
2.2.5 紅外避障傳感器
該模塊利用紅外射線(xiàn)檢測(cè)運(yùn)動(dòng)方向是否遇到障礙物,當(dāng)遇到障礙物時(shí)提前進(jìn)行躲避,保證小車(chē)平穩(wěn)移動(dòng)。
2.2.6 LED燈串
LED燈串采用了紅色燈珠,提高了小車(chē)在黑夜或者特殊天氣的可視范圍。主要用于發(fā)生車(chē)輛事故時(shí)警示后方車(chē)輛。
在本次設(shè)計(jì)中,主程序主要在單片機(jī)的控制下,通過(guò)藍(lán)牙連接,來(lái)控制小車(chē)的移動(dòng)[7]。在這個(gè)過(guò)程中小車(chē)所使用的HC08 藍(lán)牙模塊的初始值、各個(gè)變量的初始值以及藍(lán)牙模塊的UUID都需要都必須與主程序上的相互對(duì)應(yīng),單片機(jī)會(huì)在藍(lán)牙連接成功后,對(duì)從串口接受的數(shù)據(jù)進(jìn)行讀取和分析,讀到的數(shù)據(jù)如果是F、B、L、R、S 則對(duì)應(yīng)小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、暫停[8]。
本程序是基于Android 系統(tǒng),所用的開(kāi)發(fā)工具為Android Studio 集成開(kāi)發(fā)工具。首先設(shè)計(jì)本手機(jī)端軟件界面方面考慮到用戶(hù)體驗(yàn)感以及實(shí)用的便捷性,盡可能全面地實(shí)現(xiàn)程序功能,本程序?qū)浖缑嬖O(shè)計(jì)做了優(yōu)化界面設(shè)計(jì),但是界面又簡(jiǎn)潔易上手,有助于用戶(hù)快速操作上手。
3.2.1 手機(jī)界面程序設(shè)計(jì)
在Android Studio中新建一個(gè)空項(xiàng)目,然后通過(guò)創(chuàng)建Activity 活動(dòng),編寫(xiě).java 邏輯處理文件和.xml 樣式設(shè)置文件。設(shè)置采用Java語(yǔ)言為開(kāi)發(fā)語(yǔ)言,在安卓系統(tǒng)中生成可運(yùn)行的App,給用戶(hù)提供一個(gè)可視化并且界面簡(jiǎn)單,操作易上手的藍(lán)牙小車(chē)的控制界面。首先用戶(hù)登錄后需要進(jìn)行藍(lán)牙連接小車(chē),結(jié)合用戶(hù)的需求控制小車(chē),同時(shí)為用戶(hù)提供了系統(tǒng)咨詢(xún)。
3.2.2 手機(jī)監(jiān)聽(tīng)程序設(shè)計(jì)
首先小車(chē)的主控制界面控制移動(dòng)按鈕是BUTTON按鈕綁定監(jiān)聽(tīng)事件,以便實(shí)現(xiàn)在藍(lán)牙連接成功后可以通過(guò)用戶(hù)點(diǎn)擊不同的按鈕,通過(guò)廣播發(fā)送對(duì)應(yīng)移動(dòng)按鈕的字符給藍(lán)牙模塊,每一個(gè)按鈕都有一個(gè)ID屬性,在主函數(shù)處理中使用了switch 語(yǔ)句,通過(guò)不同的ID 選擇不同的case,選擇藍(lán)牙所要發(fā)送的字符,在程序中需要寫(xiě)入小車(chē)藍(lán)牙模塊的UUID,以便確保藍(lán)牙連接搜索時(shí)可以快速搜索到小車(chē)的藍(lán)牙地址。打開(kāi)程序后,再打開(kāi)小車(chē)的開(kāi)關(guān),打開(kāi)軟件點(diǎn)擊菜單欄點(diǎn)擊藍(lán)牙打開(kāi),自動(dòng)打開(kāi)手機(jī)藍(lán)牙,點(diǎn)擊掃描藍(lán)牙,找到小車(chē)藍(lán)牙地址點(diǎn)擊連接,連接成功會(huì)彈出吐司彈框告訴用戶(hù)藍(lán)牙連接成功,可以遙控小車(chē)移動(dòng)。其次有一個(gè)系統(tǒng)資訊按鈕也綁定了監(jiān)聽(tīng)事件,點(diǎn)擊后跳轉(zhuǎn)到另外一個(gè)Activity,資訊的主頁(yè),再通過(guò)不同的IMAGEBUTTON空間來(lái)跳轉(zhuǎn)資訊詳情頁(yè)。
主要使用多個(gè)藍(lán)色點(diǎn)模擬正常車(chē)輛,利用函數(shù)判斷模擬的車(chē)輛是否在事故發(fā)生點(diǎn)的危險(xiǎn)范圍內(nèi),如若接近,則再次使用短信接口將前方發(fā)生危險(xiǎn),注意規(guī)避的提醒消息發(fā)送給正在行駛過(guò)程的中的用戶(hù),規(guī)避二次事故的發(fā)生。
本軟件Web 網(wǎng)頁(yè)端主要是北斗返回?cái)?shù)據(jù)給服務(wù)器再通過(guò)地圖JS API搭建地圖平臺(tái),接著獲取到與硬件相連的One Net 平臺(tái)的API-KEY,用C#網(wǎng)絡(luò)爬蟲(chóng)和正則表達(dá)式提取到事故發(fā)生點(diǎn)的經(jīng)緯度,通過(guò)ASP.NET Core MVC 架構(gòu)將經(jīng)緯度返回到地圖上,采用紅色點(diǎn)進(jìn)行標(biāo)記(如圖3 所示),使用圓圈動(dòng)畫(huà)將事故發(fā)生點(diǎn)顯著標(biāo)記,再使用短信接口將救援信息發(fā)送給用戶(hù),方便用戶(hù)聯(lián)系到警務(wù),救援。

圖3 地圖標(biāo)點(diǎn)
Web 服務(wù)主要由Controller、Views、Models 三個(gè)文件夾構(gòu)成,Controller文件夾包含了頁(yè)面請(qǐng)求,WebAPI接口功能,Views文件夾包含了前端頁(yè)面的搭建顯示,Models 包含了請(qǐng)求模型[9]。故障車(chē)輛的位置通過(guò)與ONENET 平臺(tái)的連接來(lái)返回?cái)?shù)據(jù)。對(duì)故障車(chē)輛以及提醒短信的發(fā)送通過(guò)調(diào)用阿里云短信發(fā)送接口來(lái)實(shí)現(xiàn)。
本文介紹了基于北斗導(dǎo)航的智能三角警示牌的具體設(shè)計(jì)與實(shí)施方案。基于北斗導(dǎo)航的智能三角牌集成高精度定位服務(wù),在汽車(chē)遇到拋錨、追尾等事故時(shí),它能夠精準(zhǔn)定位事故發(fā)生地并同步至地圖App提醒周邊車(chē)輛注意避讓?zhuān)€能協(xié)助車(chē)主聯(lián)系交警、保險(xiǎn)公司和救援單位等,能夠幫助車(chē)主更高效、安全地處理行車(chē)時(shí)遇到的突發(fā)事件。