李曉娟 張素君 楊文強
摘 要:該文基于ZigBee技術(shù)給出了一種用于溫室數(shù)據(jù)采集的系統(tǒng)方案。硬件部分選擇溫濕度傳感器SHT11和光傳感器TSL2550D采集溫室環(huán)境參數(shù),軟件部分采用C語言編寫上位機程序,數(shù)據(jù)的采集和傳輸采用周期上報和中斷立即上報兩種工作方式。實驗結(jié)果表明,該系統(tǒng)可以實時、準(zhǔn)確、可靠地完成溫室環(huán)境因子監(jiān)測,有效地降低了系統(tǒng)功耗,為今后將該網(wǎng)絡(luò)應(yīng)用于實際溫室的數(shù)據(jù)采集打下基礎(chǔ),具有廣泛的應(yīng)用前景。
關(guān)鍵詞:ZigBee;數(shù)據(jù)采集;溫室;SHT11;TSL2550D
中圖分類號 S625.5 文獻(xiàn)標(biāo)識碼 A 文章編號 1007-7731(2016)12-0122-04
Design of Data Acquisition System for Greenhouse Based on ZigBee Technology
Li Xiaojuan et al.
(Henan Institute of Science and Technology,Xinxiang 453003,China)
Abstract:A data acquisition system for greenhouse based on ZigBee technology was presented in this paper. Part of the hardware select temperature and humidity sensor SHT11 and light sensor TSL2550D to acquisit environmental parameters of greenhouse,part of the software use C language to write the program of the upper computer interface,data is collected and transported using the periodic report mode or interrupt immediately report mode.The experimental results show that,the system can monitor the environmental factors of greenhouse in real time,accurately and reliably,and reduce system power consumption effectively. It has laid a foundation to apply the network in practical greenhouse data acquisition in the future with a broad application prospect.
Key words:ZigBee;Data collection;Greenhouse;SHT11;TSL2550D
溫室大棚可以在不同季節(jié)為農(nóng)作物提供其生長發(fā)育所需的環(huán)境,適宜的環(huán)境對促進(jìn)農(nóng)作物的產(chǎn)量和品質(zhì)起著舉足輕重的作用。溫室生產(chǎn)的一個重要環(huán)節(jié)是數(shù)據(jù)的采集與監(jiān)控。本文基于ZigBee技術(shù)給出了一種用于溫室數(shù)據(jù)采集[1,2]的設(shè)計方案。
1 硬件電路設(shè)計
1.1 溫濕度采集電路設(shè)計 溫室環(huán)境因子中,溫濕度的監(jiān)測相當(dāng)重要。本系統(tǒng)采用瑞士Sensirion公司推出的新一代基于CMOSensTM技術(shù)的數(shù)字式溫濕度傳感器SHT11,它將溫濕度傳感器和相關(guān)電路功能部件全部采用CMOS技術(shù)放置在一個芯片內(nèi),這就使得測量精度提高;另外,它具有IIC二線串行總線接口,方便與任何類型的微處理器、微控制器接口相連,為溫濕度的微機化測試帶來極大的方便[3,4]。其與微控制器的接口如圖1所示。
如圖1所示,SCK接到微控制器的I/O口,通過I/O口模擬時鐘信號來實現(xiàn)微處理器與SHT11之間的同步通訊。由于接口包含了完全靜態(tài)邏輯,所以不存在最小的SCK頻率,DATA三態(tài)門用于數(shù)據(jù)的讀取,DATA在SCK時鐘下降沿之后改變狀態(tài),僅在SCK時鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時鐘高電平時,DATA必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動DATA在低電平,需要一個外部的阻值為l0k的上拉電阻將信號提拉至高電平。R8、R9主要是為了測試系統(tǒng)其它部分的功耗而設(shè)計;JN5139通過DIO13、DIO12就可以與SHT11通信,從而讀取溫濕度數(shù)據(jù)。最終讀取的溫度數(shù)據(jù),因為能隙材料極好的線性,可直接用公式1轉(zhuǎn)化為溫度值,其中SOT是傳感器輸出的測量值,d1,d2為溫度轉(zhuǎn)換系數(shù),分別與供電電壓和轉(zhuǎn)換精度有關(guān)系。
Temperature=d1+d2×SOT (1)
測量得到的濕度值需要補償非線性以獲取準(zhǔn)確的數(shù)據(jù),采用公式2修正讀數(shù)。其中SORH是傳感器輸出的濕度值,C1、C2、C3是濕度轉(zhuǎn)換系數(shù),與測量精度有關(guān)。
Rhlinear=C1+C2×SORH+C3×SORH2 (2)
1.2 光照度采集電路設(shè)計 作物的生長、發(fā)育和產(chǎn)量同光合作用密切相關(guān),因此對光照度的監(jiān)測也是溫室環(huán)境檢測系統(tǒng)中的關(guān)鍵一環(huán)。對于普通的光照傳感器只有一只光電探測器,檢測到的光信號既包含可見光(影響光合作用的主要成分)成分又有紅外光成分。這樣,當(dāng)周圍環(huán)境的可見光并不十分強而紅外光較強時,檢測的結(jié)果會受到紅外光影響,輸出光照強度大的測量值,與人眼的感覺有很大差異。因此,在光照傳感器設(shè)計中,關(guān)鍵問題是要濾除紅外光對光照傳感器檢測結(jié)果的影響。本系統(tǒng)中采用TAOS公司的TSL2550D光傳感器,其內(nèi)部有兩個傳感器,提供的輸出是根據(jù)兩個組合傳感器讀數(shù)推導(dǎo)出來的。其中通道0對紅外光和可見光敏感,通道1只對紅外光敏感。只要將這兩個讀數(shù)相減,并將結(jié)果數(shù)字化,TSL2550 D就能得到近似人眼的響應(yīng),從而評估可見光光強以及紅外線的影響[5]。TSL2550D的接口電路圖如圖2所示。
2 軟件設(shè)計
本系統(tǒng)通信軟件采用C語言在Jennic CodeBlocks編譯和調(diào)試環(huán)境下進(jìn)行程序設(shè)計。
2.1 讀取溫濕度數(shù)據(jù) 讀溫濕度時,為了確保不會發(fā)生阻塞,采用狀態(tài)機機制,把傳感器的狀態(tài)分為:空閑狀態(tài)、啟動讀濕度、正在讀濕度、讀濕度完成、啟動讀溫度、正在讀溫度、讀溫度完成、溫濕度數(shù)據(jù)準(zhǔn)備好[6]。在讀溫濕度子函數(shù)中利用switch()語句對各個狀態(tài)進(jìn)行判定,根據(jù)狀態(tài)進(jìn)行相應(yīng)的操作,最終正確讀出溫濕度數(shù)據(jù)。在傳感器節(jié)點子程序中,周期性地調(diào)用讀溫/濕度測量子程序就可以在狀態(tài)機機制下正確地監(jiān)測溫室溫濕度因子。SHT11測量溫濕度的程序圖如圖3所示。
2.2 讀取光照度數(shù)據(jù) TSL2550D光傳感器采用SMBus總線通訊協(xié)議,針對SMBus總線編寫寫了幾個基礎(chǔ)函數(shù)如下:
PUBLIC void vSMBusInit(void);//初始化SMBus總線
PUBLIC bool_t bSMBusWrite(uint8 u8Address,uint8 u8Command,//SMBus寫函數(shù)
uint8 u8Length,uint8* pu8Data);
PUBLIC bool_t bSMBusRandomRead(uint8 u8Address,uint8 u8Command,uint8 u8Length,uint8* pu8Data);// SMBus隨機讀函數(shù)
PUBLIC bool_t bSMBusSequentialRead(uint8 u8Address,uint8 u8Length,uint8* pu8Data);//SMBus順序讀函數(shù)
針對TSL2550D編寫了以下幾個子函數(shù):
PUBLIC bool_t bTSL2550_Init(void);//用于TSL2550D的初始化;
PUBLIC bool_t bTSL2550_PowerDown(void);//使TSL2550D工作在掉電模式;
PUBLIC bool_t bTSL2550_StartRead(uint8 u8Channel);//啟動通道0、1進(jìn)行采集;
PUBLIC uint16 u16TSL2550_ReadResult(void);
//從ADC寄存器0、1中讀出轉(zhuǎn)換結(jié)果,并根據(jù)公式1計算出Ch0/Ch1計數(shù)值。
TSL2550D寄存器數(shù)據(jù)格式如表1所示,若B7為1則說明ADC寄存器里的數(shù)據(jù)已經(jīng)有效,否則無效;B6 B5 B4三位決定CHORD NUMBER,取值范圍為:0~7;B3 B2 B1 B0四位決定STEP NUMBER值,取值范圍為:0~15;利用從ADC寄存器里讀出的值經(jīng)過換算并按公式3計算即可得到ADC計數(shù)值,Ch0/Ch1最終按照光照度公式4計算即可得到實際光照度。
其中,C取值范圍為:0~7;S取值范圍為:0~15;L為亮度,單位為流明;Ch0和Ch1分別代表光照傳感器的兩個光電探測器所采集到的數(shù)值;R代表Ch0和Ch1的比值,即當(dāng)前環(huán)境中紅外光所占的比重。
3 實驗驗證
本實驗在實驗室內(nèi)模擬完成,主要有基于周期上報數(shù)據(jù)和基于中斷立即上報數(shù)據(jù)兩種模式。
3.1 周期模式下的數(shù)據(jù)采集 在測試程序中,對應(yīng)指定地址寫入32個數(shù)據(jù),并從指定地址單元讀出10個數(shù),寫讀成功后,在串口中顯出。協(xié)調(diào)器不斷檢測是否有按鍵按下,若按下則顯示相應(yīng)的按鍵編號。為了觀察方便,測試時,向協(xié)調(diào)器節(jié)點發(fā)送數(shù)據(jù)時,主要包括溫度、濕度、光照度及時間。傳感器節(jié)點和路由節(jié)點完成注冊后,先采集一次數(shù)據(jù)進(jìn)入休眠狀態(tài),當(dāng)Wake timer1(測試時設(shè)為10s)時間到時,進(jìn)入相應(yīng)中斷事件,在中斷事件中,檢查采集數(shù)據(jù)是否超限,若超限立即發(fā)送數(shù)據(jù),若不超限,判定采集數(shù)據(jù)次數(shù)是否大于N(測試時N設(shè)為6),若大于則發(fā)送一次數(shù)據(jù),若不大于則中斷返回。若Wake timer2時間到,則向路由節(jié)點詢問是否有發(fā)達(dá)給自己的數(shù)據(jù)或命令,并進(jìn)行相應(yīng)的處理。周期模式下的數(shù)據(jù)采集如圖4所示。
3.2 中斷模式下的數(shù)據(jù)采集 當(dāng)溫室環(huán)境因子發(fā)生突變并超限時,路由節(jié)點或傳感器節(jié)點會立即上報協(xié)調(diào)器數(shù)據(jù),從而用戶可以及時采取相應(yīng)的措施。在本實驗中,采用隨機函數(shù)法來模擬采集溫室數(shù)據(jù),當(dāng)隨機函數(shù)產(chǎn)生的數(shù)據(jù)超限時,則立即上報協(xié)調(diào)器,發(fā)出聲光報警,若數(shù)據(jù)在正常范圍,則丟棄數(shù)據(jù),節(jié)點繼續(xù)睡眠,從而節(jié)省功耗。其中斷數(shù)據(jù)傳輸如圖5所示。
4 結(jié)論
本文基于ZigBee技術(shù)將采集的溫度、濕度、光照強度等數(shù)據(jù)通過無線網(wǎng)絡(luò)進(jìn)行傳輸,監(jiān)控人員可以實時監(jiān)控整個溫室環(huán)境,通過上位機做出相應(yīng)處理,從而為植物的生長提供了一個良好的環(huán)境,也可以為研究者提供理論依據(jù)。本系統(tǒng)對溫室環(huán)境參數(shù)的監(jiān)測及時、準(zhǔn)確,且具有可靠性高、擴展性強等優(yōu)點。
參考文獻(xiàn)
[1]段鋒銳,石軍鋒.一種基于Zig Bee技術(shù)的溫室數(shù)據(jù)實時采集系統(tǒng)[J].自動化與儀表,2015(10):41-44.
[2]趙悅,程躍,張宏坤.基于Zig Bee的溫室測控系統(tǒng)設(shè)計[J].實驗室研究與探索,2014,33(12):131-134.
[3]匡宇國.智能傳感器SHT11及其在便攜式溫濕度檢測儀中的應(yīng)用[J].電子器件,2006,29(4):1312-1315.
[4]Sensirion.SHT11/15 relative humidity sensor.http://www.sensirion.com/en/pdf/Datasheet_SHT1x_SHT7x_0206.pdf,June 2002.
[5]Texas Advanced Optoelectronic Solutions.TSL2550 ambient light sensor.http://www.taosinc.com/pdf/tsl2550-E39.pdf,September 2002.
[6]馬潮.基于AVR的單片嵌入式系統(tǒng)原理與實踐應(yīng)用[M].1版.北京:北京航空航天大學(xué)出版社,2007.
(責(zé)編:張宏民)