穆向陽,周思迪,張嘉偉,劉浩,王博通,李磊
(1.西安石油大學大學電子工程學院學院,西安710065;2.西安石油大學大學,陜西省油氣井測控技術重點實驗室,西安710065)
汽車作為日常生活出行的重要交通工具,與車內(nèi)人員的安全緊密聯(lián)系在一起,當有人員發(fā)生交通事故(尤其是在郊外)無法自救以及被困或長時間滯留車內(nèi),在無代理人施救以及車內(nèi)環(huán)境(尤其是溫濕度)超過人體承受范圍的情況下,容易因未能及時施救而造成危及生命安全的嚴重后果。尤其是對行動不便、缺乏基本判別能力的弱勢群體,對于他們,更需要采取周到的監(jiān)測與救援保護措施。
由劉元提出的通過無線蜂窩網(wǎng)絡GSM與GPS對車輛進行定位與報警[1],解決了對車輛進行定位的問題,但其報警的通道僅僅是發(fā)送短信,并未真正意義上達到“物”連“網(wǎng)”,且形式很單一。凱迪拉克推出的SRX系列,其前排車頂后視鏡后方帶有乘客偵測功能,當該功能啟動時,如果車主關閉門窗離開,而此時車內(nèi)仍留有可移動的物體(例如小孩),車輛便會發(fā)出鳴笛和亮燈警告,提醒車主注意[2]。但這種報警方式比較傳統(tǒng),在車內(nèi)小孩睡著情況下,并不會觸發(fā)報警,即使最后小孩醒了也被偵測到了,而此時車主已不在車附近,根本聽不到報警,車外人員即使聽到報警也無法聯(lián)系車主,所以施救就相當困難。
針對于此,本設計是一款集報警救援于一體的車載裝置,并與物聯(lián)網(wǎng)、手機移動端實現(xiàn)互聯(lián),以Wi-Fi控制模塊作為裝置的數(shù)據(jù)傳輸模塊與單片機相連,使用開源硬件Arduino單片機作為控制器,并使用中國移動公司旗下的OneNet作為物聯(lián)網(wǎng)平臺來實現(xiàn)數(shù)據(jù)與手機移動端二者共享,以GPRS模塊作為手機通信模塊。
本文設計了一種基于物聯(lián)網(wǎng)的車輛監(jiān)控系統(tǒng)。設計分為以下幾個部分:
(1)車載終端(下位機)。車載終端設備包括:微處理器(MCU)、熱釋電紅外和溫濕度傳感器、GPS、GPRS模塊等。主要有定位、通信等功能。
(2)無線數(shù)據(jù)上傳。無線數(shù)據(jù)通信作為控制中心與各監(jiān)測模塊進行信息交換的樞紐,在本次設計中選用GPRS無線數(shù)據(jù)網(wǎng)通信系統(tǒng)。
(3)監(jiān)控中心(上位機)。監(jiān)控中心采用一臺普通的計算機或者手機。本次設計采用OneNet平臺作為監(jiān)控中心平臺,計算機或手機App(設備云),采用這些模塊的好處是可以利用其上網(wǎng)功能,在平臺界面上可以進行簡單的信息查詢并帶有地圖的操作界面,可顯示車輛實時位置,包括經(jīng)緯度等。最終實現(xiàn)上下位機之間的通訊。監(jiān)控系統(tǒng)示意圖如圖1所示。
圖1 監(jiān)控系統(tǒng)示意圖
本研究硬件部分主要包括:本地監(jiān)測單元、SIM900A通信模塊、Arduino UNO主控器、報警單元。預設傳感器報警條件(超過設定閾值)和碰撞條件(模擬開關打開),且和GPS通過數(shù)字串口連接來實現(xiàn)主控器與其之間的數(shù)據(jù)傳輸;SIM900A和手機端分別通過HTTP(POST)協(xié)議和HTTP(GET)協(xié)議與OneNet云實現(xiàn)數(shù)據(jù)透傳和獲取;一旦系統(tǒng)確認發(fā)生碰撞或有人滯留車內(nèi),就會觸發(fā)GPRS模塊向家人手機發(fā)送求救電話/信息以及本地聲光報警,從而告知家人和周邊人員前去救援,最終實現(xiàn)多層次的報警救援。硬件系統(tǒng)結構如圖2所示。
圖2 系統(tǒng)硬件結構
本研究監(jiān)測單元由DHT11溫濕度及HC-SR501紅外熱釋電傳感器組成。DHT11溫濕度傳感器具有體積小、功耗低,信號傳輸距離遠(可達20米以上)等優(yōu)點[3],它是一款含有已校準數(shù)字信號輸出的單線制串行接口復合傳感器。將DHT11溫濕度傳感器與一個高性能8位單片機相連接,在濕度校驗室中進行精確校準,可以有效地監(jiān)測車內(nèi)高溫或低溫環(huán)境因素,具有品質(zhì)卓越、超快響應、抗干擾能力強等優(yōu)點。
2號引腳用于微處理器與DHT11之間的通訊和同步,通信一次時間4ms左右,由MCU發(fā)送一次開始信號后,DHT11接收到開始信號并發(fā)送響應信號,送出數(shù)據(jù)并觸發(fā)一次信號采集,如果沒有接收到主機的開始信號,DHT11不進行濕溫度采集。
圖4為熱釋電傳感器的內(nèi)部結構,由濾光片、熱釋電探測元和前置放大器組成,HC-SR501的原理圖如圖3所示,由LHI778采集紅外信號,OP1將信號放大,再由C3耦合至運放OP2進行第二級放大,將輸出信號V2由COP1和COP2構成的雙向鑒幅器處理,檢出有效觸發(fā)信號Vs去啟動延遲時間定時器,最終得到輸出信號Vo。
輸出延遲時間Tx為:
Tx≈24×103VR9C6
觸發(fā)封鎖時間Ti為:
Ti≈40×R10C7
由于默認靈敏度達7m,與實際設計不符,故調(diào)節(jié)VR6改變第二級運放的放大倍數(shù)來調(diào)整傳感器的靈敏度。調(diào)節(jié)VR9改變延遲輸出時間,通過多次測試,當A=2.5時,檢測靈敏度最低,約為3m,且延遲時間為5s時可將傳感器調(diào)整達到最佳符合狀態(tài)。
圖3 HC-SR501原理圖
GPRS通信模塊在車載監(jiān)測救援系統(tǒng)中的主要作用是與監(jiān)控中心進行通訊。本研究采用U-BLOX NEO-6M模組,通過MCU把車輛相關數(shù)據(jù)發(fā)送給GPRS通信模塊,通過無線通信方式將定位信息發(fā)往監(jiān)控中心,監(jiān)控中心可以準確地對目標車輛進行跟蹤和監(jiān)控。
GPS定位基本原理如圖5,根據(jù)高空衛(wèi)星的瞬間位置作為起算數(shù)據(jù),通過在地面安置GPS接收器,計算從某一t時刻開始,GPS信號從衛(wèi)星到達接收器的時間Δt(i=1,2,3,4)確定以下四個方程式:
圖4 GPS定位基本原理圖
其中,x、y、z和Vt0為未知參數(shù),di=cΔti(i=1,2,3,4),di(i=1,2,3,4)表示衛(wèi)星到地面接收器的距離;c為GPS信號的傳播速度(即光速);Vti(i=1,2,3,4)分別為衛(wèi)星1~衛(wèi)星4的衛(wèi)星鐘的鐘差,(衛(wèi)星星歷提供);Vt0為接收機的鐘差。由以上四個方程即可解算出待測點的坐標x、y、z和接收機的鐘差Vt0。
SIM900A與U-BLOX系列GPS配套工作,實現(xiàn)室內(nèi)百度APIIP定位與室外GPS定位雙定位模式與短信電話報警功能,保證系統(tǒng)高可靠性。SIM900A與UBLOX GPS統(tǒng)一使用TTL電平的串行協(xié)議與MCU之間進行數(shù)據(jù)通信傳輸。Arduino UNO實時接收通信模塊傳回的定位信息,并打包存儲,在安全氣囊或者監(jiān)測到車內(nèi)有人滯留的情況下,通過AT指令集控制SIM900A模塊,以短信模式加載GPS信息并撥打報警短信電話到家人手機上,同時LED燈與有源蜂鳴器實現(xiàn)系統(tǒng)及時提醒使用者的預防性與引起周圍群眾注意的警示性,保證報警的可靠性、信息的準確性。
系統(tǒng)主程序設計流程圖如圖5所示。程序運行開始,進行波特率、Arduino I/O端口及GPRS的初始化??紤]到定位信息的重要性,故首先對讀取GPS幀數(shù)據(jù)進行循環(huán)判斷,當成功定位后(非INVALID),對經(jīng)緯度數(shù)據(jù)進行解析;再執(zhí)行獲取溫濕度和熱釋電數(shù)據(jù)等其他數(shù)字口數(shù)據(jù)信息;之后GPRS模塊連接OneNet平臺,完成數(shù)據(jù)上傳;當熱釋電傳感器檢測到車內(nèi)有人,立即退出檢測循環(huán)并執(zhí)行聲光報警和短信電話提示;同樣,當車輛的安全氣囊模擬開關打開后同樣會觸發(fā)電話短息報警。最終完成系統(tǒng)的自動監(jiān)測報警求助。由于本次設計的關鍵在于GPS與GPRS能否及時響應觸發(fā)事件,功能分析如圖5所示。
圖5 系統(tǒng)主程序設計流程圖
通過NMEA-0183協(xié)議獲取需要的幀數(shù)據(jù)GPRMC,并從中將經(jīng)緯度信息解析出來。其主要程序流程如圖6所示,在對GPS初始化后首先對其進行數(shù)據(jù)有效性的判斷,當確定數(shù)據(jù)為有效后需要對獲取的信息進行GPMRC幀數(shù)據(jù)判斷和解析,由于GPMRC句型基本格式為:$GPRMC(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF),其中需要獲取的經(jīng)緯度信息為(3)~(6),通過采用函數(shù)strstr(),memcpy()來從該語句中提取兩個逗號地址間的數(shù)據(jù)信息,并將相應數(shù)據(jù)存放于Save_Data結構體下[4]。
將獲取的經(jīng)緯度及傳感器數(shù)據(jù)通過通信模塊上傳至OneNet物聯(lián)網(wǎng)平臺,等待報警處理。
圖6 GPS幀數(shù)據(jù)解析流程圖
完成數(shù)據(jù)采集、處理后,通過平臺支持的HTTP協(xié)議進行車載裝置與平臺的連接將數(shù)據(jù)以POST(透傳)的方式發(fā)送到OneNet云服務端,根據(jù)JSON格式,在建立通信后,上下位機通過數(shù)據(jù)流(stream)的方式進行通信[5],將車內(nèi)采集到的GPS參數(shù)及溫濕度參數(shù)分為三條數(shù)據(jù)流(streams)與三個數(shù)據(jù)點(datapoints),并在子函數(shù)中將輸入的參數(shù)封裝成JSON格式。
其中,sensor_id_temp為數(shù)據(jù)流名稱(溫濕度、經(jīng)緯度),value_str為實測數(shù)據(jù)。并準備HTTP報頭,完成主體發(fā)送,部分程序如下:
strcat(send_buf,"POST/devices/");
strcat(send_buf,device_id_temp);
strcat(send_buf,"/datapoints HTTP/1.1 ");
strcat(send_buf,"api-key:");
strcat(send_buf,API_VALUE_temp);
strcat(send_buf," ");
strcat(send_buf,"Host:");
strcat(send_buf,OneNetServer);
strcat(send_buf," ");
sprintf(tmp,"Content-Length:%d ",strlen(text));//計算JSON串長度
然后在上述基礎上構建完成JSON格式的數(shù)據(jù)流和HTTP報頭,利用終端設備與PC應用之間的連接與通信的AT指令:CIPSTART、CIPSEND、CIPCLOSE、CIPSHUT,實現(xiàn)與平臺服務器的連接與數(shù)據(jù)發(fā)送。本次設計中所用到的關于SIM900A模塊的AT命令如下面的代碼所示。每條AT命令執(zhí)行后都要有相應的狀態(tài)返回。
經(jīng)調(diào)試,成功實現(xiàn)網(wǎng)絡附著、與服務器平臺的連接及數(shù)據(jù)發(fā)送,同樣利用AT指令集實現(xiàn)報警短信發(fā)送及電話撥打,考慮到短信內(nèi)容為中英文且字符數(shù)多,因此采用短信的PDU模式,實現(xiàn)的關鍵步驟如下:
Serial.println("AT+CMGF=0");//PDU模式
Serial.println("AT+CMGS=34");//PDU模式下短信內(nèi)容字符數(shù)
Serial.print("0891***FF01");//第一條短信內(nèi)容為車內(nèi)有人,請求救援!
Serial.write(0x1A);//將短信發(fā)送出去
Serial.println("ATD137***9535;");//電話撥打
完成了系統(tǒng)軟硬件的搭建后,對系統(tǒng)進行調(diào)試,設置好家人手機號碼并在SIM900A卡槽插入SIM卡,讓測試者使用車載裝置進行了功能測試。當將測試者被鎖在車內(nèi),經(jīng)熱釋電傳感器檢測后,首先會觸發(fā)蜂鳴器和LED燈發(fā)出10次的聲光報警,隨后設定的家人手機會收到發(fā)出的帶有OneNet的URL鏈接報警短信和求救電話;當打開安全氣囊的模擬開關后,同樣會收到求救電話和短信;如圖7-9所示,在收到報警短信后,打開地址鏈接進入OneNet的頁面可以直接在百度地圖上查看測試者的位置、時間及車內(nèi)環(huán)境數(shù)據(jù)[6],此時,家人可根據(jù)這些信息及時選擇合適的營救措施,及時地避免了不必要的人員和財產(chǎn)損失。
圖7 發(fā)生滯留與碰撞短信
圖8 報警電話
圖9 OneNet云端 手機頁面
基于車載監(jiān)測報警救援的客觀需求以及結合物聯(lián)網(wǎng)技術,系統(tǒng)通過車載裝置、OneNet云平臺和移動端相結合實現(xiàn)了多層次的監(jiān)測報警救援,針對車主的安全保護采取多重監(jiān)測措施,同時避免了對車體的影響,提高了監(jiān)測報警的針對性,克服了傳統(tǒng)車載報警裝置單一的局限性。實驗證明,系統(tǒng)可實現(xiàn)車輛精確定位、對人員滯留及車輛碰撞情況自動報警、救援通信等功能,該設計成本不高,性能較好,符合現(xiàn)實需求,可為汽車用戶提供安全出行保障,具有較高的市場價值。