摘 要: 為在完成溫室內(nèi)環(huán)境參數(shù)的自動(dòng)采集和調(diào)控,設(shè)計(jì)了基于無(wú)線傳感器網(wǎng)絡(luò)的溫室環(huán)境監(jiān)控方案。介紹了溫室監(jiān)控系統(tǒng)整體結(jié)構(gòu),分析了基于CC2431無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件設(shè)計(jì),并在此基礎(chǔ)上進(jìn)行了TinyOS操作系統(tǒng)的移植和節(jié)點(diǎn)的軟件設(shè)計(jì)。由于該無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)具有功耗低、體積小、工作可靠、易于擴(kuò)展等優(yōu)點(diǎn),基于該無(wú)線傳感器網(wǎng)絡(luò)的溫室環(huán)境監(jiān)控方案有很好的應(yīng)用前景。
關(guān)鍵詞: 溫室環(huán)境監(jiān)控;無(wú)線傳感器網(wǎng)絡(luò);傳感器節(jié)點(diǎn);CC2431;TinyOS
在日常生活中,溫室環(huán)境種植已經(jīng)是人們生活中很常見(jiàn)的一個(gè)例子。傳統(tǒng)的溫室環(huán)境種植都是通過(guò)在溫室內(nèi)布置復(fù)雜的電線及相關(guān)的控制設(shè)備來(lái)實(shí)現(xiàn)對(duì)溫室環(huán)境的調(diào)控。這為對(duì)農(nóng)作物進(jìn)行施肥等活動(dòng)造成了障礙,可能會(huì)在這些活動(dòng)中把電線弄斷,從而給系統(tǒng)通信帶來(lái)問(wèn)題。而利用無(wú)線傳感器網(wǎng)絡(luò)不需要經(jīng)過(guò)布線這個(gè)環(huán)節(jié),避免了相關(guān)問(wèn)題的出現(xiàn),達(dá)到了對(duì)溫室環(huán)境進(jìn)行監(jiān)控的要求,同時(shí)由于采用了基于CC2431的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行設(shè)計(jì),達(dá)到了無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)時(shí)外形小、集成度高、功耗低、速度快、成本低的要求。
1 溫室環(huán)境監(jiān)控系統(tǒng)整體結(jié)構(gòu)
溫室環(huán)境監(jiān)控系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示,網(wǎng)絡(luò)中采用傳感器測(cè)量節(jié)點(diǎn)和具有簡(jiǎn)單執(zhí)行控制功能的控制節(jié)點(diǎn)構(gòu)成無(wú)線傳感器網(wǎng)絡(luò)。測(cè)量節(jié)點(diǎn)用來(lái)測(cè)量空氣溫度、濕度、光照強(qiáng)度等重要環(huán)境數(shù)據(jù),控制節(jié)點(diǎn)(能對(duì)調(diào)溫、調(diào)濕等設(shè)備進(jìn)行相關(guān)控制)用來(lái)接收計(jì)算機(jī)傳來(lái)的遠(yuǎn)程控制信息,以便對(duì)溫室環(huán)境參數(shù)進(jìn)行適當(dāng)調(diào)控。測(cè)量節(jié)點(diǎn)采集的數(shù)據(jù)沿著其他測(cè)量節(jié)點(diǎn)通過(guò)多跳的方式進(jìn)行傳輸,在傳輸過(guò)程中監(jiān)測(cè)數(shù)據(jù)可能被多個(gè)測(cè)量節(jié)點(diǎn)處理,信息經(jīng)由多跳路由后到達(dá)匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)將接收到的數(shù)據(jù)直接上傳到計(jì)算機(jī),所有數(shù)據(jù)都由計(jì)算機(jī)進(jìn)行復(fù)雜的數(shù)字信號(hào)處理,并通過(guò)數(shù)據(jù)庫(kù)對(duì)傳感器網(wǎng)絡(luò)進(jìn)行配置和管理,發(fā)布監(jiān)測(cè)任務(wù)和收集監(jiān)測(cè)數(shù)據(jù)等信息,最后這些數(shù)據(jù)還可以通過(guò)Internet與遠(yuǎn)程控制中心進(jìn)行交互,從而實(shí)現(xiàn)溫室環(huán)境的遠(yuǎn)程監(jiān)控。
2 CC2431簡(jiǎn)介
CC2431是TI公司的產(chǎn)品,它是一個(gè)真正的基于無(wú)線傳感器網(wǎng)絡(luò)ZigBee/IEEE802.15.4解決方案的片上系統(tǒng),其內(nèi)部集成了CC2420射頻收發(fā)器,工業(yè)標(biāo)準(zhǔn)增強(qiáng)型8051 MCU內(nèi)核,128 KB可編程閃存,8 KB的RAM,精確的定位引擎等豐富的片內(nèi)資源,支持硬件調(diào)試,支持基于IAR7.20以上C51開(kāi)發(fā)環(huán)境下的在線調(diào)試,提供強(qiáng)大、靈活的開(kāi)發(fā)工具。CC2431體積小、功耗低、集成度高,非常適合于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)。它可工作在4種工作模式下,且工作模式之間的轉(zhuǎn)換時(shí)間較短,因而能夠滿足超低功耗系統(tǒng)設(shè)計(jì)的要求。
3 傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件
傳感器網(wǎng)絡(luò)節(jié)點(diǎn)由傳感器測(cè)量節(jié)點(diǎn)、控制節(jié)點(diǎn)和匯聚節(jié)點(diǎn)組成。測(cè)量節(jié)點(diǎn)負(fù)責(zé)采集周圍環(huán)境信息,采集的環(huán)境信息經(jīng)多跳路由后到達(dá)匯聚節(jié)點(diǎn),最終通過(guò)Internet到達(dá)控制中心。控制節(jié)點(diǎn)用來(lái)接收計(jì)算機(jī)傳來(lái)的遠(yuǎn)程控制信息,對(duì)溫室環(huán)境參數(shù)進(jìn)行調(diào)控。
3.1 測(cè)量節(jié)點(diǎn)硬件
傳感器測(cè)量節(jié)點(diǎn)由傳感器模塊、微處理器模塊、無(wú)線通信模塊和電源模塊組成。其硬件結(jié)構(gòu)框圖如圖2所示。
(1)傳感器模塊。由不同類型的傳感芯片組成,具有對(duì)溫度、濕度和光照強(qiáng)度的感知能力。其中溫、濕度傳感器采用I2C總線數(shù)字式溫、濕度傳感器SHTll,其體積小、能耗低、兩線數(shù)字接口、溫度量程為-40℃~85℃、相對(duì)濕度量程為0%~100%RH。光照強(qiáng)度傳感器選用TSL2550D,其功耗可以滿足無(wú)線傳感器低功耗系統(tǒng)設(shè)計(jì)的要求,其總線也易于與CC2431接口。
(2)微處理器模塊。采用集成在CC2431內(nèi)部的8051 CPU。集成的CPU有4種不同的內(nèi)存空間:代碼區(qū)、數(shù)據(jù)區(qū)、擴(kuò)展數(shù)據(jù)區(qū)和特殊功能寄存器區(qū),不同的內(nèi)存空間有利于代碼和數(shù)據(jù)的分離,提高CPU對(duì)內(nèi)存的訪問(wèn)速度。
(3)無(wú)線通信模塊
①傳感器網(wǎng)絡(luò)節(jié)點(diǎn)在通信時(shí)消耗了大量的能量,選擇一款低功耗的無(wú)線通信芯片將有效地降低通信模塊的能量消耗。CC2431是一款符合ZigBee標(biāo)準(zhǔn)的低功耗通信芯片,具有快速喚醒和搜索外部設(shè)備功能,可以使節(jié)點(diǎn)更多地處于休眠狀態(tài)而節(jié)約功耗,而且其信道頻率和功耗等參數(shù)可以靈活設(shè)置。CC2431通信模塊的天線考慮到無(wú)線傳感器網(wǎng)絡(luò)通信質(zhì)量的要求,采用單極性天線,單極性天線在差分輸出與天線之間要求使用“平衡-不平衡變壓器”。
②無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)電源為電池供電系統(tǒng),選用的電池為手機(jī)專用鋰電池。為了使系統(tǒng)在電池供電時(shí),工作時(shí)間持續(xù)長(zhǎng),在設(shè)計(jì)電源模塊時(shí)要考慮到節(jié)點(diǎn)的節(jié)能問(wèn)題。CC2431提供4種電源管理模式:PM0、PM1、PM2和PM3,合理地使用這4種模式可有效地降低節(jié)點(diǎn)的能耗。
③LED燈用于顯示傳感器節(jié)點(diǎn)的運(yùn)行狀態(tài)。
(4)電源模塊。為其他模塊提供能源。
3.2 控制節(jié)點(diǎn)
控制節(jié)點(diǎn)由驅(qū)動(dòng)器模塊、微處理器模塊、無(wú)線通信模塊和電源模塊組成。驅(qū)動(dòng)器模塊能對(duì)調(diào)溫、調(diào)濕等設(shè)備進(jìn)行相關(guān)控制,其硬件結(jié)構(gòu)框圖如圖3所示。
3.3 匯聚節(jié)點(diǎn)的硬件研究
匯聚節(jié)點(diǎn)由微處理器模塊、無(wú)線通信模塊、存儲(chǔ)器模塊、以太網(wǎng)接口模塊、串行接口模塊和電源模塊組成,其硬件結(jié)構(gòu)框圖如圖4所示。
(1)存儲(chǔ)器模塊由1片Atmel公司出品的AT45DB041組成,直接接入CC2431 SPI輸入端。該芯片集成2 046頁(yè)×264 B Flash存儲(chǔ)單元,用于存儲(chǔ)傳感器重要?dú)v史數(shù)據(jù)。
(2)為提供以太網(wǎng)的接入通道,在該設(shè)計(jì)中,使用DM9161作為以太網(wǎng)的物理層接口。DM9161是一款低功耗、高性能的CMOS 芯片,支持10 MB/s和100 MB/s的以太網(wǎng)傳輸,它起編碼、譯碼、輸入和輸出數(shù)據(jù)的作用,這樣就可以將匯聚節(jié)點(diǎn)輕松連接到因特網(wǎng)以便于實(shí)現(xiàn)遠(yuǎn)程控制。
(3)串行接口模塊由1片低功耗MAX3232和COM母口組成。CC2431串口端接入MAX3232進(jìn)行電平轉(zhuǎn)換,通過(guò)COM口與計(jì)算機(jī)進(jìn)行通信。
(4)由于匯聚節(jié)點(diǎn)需要融合處理所有采集節(jié)點(diǎn)采集的數(shù)據(jù),并且需要將數(shù)據(jù)經(jīng)過(guò)較遠(yuǎn)的距離傳輸?shù)接?jì)算機(jī),因而能量消耗較大,因此其電源采用從市電轉(zhuǎn)換后介入的方式供電。
(5)LED燈用于顯示匯聚節(jié)點(diǎn)的運(yùn)行狀態(tài)。
4 TinyOS操作系統(tǒng)的移植
嵌入式操作系統(tǒng)能夠簡(jiǎn)化嵌入式系統(tǒng)的開(kāi)發(fā),確保程序運(yùn)行的穩(wěn)定性和可靠性,便于程序的維護(hù)和更新,但是由于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)是一個(gè)小型嵌入式系統(tǒng),其硬件資源非常有限,需要高效利用其有限的內(nèi)存、處理器和通信模塊,并且最大限度地減少系統(tǒng)能耗,延長(zhǎng)節(jié)點(diǎn)的使用壽命,因此傳統(tǒng)的嵌入式操作系統(tǒng)不能滿足其要求?;诖耍疚囊浦擦酸槍?duì)無(wú)線傳感器網(wǎng)絡(luò)特點(diǎn)而開(kāi)發(fā)的操作系統(tǒng)TinyOS。
4.1 TinyOS簡(jiǎn)介
TinyOS是加州大學(xué)伯克利分校開(kāi)發(fā)的一種典型的無(wú)線傳感器網(wǎng)絡(luò)操作系統(tǒng),通過(guò)nesC語(yǔ)言可以開(kāi)發(fā)基于TinyOS的應(yīng)用程序。TinyOS設(shè)計(jì)的目標(biāo)就是代碼量小、耗能低、并發(fā)性高、魯棒性好,可以適應(yīng)不同的應(yīng)用,采用輕量級(jí)線程技術(shù),事件驅(qū)動(dòng)模式,組件化編程等,從而使其成為面向無(wú)線傳感器網(wǎng)絡(luò)的操作系統(tǒng)。TinyOS提供了Main配件,以及針對(duì)某些硬件的感知組件、執(zhí)行組件、通信組件和硬件抽象組件。在這些組件的基礎(chǔ)上,用戶可以定制開(kāi)發(fā)應(yīng)用組件,然后將所有組件連接起來(lái),就構(gòu)成了整個(gè)應(yīng)用程序。
4.2 TinyOS的移植
TinyOS操作系統(tǒng)有很多版本,要移植的是TinyOS 2.0版本,采用的編譯器是Keil。TinyOS 2.0必須在Linux平臺(tái)下才能工作,而Keil則是一個(gè)Windows下的軟件,因此,要安裝一個(gè)在Windows平臺(tái)上運(yùn)行的模擬linux開(kāi)發(fā)環(huán)境的軟件——Cygwin。下面具體介紹移植步驟:
(1)安裝SmartRF04 Flash Programmer、Keil、Java 1.5 JDK、Cygwin軟件;
(2)下載TinyOS開(kāi)發(fā)必備的編譯工具的安裝包;
(3)啟動(dòng)Cygwin,并在Cygwin下安裝下載好的編譯工具安裝包;
(4)安裝TinyOS 2.0。
將下載好的TinyOS 2.0的安裝包解壓縮,將解壓好的tinyos-2.0-contrib文件夾拷貝到Cygwin\opt目錄下,此時(shí)已經(jīng)搭建好了TinyOS的開(kāi)發(fā)環(huán)境。所有的例子都在tinyos-2.0-contrib/diku/common/apps/下面。以BlinkNoTimerTask為例,在Cygwin下面輸入:cd/diku/common/apps/BlinkNoTimerTask,然后回車輸入:make cc2431em,如果順利的話,TinyOS將被編譯生成app.hex文件,只要把這個(gè)文件燒錄進(jìn)單片機(jī)就可以了。
(5)燒錄
插好仿真器,打開(kāi)SmartRF04 Flash Programmer軟件,在System-on-Chip選項(xiàng)卡下選擇app.hex文件,然后選擇“Perform actions”就可以順序燒寫(xiě)了,燒寫(xiě)成功后,TinyOS就成功移植到CC2431上了。
5 傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)
傳感器測(cè)量節(jié)點(diǎn)的主要功能就是接收PC機(jī)采集數(shù)據(jù)的指令、采集數(shù)據(jù),然后將采集的數(shù)據(jù)通過(guò)無(wú)線信道發(fā)送出去。匯聚節(jié)點(diǎn)的功能就是創(chuàng)建無(wú)線網(wǎng)絡(luò),配置網(wǎng)絡(luò)節(jié)點(diǎn)屬性,接收傳感器測(cè)量節(jié)點(diǎn)采集的數(shù)據(jù),然后通過(guò)串口上傳到計(jì)算機(jī)。傳感器測(cè)量節(jié)點(diǎn)程序結(jié)構(gòu)流程圖如圖5所示,匯聚節(jié)點(diǎn)程序結(jié)構(gòu)流程圖如圖6所示。
在農(nóng)業(yè)生產(chǎn)中,隨著規(guī)?;?jīng)營(yíng)的出現(xiàn),可能會(huì)建有很多個(gè)溫室,根據(jù)應(yīng)用的設(shè)計(jì),在每個(gè)溫室中都建有一個(gè)無(wú)線傳感器網(wǎng)絡(luò),由于溫室中的環(huán)境都比較相似,因而,每個(gè)溫室中的無(wú)線傳感器網(wǎng)絡(luò)的功能和技術(shù)也都是一樣的。如果所有溫室都通過(guò)控制中心的計(jì)算機(jī)來(lái)進(jìn)行統(tǒng)一管理,可以大大提高了工作效率,使溫室管理更加科學(xué),控制更加簡(jiǎn)單,從而達(dá)到提高作物產(chǎn)量、改善品質(zhì)、調(diào)節(jié)生長(zhǎng)周期、提高經(jīng)濟(jì)效益的最終目的。而本文介紹的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)具有功耗低、體積小、工作可靠、易于擴(kuò)展等優(yōu)點(diǎn),基于該無(wú)線傳感器網(wǎng)絡(luò)的溫室環(huán)境監(jiān)控方案將會(huì)有很好的應(yīng)用前景。
參考文獻(xiàn)
[1] 劉玉英,史旺旺.基于CC2430溫濕度監(jiān)測(cè)的無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009,25(10):130-131.
[2] 李昊生,王汝傳,沙超.基于CC2431的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)[J].電子工程師,2008,34(12):63-67.
[3] 莊雄,楊永明,丁偉.基于CC2431的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008,34(6):98-101.
[4] 張保華,李士寧,滕文星,等.基于無(wú)線傳感器網(wǎng)絡(luò)的溫室測(cè)控系統(tǒng)研究設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2008,25(5):154-157.
[5] 宋寶業(yè),許琳.帶定位引擎的射頻芯片CC2431[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(11):44-46.
[6] 王殊,閻毓杰,胡富平,等.無(wú)線傳感器網(wǎng)絡(luò)的理論及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007.