盛立沖 吳子龍 鄒秋霞
摘要:通過對養雞場環境因子的測量和控制,可確保雞處于最適生長環境。為使雞舍環境信息監控系統不再依賴有線網絡傳輸技術、現場布線更為簡單、通信監控穩定可靠,提出多點對點藍牙-GPRS網關設計,采用多點均衡判別和在網關中引入CRC數據包校驗的方法來降低錯誤監控事件發生率。系統在感知層針對資源有限的CC2540實現了1個藍牙主機同3個從機的穩定性通信,帶有傳感器的藍牙從模塊的終端節點可實現6個環境參數的采集,同時還可利用紅外遙控執行設備。現場采集到的信息通過多點對點藍牙-GPRS網關轉為GPRS數據包發送到傳輸層的遠端服務器,服務器利用數據挖掘的方法進行多點均衡判別來達到優化控制。應用層以Android手機為客戶端,以C/S模式對養雞場進行可靠監控,客戶端具有遠程設置界面,可設置6個環境參數的變化區間來使終端節點自動調節雞場環境,客戶端還有遠程記錄雞生長日志功能。系統將建成雞舍環境參數與生長狀況信息庫,可為后期養殖技術的提高和食品安全的溯源提供全面可靠的數據支持。
關鍵詞:多點對點;藍牙-GPRS;CC2540;多點均衡;環境參數;遠程設置;雞舍
中圖分類號: S126;TP277.2 文獻標志碼: A 文章編號:1002-1302(2016)07-0394-05
隨著我國城市化的不斷發展,過去散養雞的方式越來越被大規模、集中式的養雞場方式所替代。然而,雞生長過程中在不同階段對環境因素有著不同的要求[1-3],因此這種高密度的養殖需要合理的信息監控系統。信息監控系統在養雞場的應用既可以節約大量的勞動成本,又可以讓養雞場環境時刻保持最適合雞生長的狀態,從源頭上降低雞疾病發生率,從而確保雞又快又好地生長。
當今國外養雞場監控大都采用工控監控設備,價格昂貴[4],國內養雞場監控對有線網絡傳輸技術依耐性強,布線復雜。而在現實中,國內養雞場大都處于偏僻、有線通信設施差的地區。如今藍牙4.0BLE技術低功耗,且在通信傳輸速率、價格上已經優于ZigBee,而且藍牙4.0BLE傳輸距離已達到了60~100 m[5]。此外,藍牙4.0BLE的星形網絡拓撲依賴的不再僅僅是以手機為中心節點,市場上已經出現了諸多CC254X系列的主機。因此,藍牙4.0BLE技術在中小規模養雞場環境信息監控方面的應用已經有了可能。
針對以上情況,本研究開發了基于藍牙4.0BLE技術的雞舍環境信息監控系統,該系統以Android智能手機為客戶端,以全程無線的通信方式對養雞場的信息進行可靠監控。同時,使用者可在客戶端以日志形式記錄雞的生長信息并存于服務器中。本研究首次建成雞舍環境參數與生長狀況信息庫,以期為今后養殖技術的提高和食品安全可溯源提供全面可靠的數據。
1 系統總體設計
這個基于藍牙4.0BLE技術的雞舍環境信息監控系統,采用物聯網的感知層、傳輸層、應用層3層設計模式。系統涉及的通信方式,都采用無線傳輸方式,系統涉及紅外、藍牙和GPRS無線通信技術。系統總體結構見圖1。
(1)感知層。藍牙從模塊的數據采集終端既作為數據采集終端又作為驅動執行設備的紅外發射器[6]。執行設備有:具有紅外感應的加溫空調、風機、加濕器、天窗和照明設備。多個藍牙從模塊數據采集終端與多點對點藍牙-GPRS網關以主從方式實現通信連接。本設計采用3個帶有傳感器的藍牙從模塊和GPRS3G 500萬像素可旋轉攝像頭作為數據采集終端節點,實現對養雞場內6個環境參數多地點采集和對現場圖片取景多角度采集,6個環境參數為溫度、相對濕度、光照度、二氧化碳濃度、氨氣濃度和硫化氫濃度[1-2,7]。將采集的3組6個環境參數打成數據包,再利用多點對點藍牙-GPRS網關,將藍牙數據包格式轉化為GPRS數據包格式,并通過該網關發送出去。
(2)傳輸層。利用GPRS網絡,將上述GPRS數據包通過GPRS網絡發給具有公網IP的遠程服務器。服務器每隔5 min 就收到1次來自感知層的環境數據,服務器利用數據挖掘的方法對同一時間3個不同節點采集的6個環境參數進行多點均衡判別,根據事先定好的規則給出控制結論,達到優化控制的目的。長此以往服務器端將會獲取大量重復數據,因此利用數據分析方法去除冗余數據,再作存儲。
(3)應用層。采用安卓智能手機作為客戶端,當然還可以采用圖1中的其他移動設備或固定設備,以C/S模式獲取養雞場的實時信息,客戶端還可以控制調節養雞場內的環境
因子。在客戶端上如滑動空調加溫按鈕至開狀態,服務器就會接收到控制信息,經過分析就會給多點對點藍牙-GPRS網關發送對應的GPRS數據包控制信息。該網關收到信息后將其轉換為藍牙數據包,并根據數據包解析出的藍牙從模塊的地址信息將打開空調的控制信號發給指定的藍牙從模塊數據采集終端。該從模塊處理器根據控制信息,會自動發出對應的紅外編碼信號給空調紅外接收器,空調就會自動開啟[6]。客戶端還具有遠程記錄雞生長日志功能。服務器端根據每天采集的環境參數和生長日志形成雞舍環境參數與生長狀況信息庫。
2 多點對點藍牙-GPRS網關設計
采用多點對點藍牙-GPRS網關,擺脫了以往單從節點失效而數據不能傳輸的問題,或因單從節點錯誤傳輸而導致錯誤監控的事故。同時,采用多節點均衡判別,可提高采集數據的可靠性。
2.1 硬件設計
該網關由藍牙4.0射頻模塊、超低功耗MSP430F149處理器、GPRS射頻模塊組成。多點對點藍牙-GPRS網關系統見圖2。本網關硬件主要由藍牙4.0BLE模塊(包括1個集中器和3個節點設備)、MCU控制器模塊、GPRS射頻模塊、儲存器模塊和顯示模塊組成。藍牙4.0BLE模塊的核心采用制造者科技有限公司生產的CC2540-EB核心板,該核心板主要包括CC2540單片機、全尺寸倒F天線、晶振和擴展接口。CC2540-EB核心版供電電壓3.3 V,室內有效傳輸距離可達60 m。其中CC2540單片機是由TI公司推出的完全支持藍牙4.0BLE協議的8位單片機[5]。MCU控制器模塊采用TI公司的MSP430F149,該低功耗處理器具有2個通用異步串行接口,且都為TTL接口[8-9]。GPRS射頻模塊采用透傳模塊KS97,該模塊能夠將串口接收到的數據通過GPRS網絡進行無線傳送。存儲器模塊采用金斯頓2G SD卡,采用SPI模式與單片機MSP430F149相連接。該SD卡用作存放事先計算好的CRC16值表,該多點對點藍牙-GPRS網關在進行數據包CRC校驗時采用查表法將大大提高單片機MSP430F149的計算速度。LCD顯示模塊采用12864液晶屏,用來實時顯示養雞場內的溫度等6個環境參數。如圖2所示,藍牙射頻模塊與MSP430F149單片機串口0的TXD、RXD相連接,GPRS射頻模塊則接在MSP430F149單片機的串口1上,SD存儲卡采用SPI模式與單片機MSP430F149相連接。
2.2 軟件設計
2.2.1 多點對點藍牙-GPRS網關軟件流程圖設計 多點對點藍牙-GPRS網關軟件流程見圖3。該軟件的功能好比數據翻譯器,實現藍牙數據格式同GPRS數據格式的相互轉換。該網關的運行,首先要進行初始化,包括串口初始化、12864液晶顯示初始化、SD存儲卡初始化、波特率設置、使能中斷等操作。接下來的軟件程序流程將進入1個大的循環體中,流程如下:(1)MSP430F149處理器對串口0和串口1進行周期性的狀態掃描,掃描到高電平信號就跳到(2)。(2) MSP430F149處理器對高電平信號串口采取辨別,如果來自串口0,那么把串口1定義成輸出端,跳到(3);反之將串口0定義成輸出端,跳到(4)。(3)接收串口0的藍牙數據包,調
用SD存儲卡中的CRC16值表進行CRC16校驗。校驗失敗則丟棄當前數據包跳到(1);校驗成功則對該藍牙數據包進行解析,分離出采集節點的地址信息和數據荷載,進而在將其封裝為GPRS格式的數據包。如果上報時間5 min已到,則把GPRS格式的數據包從串口1發出,跳到(1);若上報時間未到,則跳到(1)。(4)接收串口1的GPRS格式數據包,調用SD存儲卡中的CRC16值表進行CRC16校驗。如果校驗失敗,則丟棄當前數據包,跳到(1);如果校驗成功,則對該GPRS數據包進行解析,分離出采集節點的地址信息、控制信息,進而將其封裝為藍牙格式的數據包。從串口0發出,跳到(1)。
2.2.2 藍牙主機與3個藍牙從機實現上電自動連接 本系統在藍牙主從機采集與控制這一模塊功能的開發上,編譯環境采用IAR8.10,藍牙協議棧采用BLE-CC254x-1.3.2,程序下載燒寫器采用CC DEBUGGER。使用IAR開發的極大好處就是用戶只需要打開TI公司提供的BLE協議棧,根據實際項目進行文件的部分修改即可。利用協議棧在后期開發中不再需要編寫底層的復雜代碼,開發者只需調用相應的API接口函數,即可實現控制底層的功能。藍牙4.0BLE協議棧如圖4所示。該協議棧實現了TI的藍牙4.0BLE的協議。TI的藍牙4.0BLE協議由控制器、主機2大部份組成。協議棧用分層的思想,上層可以調用下層提供的函數來實現所需要的功能[5]。而一般用戶直接接觸的是通用訪問配置文件層(GAP)、通用屬性配置文件層(GATT)。GAP定義了使用ATT服務的框架,若GAP服務的UUID相互匹配,那么2個設備就可建立連接,GATT規定了配置文件(profile)的結構,在BLE中凡是被服務或profile用到的數據塊都稱作“特性”,2個建立連接設備之間的所有數據通信都是利用GATT子程序來處理的[5]。
圖5是藍牙主機與3個藍牙從機實現上電自動連接的流程,此處共4個模塊、1個主機、3個從機。上電后,從機通過傳感器采集到雞場環境數據存放到自身屬性表的特性中,周期性地處于廣播狀態;而主機僅需要掃描和連接2個動作。
流程圖中部分關鍵代碼:打開協議棧文件夾需要修改simpleBLECentral.c、simpleBLEPeripheral.c及其對應的頭文件及 profile文件和該系統模塊對應的hal層驅動等。
osal_set_event(simpleBLETaskId,START_CONNECT_EVT);//啟動1個連接事件
If(pEvent->gap.hdr.status==SUCESS);//回調函數返回狀態為SUCESS,表明連接成功
{simpleBLEConnHandle[connectedPeripheralNum]=pEvent->linkCmpl.connectionHandle;//保存當前connectionHandle
connectedPeripheralNum++;//已建立連接數+1
.............}
If((connectedPeripheralNum
2.2.3 藍牙主機與從機相互通信流程 當藍牙主機與3個藍牙從機自動連接成功后,藍牙主機要根據之前保存的 connectionHandle 和從機地址來主動地和每個目標從機通信,通信的具體流程如圖6所示。主機要想讀取目標從機采集到的應用數據,首先開始搜索目標從機的service、characteristcs。主機只有獲得特性值句柄才能憑借特性值句柄去讀取從機的應用數據,并給從機傳送新的應用數據。從機依據接收的新數據來實現相應的執行動作,即利用紅外信號來控制燈光、空調等的關開。通信流程部分核心代碼:osal_start_timerEx(simpleBLETaskId,START_DISCOVERY_EVT,DEFAULT_SVC_DISCOVERY_DELA);//啟動尋找service事件
GATT_DiscprimaryServiceByUUID(simpleBLEConnHandle[connectedPeripheralNum-1],uuid,ATT_BT_UUID_SIZE,simpleBLETaskId);//尋找service事件最終調用了該函數,并向該函數傳遞了從機的service uuid
3 GPRS模塊與服務器通信
GPRS模塊和遠端服務器進行通信的步驟:(1)在上電的前提下,GPRS模塊讀出自身Flash Memory內的配置參數,自動PPP撥號發起連接;(2)連接成功會獲得動態IP;(3)按照配置參數中已經設定的目標遠端服務器的IP地址、端口號,向其發起連接;(4)遠端服務器連接成功后,本系統為了保證傳輸數據的可靠性,隨即發起TCP請求;(5)TCP請求通過,雙向通信鏈路建立。本系統為了多點對點藍牙-GPRS網關能與遠端服務器永久連接,特意將GPRS模塊作為遠端服務器的客戶端,采用心跳包的方式與服務器建立永久在線連接,利用Socket編程模型實現TCP協議與遠端服務器通信。
4 服務器端
服務器利用數據挖掘的方法對同一時間3個不同節點采集的3組6個環境參數進行多點均衡判別,根據事先定好的規則,給出控制結論和1組可靠地代表養雞場6個環境參數的輸出,來達到優化控制。如果當同一時間同一環境因子差別高于先驗知識的范圍,說明存在異常,則給出報警通知等。
由于服務器每隔5 min就收到1次來自感知層的環境數據,1 d就會有288條,而構建雞舍環境參數與生長狀況信息庫,1 d不需要288條數據,根據養雞專家意見,服務器采用分時間段取平均值去除冗余數據來存儲建庫。
服務器端是應用層安卓手機客戶端和感知層雞舍環境現場采集與執行端的中轉站。安卓手機客戶端可以通過服務器獲取可靠有效的養雞場6個環境參數和現場取景圖片,同時還可以發送控制信號、應用數據給服務器,服務器根據接收的內容作出相應的判斷并執行相應的事件處理。
5 Android手機客戶端測試
本研究開發了基于Android客戶端的雞舍環境監控系統軟件[10]。安卓手機安裝好該軟件,用戶在手機應用程序中找到雞舍環境監控系統圖標,點擊該圖標進入登錄界面,輸入用戶名和密碼,點擊登錄,即可進入功能界面。功能界面共有3個功能菜單項:第1個是監控界面菜單,第2個是遠程設置界面菜單,最后1個則是日志記錄菜單。點擊監控界面菜單,則進入圖7-a中的監控界面并同時讀取服務器最近期存儲的養雞場6個環境參數,監控界面上方部分是養雞場內執行器的開關按鈕,滑動該開關按鈕,可實現遠程控制執行設備。如果想查看養雞場的實時場景,只需要點擊監控界面下方的取景菜單,進入圖7-b所示的現場取景界面,服務器收到取景信號命令,則實時給養雞場內GPR3G 500萬像素無線遠程拍照攝像頭發1個拍攝信號,GPRS3G 500萬像素無線遠程拍照攝像頭把實時拍攝圖片返回給服務器,再轉發給手機端,接著進入休眠狀態,等待下一次的拍攝信號。要想遠程設置讓感知層的3個藍牙從模塊自動調節控制養雞場的環境參數,使環境參數值保持在一個較大的動態區間內,可點擊遠程設置菜單,進入遠程設置界面(如圖7-c所示),進行環境參數值大區間的設置。點擊日志記錄菜單,彈出日志記錄界面如圖7-d所示。客戶端具有遠程記錄雞生長日志功能,系統測試效果良好,已在養雞場試用。
6 結論
系統實現了利用手機客戶端遠程對養雞場6個重要環境參數的監控和現場取景功能,確保雞處于最適的生長環境。系統的主要優點有:(1)采用全無線的傳輸方式,解決國內養雞場監控對有線網絡傳輸技術依耐性強的問題;(2)系統首次將藍牙4.0BLE技術應用于畜禽環境監控中,并設計了多點對點藍牙-GPRS網關,針對資源有限的CC254x實現了1主3從的穩定性通信;(3)系統根據養雞場空間實情,采用多節點采集重復數據,擺脫了以往單從節點失效而數據不能傳輸的問題,或因單從節點錯誤傳輸而導致錯誤監控的事故,在服務器端采用多節點均衡判別,可提高采集數據的可靠性;(4)系統對雞舍環境重要參數實現了全面采集,且客戶端具有遠程記錄雞生長日志功能,本研究首次將雞舍環境參數與生長狀況信息庫建成,為今后養殖技術的提高和食品安全可溯源提供全面而可靠的數據;(5)系統設計出遠程設置界面,特別適合像養雞場這樣環境參數變動頻繁的場所,遠程設置極大提高該系統的實用性、方便性,該系統還可應用于其他畜禽養殖場所監控、溫室大棚監控、智能家居等場所,應用前景廣闊。
參考文獻:
[1] 徐 剛,徐文龍. 自動化蛋雞舍環境控制研究[C]. 第五屆中國蛋雞行業發展大會會刊,2011.
[2]馮國明. 高效養雞的光照要求[J]. 飼料博覽,2014(9):55-56.
[3]尤玉雙. 雞舍環境控制對生產性能影響的研究[D]. 北京:中國農業大學,2004.
[4]王新政. 禽舍環境智能控制關鍵技術研究[D]. 哈爾濱:東北林業大學,2012.
[5]歐陽駿,陳子龍,黃寧淋. 藍芽4.0BLE開發完全手冊——物聯網開發技術實戰[M]. 北京:化學工業出版社,2013:84-86.
[6]居 聰,曹中忠,張 勇,等. 基于單片機的空調智能控制器的設計[J]. 軟件,2014,35(6):34-38.
[7]徐 鑫,盧真真,劉繼軍,等. 自動防疫系統對冬季雞舍空氣凈化的效果[J]. 農業工程學報,2010,26(5):263-268.
[8]沈建華,楊艷琴,翟驍曙. MSP430系列16位超低功耗單片機原理與應用[M]. 北京:清華大學出版社,2004:30-38.
[9]劉永濤,劉 佳,吳金順. 基于MSP430與單總線的溫室監控終端的設計[J]. 中國農機化學報,2015,36(1):289-293.
[10]李 剛. 瘋狂Android講義[M]. 北京:電子工業出版社,2011:5-36.