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