李亞棟 ,李曉勤 ,李景耀 ,楊向奎
(塔里木大學(xué)機(jī)械與電氣化工程學(xué)院,新疆 阿拉爾 843300)
目前,已有的采棉機(jī)監(jiān)測(cè)系統(tǒng)大都是采用CAN總線的方式,選取故障率高的關(guān)鍵部件作為監(jiān)測(cè)點(diǎn)安裝合適的傳感器[1],在車(chē)載終端進(jìn)行監(jiān)測(cè)信息顯示。這些監(jiān)測(cè)系統(tǒng)大都缺乏遠(yuǎn)程端的視頻監(jiān)控,且有線的方式容易在采棉機(jī)作業(yè)的振動(dòng)中發(fā)生線路磨損,不能快速更換和自行添加傳感監(jiān)測(cè)模塊。因此,為實(shí)現(xiàn)可遠(yuǎn)程監(jiān)控、可重構(gòu)、低成本、模塊化的采棉機(jī)集群監(jiān)測(cè)系統(tǒng)[2],課題組擬研究開(kāi)發(fā)一套以ZigBee無(wú)線傳感器組網(wǎng)技術(shù)和Linux嵌入式技術(shù)相結(jié)合的信息化采棉機(jī)遠(yuǎn)程實(shí)時(shí)監(jiān)控系統(tǒng)。
該系統(tǒng)由三大部分組成,分別是ZigBee無(wú)線傳感器終端節(jié)點(diǎn)組成的網(wǎng)絡(luò)(WSN)、Linux嵌入式車(chē)載顯示終端、遠(yuǎn)程端訪問(wèn)設(shè)備。無(wú)線傳感器終端網(wǎng)絡(luò)定期采集采棉頭轉(zhuǎn)速與溫度信息、油箱液位信息、GPS定位信息、CO含量及火焰狀態(tài)信息進(jìn)行輪詢上報(bào);Linux嵌入式終端直接在本地顯示駕駛艙、采棉箱的兩路攝像頭畫(huà)面,并將協(xié)調(diào)器節(jié)點(diǎn)獲取的各終端上報(bào)信息在本地顯示與存儲(chǔ),在本地終端移植嵌入式Web服務(wù)器系統(tǒng)[3];遠(yuǎn)端用戶可通過(guò)網(wǎng)絡(luò)瀏覽器獲取到監(jiān)控畫(huà)面和監(jiān)測(cè)信息以實(shí)現(xiàn)對(duì)設(shè)備的管理和監(jiān)控。
系統(tǒng)監(jiān)測(cè)信息可分為三類(lèi):安全監(jiān)測(cè)、空間位置監(jiān)測(cè)、狀態(tài)監(jiān)測(cè)。
安全監(jiān)測(cè):收獲棉花時(shí)容易混入雜質(zhì),與采棉機(jī)摩擦發(fā)熱,導(dǎo)致采棉機(jī)發(fā)生火災(zāi)[4]。在采棉箱安裝監(jiān)控,放置CO與火焰探測(cè)傳感器,可在起火早期進(jìn)行識(shí)別報(bào)警,及時(shí)將棉箱棉花拋出,降低損失,保證采棉機(jī)和人員安全。
空間位置監(jiān)測(cè):監(jiān)測(cè)機(jī)械設(shè)備的地理位置和移動(dòng)軌跡。機(jī)采棉公司不但可以預(yù)防機(jī)械丟失,還可根據(jù)設(shè)備地理位置更好地進(jìn)行調(diào)度,方便集群管理。
狀態(tài)監(jiān)測(cè):狀態(tài)信息包括采棉頭關(guān)鍵部件溫度、轉(zhuǎn)速信息、油箱油位信息、駕駛艙實(shí)時(shí)監(jiān)控。監(jiān)測(cè)采棉頭轉(zhuǎn)速、溫度信息可以預(yù)防操作者暴力駕駛,監(jiān)測(cè)油位狀態(tài)預(yù)防盜油事件發(fā)生,而畫(huà)面監(jiān)控可以實(shí)時(shí)觀測(cè)駕駛員,監(jiān)督和規(guī)范駕駛員的操作行為。
終端模塊終端節(jié)點(diǎn)采用核心板加底板的方式。核心板主要包括Flash為256 KB的TI公司CC2530微處理器,其整合了高性能DSSS射頻收發(fā)器和增強(qiáng)型8051內(nèi)核、靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)和A/D轉(zhuǎn)換接口等外設(shè),且具有不同的運(yùn)行模式,模式之間的轉(zhuǎn)換時(shí)間短,芯片的休眠電流僅為1 μA[5],具備低成本、低功耗等特點(diǎn),并配置了32 MHz和32.768 KHz兩顆晶振,其中CC2530的天線設(shè)計(jì)采用2.4 G、2 DB全向天線。底板可以將核心板所有IO通過(guò)排針排母方式引出,配置了電源電路、傳感器接口電路、4顆LED燈與自定義按鍵,并內(nèi)置了CH340G USB轉(zhuǎn)串口芯片[6]。傳感器網(wǎng)絡(luò)由三個(gè)ZigBee終端節(jié)點(diǎn)(END)與一個(gè)協(xié)調(diào)器模塊(Coordinator)組成,分別為END1、END2、END3和Coordinator[7]。
監(jiān)測(cè)駕駛艙與采棉箱的攝像頭選用500 W像素、支持UVC協(xié)議的工業(yè)攝像頭,監(jiān)控環(huán)境距離近、角度廣,因此分別為駕駛艙、采棉箱攝像頭配置2.1 mm、2.8 mm工業(yè)魚(yú)眼全景鏡頭。
嵌入式終端選用訊為公司的i.MX8M工業(yè)開(kāi)發(fā)板外加10.1寸串口觸摸顯示屏,該開(kāi)發(fā)板基于NXP i.MX8M處理器設(shè)計(jì),采用先進(jìn)的14 LPC工藝,有更快的速度和更高的電源效率,四核ARM Cortex-A53,主頻最高1.3 GHz,板載2 GB DDR4,8 GB EMMC;接口配置豐富,有強(qiáng)大的視頻處理能力,支持多種編解碼,工作環(huán)境溫度為-20 ℃~80 ℃,滿足工業(yè)場(chǎng)景應(yīng)用要求。
遠(yuǎn)程端監(jiān)測(cè)設(shè)備是具備Ineternet瀏覽器訪問(wèn)功能的設(shè)備,如PC、智能手機(jī)。
ZigBee協(xié)議棧支持組建的網(wǎng)絡(luò)拓?fù)溆行切?、簇型和網(wǎng)格型。其中,星型網(wǎng)絡(luò)對(duì)資源的要求最低,控制和同步都比較簡(jiǎn)單,通常用于節(jié)點(diǎn)數(shù)量較少的場(chǎng)合。而課題組在單臺(tái)采棉機(jī)上要布置的節(jié)點(diǎn)數(shù)量少、范圍小,因此選用星型網(wǎng)絡(luò)模式構(gòu)建WSN最為合適。
3.1.1 協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)計(jì)
ZigBee協(xié)調(diào)器負(fù)責(zé)啟動(dòng)和組建網(wǎng)絡(luò)。本研究選擇網(wǎng)絡(luò)類(lèi)型為星型網(wǎng)絡(luò)拓?fù)?,在NWK層設(shè)置模式為NWK_MODE_STAR,硬件在上電之后,調(diào)用初始化函數(shù)(osal_init_System( ))、(osalInitTasks( )),對(duì)內(nèi)部進(jìn)行初始化配置,隨后啟動(dòng)局域網(wǎng)網(wǎng)絡(luò)組建,先選擇網(wǎng)絡(luò)信道,再配置網(wǎng)絡(luò)ID(PAN_ID),范圍為0~0x3FFF;之后周期性發(fā)送Beacon_Request(信標(biāo)請(qǐng)求)到局域網(wǎng)中,進(jìn)行廣播配對(duì)組網(wǎng);組網(wǎng)成功后,協(xié)調(diào)器發(fā)送命令給終端節(jié)點(diǎn)進(jìn)行信號(hào)采集,等待接收到終端上傳的數(shù)據(jù)后,調(diào)用復(fù)制函數(shù)(osal_memcpy())將消息隊(duì)列中讀取的終端數(shù)據(jù)傳遞到buffer數(shù)組中,再調(diào)用(HalUARTWrite( ))函數(shù)將數(shù)據(jù)串口發(fā)送到嵌入式終端。
3.1.2 終端節(jié)點(diǎn)軟件設(shè)計(jì)
終端節(jié)點(diǎn)的作用是采集上報(bào)傳感器數(shù)據(jù),開(kāi)發(fā)人員需要在應(yīng)用層(APL)中加入傳感器驅(qū)動(dòng)程序,實(shí)現(xiàn)對(duì)傳感器的數(shù)據(jù)讀取。與協(xié)調(diào)器節(jié)點(diǎn)一致,在設(shè)備上電以后進(jìn)行設(shè)備系統(tǒng)初始化與任務(wù)初始化,配置與傳感器相應(yīng)的IO口功能;之后通過(guò)掃描DEFAULT_CHANLIST列表加入?yún)f(xié)調(diào)器建立的網(wǎng)絡(luò),若加入失敗,則會(huì)嘗試不斷加入網(wǎng)絡(luò),入網(wǎng)成功之后終端節(jié)點(diǎn)就可以調(diào)用void SampleApp_Send_P2P_Message函數(shù)讀取采集數(shù)據(jù),并通過(guò)AF_DataRequest( )函數(shù)將數(shù)據(jù)發(fā)送至協(xié)調(diào)器;之后就進(jìn)入休眠狀態(tài)并計(jì)時(shí),計(jì)時(shí)結(jié)束就繼續(xù)采集,否則保持休眠模式。
本設(shè)計(jì)采用的是在Windows系統(tǒng)下安裝VMware工具,在虛擬機(jī)里安裝Ubuntu16系統(tǒng),并在該系統(tǒng)下安裝交叉編譯器。采用U-Boot內(nèi)核引導(dǎo)程序,選擇迅為提供的BSP源碼包。將uboot(flash.bin)燒錄至開(kāi)發(fā)板,并設(shè)置所需功能相應(yīng)的環(huán)境變量,之后在菜單配置界面進(jìn)行配置,Linux內(nèi)核選擇NXP官方提供的Linux 4.14.78版本,下載源碼至虛擬機(jī),設(shè)置交叉編譯器,使用menuconfig圖形化配置后編譯Linux內(nèi)核。文件系統(tǒng)的移植,選擇Buildroot 工具,在構(gòu)建文件系統(tǒng)中配置安裝v4l-utils工具包、4G撥號(hào)上網(wǎng)工具、Tslib嵌入式優(yōu)化觸摸庫(kù)、QT5環(huán)境等。嵌入式Web服務(wù)器選用Nginx進(jìn)行移植,Nginx是一個(gè)開(kāi)源輕量級(jí)高性能的Web服務(wù)器,它是為快速響應(yīng)大量靜態(tài)文件請(qǐng)求和高效利用系統(tǒng)資源而設(shè)計(jì)的。該服務(wù)器占有內(nèi)存較少、并發(fā)能力較強(qiáng),適用于連續(xù)高并發(fā)的視頻監(jiān)控[8]。
在嵌入式GUI的開(kāi)發(fā)上使用QT Creator作為開(kāi)發(fā)工具,采棉機(jī)監(jiān)測(cè)系統(tǒng)的界面開(kāi)發(fā)主要基于QWidget類(lèi),使用QPushButton、QTableView、QChartView、Edit等控件,通過(guò)QT的信號(hào)與槽函數(shù)機(jī)制,實(shí)現(xiàn)函數(shù)功能間與按鈕界面的聯(lián)系。設(shè)計(jì)功能包括在開(kāi)發(fā)板開(kāi)機(jī)后讀取協(xié)調(diào)器數(shù)據(jù),直接顯示車(chē)輛坐標(biāo)以及視頻監(jiān)控畫(huà)面[9],錄入綁定當(dāng)前人員設(shè)備的信息,設(shè)置傳感器報(bào)警閾值等。
系統(tǒng)的遠(yuǎn)程Web監(jiān)測(cè)基于B/S網(wǎng)絡(luò)設(shè)計(jì),功能實(shí)現(xiàn)主要使用CGI與Html語(yǔ)言結(jié)合JavaScript腳本編寫(xiě),使程序有更快的運(yùn)行速度和更強(qiáng)的靈活性。用戶可以在瀏覽器中輸入相應(yīng)的網(wǎng)絡(luò)IP地址進(jìn)行訪問(wèn),實(shí)現(xiàn)遠(yuǎn)程的兩路視頻實(shí)時(shí)直播、傳感器歷史信息查看、車(chē)輛定位與運(yùn)動(dòng)軌跡標(biāo)記等功能。
為驗(yàn)證傳感器網(wǎng)絡(luò)系統(tǒng)的可用性及可靠性,設(shè)計(jì)多次調(diào)試實(shí)驗(yàn),檢測(cè)ZigBee各節(jié)點(diǎn)預(yù)設(shè)功能。首先,使用仿真器與協(xié)調(diào)器節(jié)點(diǎn)連接;其次,依次給各節(jié)點(diǎn)上電,通過(guò)抓包監(jiān)測(cè)工具可以看到協(xié)調(diào)器有序發(fā)送信標(biāo)請(qǐng)求幀,獲得其他節(jié)點(diǎn)的回復(fù)信標(biāo)幀判斷網(wǎng)絡(luò)構(gòu)建條件,為網(wǎng)絡(luò)構(gòu)建做準(zhǔn)備;再次,向頻道內(nèi)發(fā)送包含網(wǎng)絡(luò)信息的數(shù)據(jù)幀(網(wǎng)絡(luò)狀態(tài)幀)表明協(xié)調(diào)器穩(wěn)定工作,各終端節(jié)點(diǎn)發(fā)送信標(biāo)請(qǐng)求幀獲得回復(fù)幀,判斷信號(hào)強(qiáng)度,確定協(xié)調(diào)器節(jié)點(diǎn)為最佳入網(wǎng)介紹人;最后,向協(xié)調(diào)器發(fā)送攜帶終端MAC地址的信息幀,協(xié)調(diào)器節(jié)點(diǎn)收到信息幀后回復(fù)ACK,表明收到,后續(xù)信標(biāo)請(qǐng)求應(yīng)答一切正常工作。由此,整個(gè)WSN網(wǎng)絡(luò)構(gòu)建成功,打開(kāi)串口助手監(jiān)測(cè)上報(bào)信息[10],可以看到各傳感器供電正常,數(shù)據(jù)上報(bào)信息全面、響應(yīng)及時(shí)。
將上述WSN協(xié)調(diào)器節(jié)點(diǎn)與終端開(kāi)發(fā)板連接,配置好監(jiān)控?cái)z像頭后給開(kāi)發(fā)板上電,測(cè)試其監(jiān)控顯示功能、對(duì)WSN網(wǎng)絡(luò)數(shù)據(jù)的解析功能以及對(duì)車(chē)輛人員的信息綁定錄入等功能。測(cè)試結(jié)果表明,該QT應(yīng)用程序可以穩(wěn)定解析協(xié)調(diào)器上報(bào)各終端節(jié)點(diǎn)信息,可設(shè)置閾值報(bào)警等。
在遠(yuǎn)程PC端瀏覽器中輸入服務(wù)器IP地址,登錄進(jìn)入到監(jiān)測(cè)系統(tǒng)。顯示結(jié)果表明,該系統(tǒng)可以實(shí)現(xiàn)兩路攝像頭遠(yuǎn)程監(jiān)控,可查看終端節(jié)點(diǎn)歷史數(shù)據(jù)信息,地圖定位信息正常,能正常實(shí)現(xiàn)制定功能。
本文基于CC2530與ZigBee技術(shù)搭建WSN網(wǎng)絡(luò),采用跨平臺(tái)QT編程框架開(kāi)發(fā)嵌入式終端系統(tǒng),并移植Nginx服務(wù)器借助CGI設(shè)計(jì)了遠(yuǎn)程監(jiān)測(cè)網(wǎng)頁(yè)。首先介紹了WSN網(wǎng)絡(luò)設(shè)計(jì)架構(gòu)、傳輸協(xié)議制定,然后實(shí)現(xiàn)QT應(yīng)用對(duì)WSN數(shù)據(jù)解析與其他功能設(shè)計(jì),最終完成Web遠(yuǎn)程監(jiān)測(cè)界面。系統(tǒng)測(cè)試表明:WSN網(wǎng)絡(luò)功能正常,傳感器上報(bào)信息及時(shí)可靠,終端能實(shí)現(xiàn)數(shù)據(jù)顯示、超閾值報(bào)警、視頻監(jiān)控等功能,遠(yuǎn)程監(jiān)測(cè)界面也能局部動(dòng)態(tài)實(shí)時(shí)更新。整個(gè)監(jiān)控系統(tǒng)具有成本低、部署便捷、功能模塊化的優(yōu)勢(shì),能滿足采棉機(jī)遠(yuǎn)程監(jiān)測(cè)的設(shè)計(jì)需求,對(duì)于機(jī)采棉公司遠(yuǎn)程管理機(jī)械集群具有很大的應(yīng)用價(jià)值。