常 敏,梅曉敏,崔永進(jìn),王業(yè)生
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
畜牧業(yè)是農(nóng)業(yè)的重要組成部分,在我國國民經(jīng)濟(jì)中占很大比重。在畜牧產(chǎn)業(yè)中,牧場的溫濕度對(duì)牧場中動(dòng)物的生產(chǎn)能力及牧場產(chǎn)品的質(zhì)量影響極其重要。因此,保證飼養(yǎng)環(huán)境的溫濕度達(dá)到最佳標(biāo)準(zhǔn)顯得極其重要。
目前在畜牧業(yè)中,牧場環(huán)境溫濕度的監(jiān)測與控制主要采用以下幾種方法:(1)依靠人工溫濕度監(jiān)測控制。通過人工定期的監(jiān)測,當(dāng)發(fā)現(xiàn)溫度高于或者低于標(biāo)準(zhǔn)范圍則分別采用降溫或者加熱措施。同樣,當(dāng)發(fā)現(xiàn)濕度高于或者低于標(biāo)準(zhǔn)范圍則分別采用干燥或者加濕措施來處理。這種方式人工成本相對(duì)較高,監(jiān)測與控制也不能保證非常準(zhǔn)確。(2)pc端遠(yuǎn)程溫濕度監(jiān)測控制。隨著科技的發(fā)展,出現(xiàn)了一些半智能牧場的解決方案。當(dāng)溫濕度超出標(biāo)準(zhǔn)范圍時(shí)通過控制一些設(shè)備來重新使溫濕度滿足要求[1]。這種方式的優(yōu)點(diǎn)是降低了牧場的人工成本,實(shí)現(xiàn)了半智能化的牧場溫濕度管理。缺點(diǎn)是只能實(shí)現(xiàn)溫濕度的監(jiān)測,不能實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)控制,而且依賴pc機(jī),靈活性差。(3)客戶端短消息溫濕度監(jiān)測。利用GSM網(wǎng)絡(luò)將傳感器監(jiān)測到的數(shù)據(jù)以短信息的形式發(fā)送到手機(jī)客戶端[2]。這種方法的優(yōu)點(diǎn)是實(shí)現(xiàn)了遠(yuǎn)程實(shí)時(shí)的監(jiān)控。缺點(diǎn)是手機(jī)客戶端只是接收信息,無法實(shí)現(xiàn)客戶端遠(yuǎn)程對(duì)環(huán)境溫濕度的控制,智能化程度低。以上方式均可完成溫濕度的監(jiān)測,但還存在不少缺點(diǎn),如何能夠在降低人工成本、提高智能化的基礎(chǔ)上實(shí)現(xiàn)實(shí)時(shí)監(jiān)測與控制牧場中環(huán)境的溫濕度是本文設(shè)計(jì)的目的。
本文提出了一種基于藍(lán)牙4.0BLE技術(shù)與Android客戶端的牧場溫濕度實(shí)時(shí)遠(yuǎn)程監(jiān)測與控制系統(tǒng),應(yīng)用溫濕度傳感器采集牧場環(huán)境溫濕度,利用嵌入式系統(tǒng)對(duì)采集的溫濕度數(shù)據(jù)處理并與標(biāo)準(zhǔn)值判斷,將溫濕度值通過網(wǎng)絡(luò)在手機(jī)客戶端軟件實(shí)時(shí)顯示。手機(jī)客戶端同時(shí)也可以發(fā)出控制環(huán)境溫濕度設(shè)備的命令,通過網(wǎng)絡(luò)將命令傳輸給對(duì)應(yīng)設(shè)備。該系統(tǒng)功耗低,可方便快捷地實(shí)現(xiàn)24 h實(shí)時(shí)監(jiān)測與控制,智能化程度高,并大量減少人力成本的支出。
該監(jiān)測控制系統(tǒng)主要由溫濕度監(jiān)測終端與手機(jī)客戶端組成。監(jiān)測系統(tǒng)的主體是溫濕度傳感器,加熱降溫設(shè)備和加濕干燥設(shè)備。將這些主體設(shè)備固定在每個(gè)需要監(jiān)測與控制的牧場中。
綜合考慮傳輸信號(hào)抗干擾性與低功耗,這里采用BLE實(shí)現(xiàn)數(shù)據(jù)的傳輸。低功耗和抗干擾性強(qiáng)是BLE最大的特點(diǎn)。監(jiān)測控制終端采用ARM-M0平臺(tái),終端不斷讀取溫濕度傳感器的數(shù)據(jù)并進(jìn)行分析處理,獲取實(shí)時(shí)的溫濕度信息,并根據(jù)事先設(shè)定的標(biāo)準(zhǔn)值范圍,判斷牧場溫濕度值是否超出標(biāo)準(zhǔn)范圍。如果溫濕度超出設(shè)定的標(biāo)準(zhǔn)范圍,自動(dòng)控制加熱降溫與加濕干燥設(shè)備的運(yùn)行對(duì)其進(jìn)行調(diào)整。溫濕度傳感器獲得的數(shù)據(jù)通過藍(lán)牙發(fā)送給網(wǎng)關(guān),然后再通過以太網(wǎng)將信息傳輸?shù)椒?wù)器端,供手機(jī)客戶端訪問,使用戶能實(shí)時(shí)監(jiān)測與控制牧場溫濕度。同時(shí),用戶還可以通過手機(jī)客戶端直接控制加熱降溫以及加濕干燥設(shè)備的運(yùn)行與關(guān)閉,修改設(shè)定的溫濕度標(biāo)準(zhǔn)范圍,達(dá)到真正的智能化遠(yuǎn)程控制。
本系統(tǒng)硬件平臺(tái)主要由4大部分組成,分別為監(jiān)測與控制模塊、藍(lán)牙網(wǎng)關(guān)模塊、服務(wù)器模塊和客戶端模塊[3]。監(jiān)測與控制模塊采用nordic公司帶有BLE模塊的nRF51822作為主控芯片。溫度傳感器采用Scnsirion公司的SHT11。藍(lán)牙網(wǎng)關(guān)模塊中采用Samsung公司的S5N8947作為微處理器。其中藍(lán)牙模塊采用CSR公司的CSRB5341,以太網(wǎng)模塊采用Micrel公司的KS8737芯片。服務(wù)器采用Windows server 2008操作系統(tǒng)。手機(jī)客戶端采用安卓操作系統(tǒng),客戶端硬件需要配置藍(lán)牙4.0。硬件實(shí)現(xiàn)的原理框圖如圖1所示。
圖1 硬件原理框圖
硬件部分采用nordic公司的BLE芯片nRF51822作為主控芯片,其內(nèi)嵌了藍(lán)牙協(xié)議棧,可輕松實(shí)現(xiàn)組網(wǎng)要求[4,5],省去了大部分BLE電路設(shè)計(jì)。Cortex-M0處理器帶有256K flash和16 K的RAM,工作電壓為1.8 V~3.6 V。因?qū)貪穸葌鞲衅骶纫蟛桓?,采用Scnsirion公司的SHT11,溫度測量范圍為-40℃~+123.8℃,測量精度為±0.4℃。濕度測量范圍為0~100%RH,測量精度為±3%RH。加熱降溫分別使用加熱燈和風(fēng)扇,加濕干燥分別采用噴淋裝置和除濕器。為了使檢測控制模塊能夠與手機(jī)客戶端進(jìn)行數(shù)據(jù)通信,需要通過網(wǎng)關(guān)模塊實(shí)現(xiàn)藍(lán)牙信號(hào)與互聯(lián)網(wǎng)的轉(zhuǎn)換,在檢測控制模塊與手機(jī)客戶端之間搭起一座橋梁[6-8]。藍(lán)牙網(wǎng)關(guān)模塊中采用Samsung公司的S5N8947作為微處理器,工作電壓為2.5 V(±0.2 V)。其中藍(lán)牙模塊采用CSR公司的CSRB5341,以太網(wǎng)模塊采用Micrel公司的KS8737芯片。存儲(chǔ)器包括一片32MByte的Nand Flash和兩片32MByte的SDRAM。
本系統(tǒng)軟件設(shè)計(jì)主要分為三部分,溫濕度檢測模塊、網(wǎng)絡(luò)通信模塊和客戶端模塊。如何實(shí)現(xiàn)精準(zhǔn)的遠(yuǎn)程監(jiān)測與控制是本文的關(guān)鍵技術(shù)之一。即客戶端發(fā)出數(shù)據(jù)請求時(shí),控制模塊快速響應(yīng)客戶端的請求,提供相應(yīng)的查詢或控制服務(wù)。軟件工作流程如圖2所示。
圖2 軟件工作流程圖
SHT11雖然使用的是數(shù)字接口,但是并非是I2C接口,所以需要I/O口模擬命令和數(shù)據(jù)接收的時(shí)序。程序初始化時(shí),通過一組時(shí)序表示數(shù)據(jù)傳輸?shù)某跏蓟缓蟀l(fā)送測試指令,最后控制權(quán)回到SHT11。
SHT11測量溫濕度的時(shí)間根據(jù)測量的精度而定,溫度測量部分最高精度為14 bit,濕度最高測量精度為12 bit。因此,主控芯片最少需要在此時(shí)間基礎(chǔ)讀取一次測量數(shù)據(jù)。開始測量后,SHT11傳輸2 byte的測量數(shù)據(jù)和1 byte的CRC奇偶校驗(yàn)。主控芯片通過下拉DATA為低電平確認(rèn)測量數(shù)據(jù),最后通過CRC校驗(yàn)位終止通信。主控芯片讀取到數(shù)據(jù)后完成非線性補(bǔ)償和溫度補(bǔ)償。
考慮到環(huán)境溫濕度變換速度緩慢,在本系統(tǒng)中,設(shè)置每隔15 min SHT11讀取一次環(huán)境溫濕度值。由于能隙材料具有極好的線性,溫度轉(zhuǎn)換公式[9]Temperature=-40+0.01SOT,其中SOT為溫度測量值。濕度轉(zhuǎn)換公式 RH=-4+0.0405SORH-2.8×10-6SORH,其中SORH為濕度測量值。
藍(lán)牙主從節(jié)點(diǎn)通信設(shè)計(jì)建立在藍(lán)牙協(xié)議?;A(chǔ)之上[10]。藍(lán)牙協(xié)議棧提供了豐富的接口函數(shù),如通用屬性接口函數(shù)(GATT)、通用訪問接口協(xié)議函數(shù)(GAP)等。本文使用nordic公司推出的低功耗藍(lán)牙芯片nRF51822作為主控芯片,軟件上采用S110 nRF51822 SoftDevice低功耗藍(lán)牙協(xié)議棧及2.4 GHz協(xié)議堆棧(包括Gazell)進(jìn)行主從節(jié)點(diǎn)通信設(shè)計(jì)。
主從節(jié)點(diǎn)間的通信是由主節(jié)點(diǎn)發(fā)起的。主節(jié)點(diǎn)發(fā)起鏈接的過程中,動(dòng)作有:設(shè)備查詢、鏈路建立、加密匹配。從節(jié)點(diǎn)上電后便處于廣播模式,監(jiān)聽主設(shè)備的鏈接請求。主從節(jié)點(diǎn)鏈路確定是由通用訪問接口協(xié)議函數(shù)負(fù)責(zé)完成的。通用訪問接口協(xié)議函數(shù)主要使用藍(lán)牙初始化、設(shè)備掃描函數(shù)、鏈路建立函數(shù)、終止鏈路函數(shù)等。
在數(shù)據(jù)交換方面,藍(lán)牙主從機(jī)是基于通用屬性接口函數(shù)的。從該層面上考慮,可以將主從機(jī)分別視為客戶端和服務(wù)器端??蛻舳藢?duì)服務(wù)器端進(jìn)行讀寫操作。服務(wù)器端響應(yīng)客戶端的數(shù)據(jù)請求。在S110協(xié)議棧中,通用屬性接口函數(shù)層定義了許多屬性,用于訪問客戶端與服務(wù)器端的數(shù)據(jù)請求和數(shù)據(jù)交換。主要有查詢標(biāo)示符(UUID)、讀寫屬性值函數(shù)、讀寫屬性描述等。
在主從機(jī)軟件設(shè)計(jì)方面,從節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括藍(lán)牙設(shè)備的初始化配置、消息的處理等。藍(lán)牙設(shè)備的初始化包括硬件驅(qū)動(dòng)初始化、存儲(chǔ)器初始化。需要調(diào)用藍(lán)牙協(xié)議棧API函數(shù),進(jìn)行從設(shè)備模式配置、參數(shù)配置、注冊用戶屬性表等操作。初始化完后,進(jìn)入廣播模式,等待鏈接請求。主節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括藍(lán)牙設(shè)備初始化、主模式配置、循環(huán)消息處理等。主設(shè)備不斷查詢從設(shè)備,一旦發(fā)現(xiàn)便建立鏈接,實(shí)現(xiàn)與從設(shè)備數(shù)據(jù)的傳輸。主從機(jī)通信流程如圖3所示。
圖3 藍(lán)牙主從機(jī)通信流程圖
手機(jī)客戶端包含溫濕度信息的顯示與控制的目錄,歷史溫濕度曲線繪制功能[11]。界面如圖4所示。
圖4 Android客戶端界面
試驗(yàn)中使用1組監(jiān)測控制模塊,將它們固定安裝在房間的中央,距離地面高度約為2.5 m。調(diào)節(jié)模塊初始的溫濕度標(biāo)準(zhǔn)范圍:溫度范圍調(diào)節(jié)為16.0℃~18.0℃,濕度范圍調(diào)節(jié)為65%~70%。通過Android客戶端遠(yuǎn)程接收設(shè)備檢測的溫濕度數(shù)據(jù)。
圖5 房間24 h溫度變化曲線圖
圖6 房間24 h濕度變化曲線圖
圖5為房間24 h溫度變化曲線圖。測試時(shí)間為10月份,當(dāng)天最高溫度為21.3℃,最低溫度13.5℃,由圖可以看出,溫度變化成功控制在16.0℃~18.0℃,在0時(shí)至6時(shí)和19時(shí)至21時(shí),環(huán)境溫度低于16.0℃,測試房間溫度均為16.0℃左右。在11時(shí)至14時(shí),環(huán)境溫度高于21.0℃,測試房間溫度均為20.0℃左右。溫度自動(dòng)控制較為準(zhǔn)確。圖6為房間24 h房間濕度曲線圖。10月份,上海多為晴天,空氣相對(duì)干燥,空氣濕度低于設(shè)定標(biāo)準(zhǔn)的65%,通過系統(tǒng)的自動(dòng)控制后,房間濕度保持在65%附近。
經(jīng)測試,系統(tǒng)各硬件模塊工作正常,系統(tǒng)根據(jù)設(shè)定的標(biāo)準(zhǔn)范圍自動(dòng)控制房間溫濕度和手動(dòng)調(diào)節(jié)標(biāo)準(zhǔn)溫濕度范圍準(zhǔn)確度高,表明該系統(tǒng)滿足遠(yuǎn)程實(shí)時(shí)監(jiān)測控制的要求。
本文提出了一種基于藍(lán)牙4.0BLE的智能牧場遠(yuǎn)程實(shí)時(shí)監(jiān)測控制系統(tǒng),該系統(tǒng)可實(shí)時(shí)監(jiān)測牧場環(huán)境溫濕度值并根據(jù)設(shè)定的標(biāo)準(zhǔn)值進(jìn)行調(diào)整。同時(shí),Android客戶端可以進(jìn)行遠(yuǎn)程手動(dòng)控制環(huán)境溫濕度的調(diào)節(jié)。由于硬件平臺(tái)處理速度與傳感器相應(yīng)速度的限制,客戶端顯示的數(shù)據(jù)實(shí)時(shí)性一般,存在一定誤差,準(zhǔn)確度不高,但是系統(tǒng)自動(dòng)調(diào)控溫濕度及時(shí)。下一步的工作是進(jìn)一步改善硬件平臺(tái),增加監(jiān)控模塊,優(yōu)化軟件,使之更加智能化,實(shí)用化。
[1] 劉繼忠,邱于兵,黃 翔.基于ARM的遠(yuǎn)程溫濕度監(jiān)測系統(tǒng)的設(shè)計(jì)[J].儀表技術(shù)與傳感器,2012,(8):90-92.
[2] 張 磷,陶 琳,袁江南.基于GSM網(wǎng)絡(luò)的遠(yuǎn)程溫濕度監(jiān)測系統(tǒng)研究及實(shí)現(xiàn) [J].電子技術(shù)應(yīng)用,2012,38(6):93-96.
[3] 汪 剛,張福斌,陳宇航,等.一種遠(yuǎn)程智能家電控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械與電子,2010,(11):51-53.
[4] Wang A,Huang Y T,Lee C T,etal.EcoBT:Miniature,versatile mote platform based on Bluetooth Low Energy Technology[C].Proceedings of the IEEE International Conference on Green Computing and Communications,Taipei,Taiwan,2014.
[5] 歐陽俊,陳子龍,黃寧淋.藍(lán)牙4.0BLE開發(fā)完全手冊[M].北京:化學(xué)工業(yè)出版社,2013.
[6] 王雅志,王紹源.基于藍(lán)牙的家居網(wǎng)關(guān)數(shù)據(jù)采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2010,(3):711-714.
[7] 馮棟棟.嵌入式藍(lán)牙網(wǎng)關(guān)的關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].南京:江蘇大學(xué),2007.
[8] 孫 睿,付志紅.基于嵌入式Linux的藍(lán)牙以太網(wǎng)關(guān)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2006,26(12Z):27-29.
[9] 王武禮,楊 華.基于SHT11的糧倉溫濕度測控系統(tǒng)的設(shè)計(jì)[J].儀表技術(shù)與傳感器.2010,(9):50-51.
[10]徐加偉.基于低功耗藍(lán)牙無線通信技術(shù)的交通數(shù)據(jù)檢測發(fā)放研究[D].沈陽:哈爾濱工業(yè)大學(xué),2013.
[11]Meier R,佘建偉,趙 凱.Android 4高級(jí)編程[M].北京:清華大學(xué)出版社,2013.