劉遠仲,張海波,楊 嘉,唐天國,譚鶴毅,張 強
(1.南充電子信息產(chǎn)業(yè)技術(shù)研究院,四川南充637000;2.南充職業(yè)技術(shù)學(xué)院電子信息工程系,四川南充637000)
我國汽車行業(yè)已經(jīng)進入了一個快速發(fā)展時期,據(jù)相關(guān)數(shù)據(jù)統(tǒng)計,全國汽車保有量已達2.5 億輛,因此,在一個如此巨大的車輛使用規(guī)模中如何保證車輛駕駛?cè)藛T和乘坐人員在車內(nèi)的安全顯得越來越重要.生活中因種種原因滯留在車內(nèi)的人員由于車內(nèi)環(huán)境的變化而引發(fā)的安全問題也越來越多,特別是夏天小孩或老人滯留在車內(nèi)時,由于駕駛?cè)藛T大意關(guān)閉了車窗,使得車內(nèi)環(huán)境溫度升高、氧氣不足以及濕度上升,處于這種環(huán)境較長時間將可能造成缺氧、受熱、脫水等嚴重的生理問題,一些身體抵抗力弱、行動不便和有認知障礙的人員更容易引發(fā)生命安全問題[1].因此,建立一個監(jiān)測車內(nèi)環(huán)境安全的系統(tǒng)具有重要的生命安全工程意義.
二十世紀九十年代,車輛內(nèi)部環(huán)境的安全問題就已受到一些車輛制造商的重視,并開始在一些中高端車型安裝車內(nèi)環(huán)境安全檢測報警系統(tǒng).2003年,凱迪拉克公司在生產(chǎn)的轎車內(nèi)安裝了移動物體檢測器,當車輛停車關(guān)閉車窗后,系統(tǒng)如果發(fā)現(xiàn)有可移動物體滯留車內(nèi)時便會通過車身閃燈和發(fā)聲系統(tǒng)發(fā)聲提示,但這種報警系統(tǒng)存在報警形式單一的局限,當有人注意到報警存在危險時,很可能無法及時聯(lián)系到車主進行援救.有報道[2]提及給車輛加裝主動施救系統(tǒng),在車輛出現(xiàn)安全問題時系統(tǒng)會發(fā)出指令讓控制系統(tǒng)動作,例如檢測到車內(nèi)環(huán)境溫度過高則打開車內(nèi)空調(diào)通風(fēng)或打開天窗散熱,緊急危險情況時觸發(fā)車窗升降系統(tǒng)降下車窗施救.但這類方法還是存在不足,因為車輛工作是很多系統(tǒng)的配合,施救系統(tǒng)工作時需與其他控制系統(tǒng)相連接,其連接的許多控制系統(tǒng)都是來源于車輛本身,需要對車輛的電路控制系統(tǒng)進行改裝,如果改裝操作不當,一會影響其它控制系統(tǒng)的正常工作,二會給車輛安全行駛帶來隱患.另外,當檢測系統(tǒng)錯誤地檢測到危險而打開車窗可能使車內(nèi)物品丟失、財物被盜,若有小孩在車內(nèi)導(dǎo)致小孩被抱走,后果就更加嚴重,所以這種施救系統(tǒng)也難以得到廣泛應(yīng)用.
車載物聯(lián)網(wǎng)多層次車輛內(nèi)部環(huán)境監(jiān)測報警系統(tǒng)不但可以檢測車輛內(nèi)部環(huán)境,也可以檢測車輛外部環(huán)境,既克服了車輛報警形式單一問題,也解決了汽車改裝帶來更大的危險問題,在下一代汽車監(jiān)測報警領(lǐng)域有強大的生命力.因此,本文開展了基于車載物聯(lián)網(wǎng)的多層次車輛內(nèi)部環(huán)境監(jiān)測報警系統(tǒng)設(shè)計,并聯(lián)機測試,驗證設(shè)計的實際使用效果.
系統(tǒng)設(shè)計框架采用的模塊主要由四部分組成,分別為車載傳感模塊、移動OneNET 云平臺、互聯(lián)網(wǎng)網(wǎng)絡(luò)服務(wù)器(WebServer)、控制終端(移動終端).設(shè)計框架如圖1所示.
車載傳感模塊是實現(xiàn)車載物聯(lián)網(wǎng)中的基礎(chǔ)模塊,有三項功能:一是提供各類傳感器的采集數(shù)據(jù),主要檢測車輛內(nèi)部環(huán)境的溫度、濕度、含氧量等車內(nèi)環(huán)境指標;二是提供GPS 車輛定位和車內(nèi)環(huán)境監(jiān)控攝像,方便監(jiān)控車內(nèi)危險情況并快速找到危險車輛;三是作為數(shù)據(jù)與信號的傳輸源,提供各類數(shù)據(jù)的無線發(fā)射與傳輸,當危險產(chǎn)生時發(fā)出報警信號.OneNET 云平臺模塊提供無線數(shù)據(jù)的存儲與中轉(zhuǎn),是各類數(shù)據(jù)有效送達的重要紐帶,一方面通過API接口將數(shù)據(jù)送到WebServer 進行存儲,另一方面通過無線網(wǎng)絡(luò)實現(xiàn)與移動控制終端進行無線通信數(shù)據(jù)交互.WebServer 服務(wù)器模塊是數(shù)據(jù)存儲的重要配置,同時為報警裝置提供個性化報警數(shù)據(jù)服務(wù).移動控制終端是監(jiān)測報警系統(tǒng)獲取危險信息后信號傳輸?shù)淖罱K控制設(shè)備,一方面與OneNET 云平臺通信,另一方面通過與WebServer 服務(wù)器模塊嵌入個性化應(yīng)用,提供多種監(jiān)控方式,例如可通過平板或手機進行車輛內(nèi)部環(huán)境監(jiān)控等.
圖1 車輛內(nèi)部環(huán)境監(jiān)測設(shè)計示意圖
有很多評價方法可評判一個系統(tǒng)設(shè)計的好壞,本文使用AHP 層次分析法對系統(tǒng)進行建模和評判,為了使系統(tǒng)的設(shè)計最優(yōu),需對各項指標進行綜合考慮.
設(shè)系統(tǒng)選取的最優(yōu)方案用G 表示,評價指標為Si,系統(tǒng)擴展能力為S1,價格指標為S2,系統(tǒng)對數(shù)據(jù)的管理能力為S3;設(shè)選取的備用方案用Pi表示,那么設(shè)傳統(tǒng)車輛的報警裝置方案性能為P1,包含了傳統(tǒng)報警后裝置并使用第三方網(wǎng)絡(luò)平臺的為P2,含有傳統(tǒng)報警裝置又具有自主搭建報警平臺能力的為P3.根據(jù)Saaty 等人提出一致矩陣法,不把所有因素放在一起比較,而是兩兩相互比較并按其重要性程度評定等級,同等重要量化值為1,稍微重要量化值為2,較強重要量化值為5,強烈重要量化值為7,極端重要為9,兩相鄰判斷的中間值為2、4、6、8.設(shè)計時由于需更多考慮系統(tǒng)的可擴展能力,對數(shù)據(jù)儲存可不作過多關(guān)注,故將評判矩陣設(shè)為A,表示為:
利用AHP 層次分析原理對(1)式矩陣的列進行歸一化,并對行進行均值處理,可得權(quán)向量w:w=( 0.63 0.26 0.11)T,將A 與w 相 乘 可 得Aw=(1.96 0.8 0.32)T,又根據(jù)矩陣最大特征值計算方法可求得(1)式最大特征值為:
為了使系統(tǒng)各層次指標保持一致,減少計算量,暫將評判指標設(shè)為3 個,根據(jù)矩陣一致性指標( )
CI的計算方法可得:
由AHP 層次分析法的一致性比率計算原理,設(shè)計系統(tǒng)各層次一致度滿足可變設(shè)計范圍,即CR=則構(gòu)建出的三個監(jiān)測層次的評判矩陣可用Ai( i=1,2,3 )表示:
同理,根據(jù)AHP 層次分析計算原理可計算出以上三個矩陣的權(quán)值矩陣為:
則總的評判層次權(quán)矩陣為:W =wthree×w=(0.22 0.42 0.36)T,通過對總的權(quán)值矩陣觀察可看出方案2 的權(quán)值最大,由此可知以上3 個方案中,P2方案即使用“傳統(tǒng)報警裝置后+第三方平臺”方案最佳,第3 個方案即“傳統(tǒng)報警+自搭建報警平臺”次之,第1個方案即“傳統(tǒng)報警平臺”最差.
考慮到實用性、有效性和可擴展性,將得到的最優(yōu)方案2組建的多層次報警結(jié)構(gòu)如圖2所示.
圖2 車輛內(nèi)部環(huán)境監(jiān)測多層次檢測報警設(shè)計結(jié)構(gòu)圖
組建時將第一層次結(jié)構(gòu)設(shè)為普通層,當車輛內(nèi)部環(huán)境發(fā)生危險情況時,通過危險報警燈閃爍或LCD 顯示模塊或蜂鳴器提示車輛人;第二層次為利用了第三方監(jiān)測平臺層(OneNET 云平臺),使用API 接口,當發(fā)生危險后進一步通過個性化的應(yīng)用或數(shù)據(jù)管理等方式提供檢測報警服務(wù),即使用戶量加也因有數(shù)據(jù)庫存在可方便地進行系統(tǒng)擴展;第三層次為移動終端監(jiān)測查詢層,車輛有了危險一方面現(xiàn)場報警,另一方面通過移動無線通信網(wǎng)絡(luò)將數(shù)據(jù)傳遞到車主的移動端顯示車輛情況,本文使用App、嵌入式等開發(fā)方式實現(xiàn)報警提醒.通過對車輛內(nèi)部環(huán)境進行三層次報警設(shè)計,滿足了AHP 多層次報警設(shè)計需求.
由于系統(tǒng)既包含了傳統(tǒng)報警裝置,又要利用第三方協(xié)助報警,所以在硬件方面考慮的主要硬件模塊有:
(1)硬件開發(fā)芯片:Arduino Uno R3.
(2)車輛硬件傳感器件:溫濕度采集DHT11;氣體檢測Grove?Gas Sensor (O2);人體監(jiān)測HCSR501;傳感器擴展板功能拓展Base Shield V2 Grove.
(3)車輛環(huán)境監(jiān)測顯示、數(shù)據(jù)通信模塊:LCD1602、PCF8574IIC/I2C 數(shù)據(jù)傳輸模塊、LED、SIM900A卡等.
程序上電后首先對各種傳感器與數(shù)據(jù)采集系統(tǒng)進行初始化設(shè)置,需要初始化的車載裝置有:
①主控開發(fā)芯片Arduino I/O 口設(shè)置,為數(shù)據(jù)通信做好準備;
②熱釋電紅外傳感器HC-SR501 設(shè)置,監(jiān)測車內(nèi)人員情況,如果有人的情況下用高電平“1”指示;
③車輛內(nèi)環(huán)境的溫度采集、濕度采集、氣體濃度采集等設(shè)置,監(jiān)測車內(nèi)環(huán)境是否滿足安全閾值設(shè)置需要,如果超出閾值則通過聲光方式報警;
④顯示模塊LCD1602 與數(shù)據(jù)通信(GPRS)設(shè)置,通過LCD 顯示車輛狀態(tài),采用GPRS 通信時需對一些通信協(xié)議棧和通信參數(shù)約定,保證數(shù)據(jù)傳輸通暢,功能穩(wěn)定可靠施行.
系統(tǒng)數(shù)據(jù)初始化完畢后,需要建立車在裝置與云平臺間的數(shù)據(jù)通信[12],根據(jù)功能平臺使用的Rest?Ful API接口方式,選擇http的POST 通信方式;又由于平臺使用嵌入式App 終端監(jiān)控方式,根據(jù)JavaS?cript語法子集的開放標準數(shù)據(jù)交換格式,選用JSON建立溫度監(jiān)測、濕度監(jiān)測、含氧量監(jiān)測等車輛內(nèi)部環(huán)境參數(shù)監(jiān)測通信協(xié)議格式.在構(gòu)建子函數(shù)調(diào)用時,將數(shù)據(jù)格式統(tǒng)一采用JSON 格式完成數(shù)據(jù)上下傳輸,格式標準為:
其中:data_name 表示監(jiān)測參數(shù)的名字(例如是某個溫濕度傳感器在采集數(shù)據(jù)某個氣體傳感器采集數(shù)據(jù)等),data_value表示傳感器具體得到的實測值.
然后編寫POST 報文向指定的資源提交需被處理的數(shù)據(jù),實現(xiàn)發(fā)送主體數(shù)據(jù)上傳,重點部分代碼如下:
構(gòu)建好JSON 數(shù)據(jù)通信格式并完成POST 報文后,移動終端與PC機之間進行通信連接,即是將AT指令中的CIPSTART、CIPSEND、CIPCLOSE 與主體裝置的控制指令共同向上位機傳遞子函數(shù).通過對系統(tǒng)的調(diào)試與指令編譯,完成GPRS 無線通信網(wǎng)絡(luò)建立、與功能平臺控制和數(shù)據(jù)上傳通信的設(shè)計.
3.3.1 應(yīng)用層平臺數(shù)據(jù)通信
在應(yīng)用層通信方面,由于使用移動端從車輛獲取各種傳感器數(shù)據(jù),為了實現(xiàn)移動端對車輛的各裝置進行監(jiān)測和數(shù)據(jù)查詢,建立網(wǎng)絡(luò)通信協(xié)議對功能控制平臺上傳的數(shù)據(jù)信息進行獲取.前面的功能平臺使用的是http 的POST 通信,這里使用http 的GET 通信格式,以便獲取JSON 數(shù)據(jù)格式中的各種參數(shù),根據(jù)ASP.NET 編程理論,組建URL 請求指令代碼,以完成平臺間網(wǎng)絡(luò)通信.代碼格式如下:
數(shù)據(jù)傳輸時,為了獲取車輛內(nèi)部環(huán)境各傳感參數(shù),調(diào)用了Togetvalue 的子函數(shù).在輸出代碼output中,變量來自JSON 上傳到服務(wù)器的數(shù)據(jù)返回值,由于返回值存在一些冗余和無用信息,將JSON 格式的對象定義成dat?ablock.分析數(shù)據(jù)可發(fā)現(xiàn),在第一層的通信數(shù)據(jù)“data”代碼里包含了所需的參數(shù)流信息,但具體需要獲取的值在“data”層中數(shù)據(jù)內(nèi)層中,即第二層“current_value”中,這樣通過對數(shù)據(jù)的層層解析調(diào)用,即可得到車輛內(nèi)部環(huán)境具體傳感器的參數(shù)值如溫度、濕度和含氧量等參數(shù).通過對子函數(shù)的代碼完善編寫,當使用App 監(jiān)測各參數(shù)時就可直接調(diào)用各個子線程的Togetvalue 函數(shù)并及時更新移動端收集到的數(shù)據(jù),完成應(yīng)用端的數(shù)據(jù)參數(shù)獲取功能.
3.3.2 App應(yīng)用控制端框架設(shè)計
設(shè)計App 控制界面時,采用人們易于接受并常使用的傳統(tǒng)聊天軟件布局形式,即底部為導(dǎo)航窗格,上部為對應(yīng)的顯示控制信息.導(dǎo)航窗格主要菜單由“數(shù)據(jù)參數(shù)”“詳情展示”“個人相關(guān)”組成,“數(shù)據(jù)參數(shù)”方便車主查詢車輛內(nèi)的溫度、濕度、含氧量等相關(guān)參數(shù)信息,“詳情展示”為對應(yīng)傳感器數(shù)據(jù)顯示詳情,采用二維圖形界面顯示方式實時提供數(shù)據(jù)監(jiān)測,“個人相關(guān)”提供了一些與自己相關(guān)信息和自己的個習(xí)慣偏好記錄.
底部導(dǎo)航窗格菜單用Fragment 函數(shù)完成,在編寫App 主控界面布局時,上層代碼分別使用Frame?Layout 和LinearLayout 函數(shù)組建菜單布局,在Linear?Layout 下層使用了三個RelativeLayout 構(gòu)建相關(guān)組件,再在RelativeLayout 下層函數(shù)里繼續(xù)布置一個LinearLayout,在里面嵌入ImageView 和TextView 函數(shù)完成數(shù)據(jù)的細化顯示.
三個主菜單的Fragment 函數(shù)文件的編寫,根據(jù)導(dǎo)航窗格各個菜單的相關(guān)功能需要,在數(shù)據(jù)參數(shù)菜單Fragment 函數(shù)加上LinearLayout,里層安排對應(yīng)的TextView 函數(shù)展示獲取到的相關(guān)溫度、濕度、含氧量等傳感器數(shù)據(jù),為了可以實時監(jiān)測數(shù)據(jù)信息,再安排一個Button 函數(shù)及時更新數(shù)據(jù).在詳情展示功能菜單編寫Fragment 函數(shù)時需使用前面的Webview功能,下層同樣采用LinearLayout,并在LinearLayout的下層嵌入WebView和Button控件.
App 的Java 類的編寫,首先是Fragment 的實現(xiàn)類,該類主要包含了數(shù)據(jù)菜單和詳情菜單的數(shù)據(jù)信息以及Webview 圖表查看功能,程序代碼實現(xiàn)流程如圖3所示.
圖3 App框架布局實現(xiàn)代碼實現(xiàn)流程
實現(xiàn)思想為:首先使用Fragment 繼承Fragment重寫onCreateView(),接著使用View view = inflater.Inflate(R.layout.fg3, container, false);加載fg3(這里的fg3為相關(guān)欄布局函數(shù)).
完成重要子函數(shù)的代碼設(shè)計后,則是編寫MainActivity 主控代碼對整個系統(tǒng)的功能組建,編譯、調(diào)試程序后進行系統(tǒng)監(jiān)控功能運行測試.系統(tǒng)運行調(diào)試步驟可概述為:點擊導(dǎo)航窗格的功能菜單,則對應(yīng)顯示相關(guān)數(shù)據(jù)信息,當需要查看數(shù)據(jù)詳情時則點擊相應(yīng)的詳情顯示菜單顯示對應(yīng)的圖片與文字,系統(tǒng)可以對當前狀態(tài)和前一步狀態(tài)進行相應(yīng)的重置,圖片與文字也可以進行相應(yīng)轉(zhuǎn)換,當系統(tǒng)無差錯運行成功時則完成整個測試功能.
為了檢測系統(tǒng)的可靠性與穩(wěn)定性,需要對系統(tǒng)各功能模塊進行實際測試.首先進行系統(tǒng)網(wǎng)絡(luò)測試,當連網(wǎng)成功后,如果熱釋電紅外檢測到車輛有人或移動物體的存在,隨即展開各項傳感參數(shù)的測定,通過溫度傳感器監(jiān)測車輛內(nèi)的溫度,濕度傳感器檢測車輛內(nèi)的濕度,氣體傳感器檢測車輛內(nèi)的含氧量等,系統(tǒng)程序每執(zhí)行一次便發(fā)送一次數(shù)據(jù)到Web?Server,以供App 進行數(shù)據(jù)值回看復(fù)查,如果某項指標超過或低于設(shè)定參數(shù)的閾值,一方面通過LCD 顯示模塊報告當前車輛的顯示數(shù)據(jù)值,另一方面通過車輛聲光報警系統(tǒng)及時通知車主或車輛周圍人員施救.
車載平臺控制層收到數(shù)據(jù)后,當需要對返回的結(jié)果顯示時,便通過系統(tǒng)設(shè)定顯示方式進行參數(shù)顯示,顯示結(jié)果如圖4所示.
圖4 車載平臺顯示數(shù)據(jù)
由此可見,只要之前根據(jù)需要安裝了相應(yīng)傳感器,便可通過對應(yīng)的圖表顯示相應(yīng)數(shù)據(jù),如圖例顯示了車內(nèi)當前溫度為17 ℃、氧濃度為21.37%等,方便人們直觀地看到監(jiān)測結(jié)果,判斷車輛內(nèi)是否有不安全的危險因素存在.
檢測的數(shù)據(jù)還可通過無線通信方式經(jīng)OneNET云平臺提供數(shù)據(jù)到移動端App 進行遠程監(jiān)測,查詢數(shù)據(jù)顯示結(jié)果如圖5 所示.圖中主要觀察了車輛的溫度、濕度和含氧濃度,如果有指標超出了設(shè)定范圍,就可及時判斷車輛所處的不利環(huán)境,以進行危險消除.
圖5 App監(jiān)測數(shù)據(jù)
本文設(shè)計的車輛監(jiān)測系統(tǒng)平臺融入了當前比較盛行的物聯(lián)網(wǎng)技術(shù),結(jié)合車載裝置、第三方OneNET云平和移動端App建立了多層次的車輛內(nèi)部環(huán)境監(jiān)測報警系統(tǒng),通過對車輛內(nèi)部環(huán)境的監(jiān)測監(jiān)測,能夠最大限度地提供車輛內(nèi)在有人員的情況下各項數(shù)據(jù)的準確檢測,使檢測的的數(shù)據(jù)更全面,克服了傳統(tǒng)車載報警的一些不足,保證了人員在車輛內(nèi)停留的安全.同時,該平臺還兼具擴展功能,可根據(jù)需要隨時增添監(jiān)測參數(shù),并通過WebServer 服務(wù)器專門管理數(shù)據(jù),提供一些更加具有針對性的個性化服務(wù).