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