李樹江,段岳非
(沈陽工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110870)
近些年來,可控環(huán)境農(nóng)業(yè)生產(chǎn)技術(shù)研究不斷發(fā)展,目的是研制適應(yīng)中國的可控環(huán)境自動控制系統(tǒng)、信息自動采集系統(tǒng)[1]。通過檢測植物的生長環(huán)境中的各因子,根據(jù)環(huán)境因子的變化做出符合植物生長規(guī)律、利于產(chǎn)出的環(huán)境因子的調(diào)整。針對溫室大棚的空氣溫濕度、土壤濕度、光照和CO2濃度等環(huán)境因子的綜合信息采集監(jiān)控系統(tǒng)的開發(fā)[2],在提高產(chǎn)量與品質(zhì)中將發(fā)揮巨大作用。
無線傳感器網(wǎng)絡(luò)技術(shù)在溫室大棚可控環(huán)境中各信息量采集的環(huán)節(jié)上起到了革命性的作用。應(yīng)用無線通信控制傳感器采集信息,從有線到無線,大大方便了設(shè)施農(nóng)業(yè)的建設(shè)[3]。溫室大棚內(nèi)監(jiān)控環(huán)境參數(shù)多為小信息量、多信息點的數(shù)據(jù)通信,應(yīng)用傳統(tǒng)無線方式成本高、體積大,而傳感器技術(shù)也向更小、更方便使用的方向發(fā)展,集成度及能耗成為主要的考慮因素[4]。因此,滿足低成本、小體積、低能耗、低傳輸速率的近距離無線通信技術(shù)日益受到青睞,具有代表性的芯片是CC2430,它是一款專門針對2.4 GHz IEEE 802.15.4應(yīng)用的片上系統(tǒng),很好地滿足了要求。它是一種近距離、低功耗和低成本芯片,高度集成了無線射頻、微控制器、內(nèi)存、A/D轉(zhuǎn)換器、看門狗定時器及休眠定時器等部件,特別適合電池供電的應(yīng)用領(lǐng)域[5]。TinyOS是一個針對于無線傳感器網(wǎng)絡(luò)應(yīng)用的小型嵌入式操作系統(tǒng),通過它可實現(xiàn)無線傳感器網(wǎng)絡(luò)中節(jié)點組網(wǎng)通信,傳感器數(shù)據(jù)采集,網(wǎng)絡(luò)路由協(xié)議等功能[6]。
系統(tǒng)的總體結(jié)構(gòu)如圖1所示,包括前端傳感器節(jié)點、信息匯聚節(jié)點和上位機(jī)。傳感器節(jié)點對其配備的傳感器進(jìn)行讀取數(shù)據(jù),形成數(shù)據(jù)幀,同時基于無線路由通信協(xié)議組網(wǎng)通信,把數(shù)據(jù)發(fā)送到鄰近節(jié)點,每個節(jié)點具有路由功能,轉(zhuǎn)發(fā)其他節(jié)點數(shù)據(jù)到信息匯聚節(jié)點。信息匯聚節(jié)點必須在這個無線通信網(wǎng)絡(luò)中,并且是網(wǎng)絡(luò)的信息匯集中心。每收集到一個節(jié)點的數(shù)據(jù)后,通過串口發(fā)送到上位機(jī)。上位機(jī)采用基于ARM的嵌入式Linux,同時運行兩個任務(wù),一個是實時讀取串口數(shù)據(jù)并進(jìn)行數(shù)據(jù)處理,另一個是通過LCD顯示處理后的結(jié)果,即溫室大棚內(nèi)各點傳感器測量的環(huán)境因子。
圖1 系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)含有匯聚節(jié)點和傳感器節(jié)點兩種節(jié)點。無線傳感器網(wǎng)絡(luò)中的節(jié)點是網(wǎng)絡(luò)的基礎(chǔ),節(jié)點的無線通信是節(jié)點的必要功能。本系統(tǒng)中的CC2430是集高性能的8051核及CC2420射頻核心為一體的芯片,即系統(tǒng)設(shè)計中節(jié)點的處理器及無線通信單獨成為一個模塊。因此匯聚節(jié)點與傳感器節(jié)點都包含此核心模塊。
根據(jù)TI公司提供的CC2430的詳細(xì)使用手冊,這部分電路主要分為芯片最小工作系統(tǒng)電路、無線電射頻及天線電路、外部接口和調(diào)試接口3個部分。核心模塊的電路原理圖如圖2所示。
CC2430引腳特別小,封裝為QLP48。為保證芯片的穩(wěn)定工作,其外圍電路的器件選擇要滿足芯片手冊要求,并且電源必須適當(dāng)?shù)娜ヱ?,去耦電容的位置和大小,以及電源的過濾,對CC2430達(dá)到最佳性能都是關(guān)鍵條件。CC2430有3種型號,以內(nèi)部Flash大小劃分,本系統(tǒng)采用的是片內(nèi)Flash規(guī)格為128 KB的CC2430。
傳感器節(jié)點與匯聚節(jié)點的區(qū)別在于:傳感器節(jié)點包含傳感器接口電路,匯聚節(jié)點不包含該電路而具有串口通信電路,如圖3所示。傳感器節(jié)點包括空氣溫濕度、光照強(qiáng)度和土壤含水率3種類型。由于節(jié)點、傳感器類型和供電不同,因此分開進(jìn)行硬件設(shè)計。
圖3 節(jié)點硬件框圖
2.2.1 溫濕度傳感器節(jié)點
圖2 核心模塊電路原理圖
空氣溫濕度傳感器采用SHT10,它是一款數(shù)字式傳感器,具有符合I2C標(biāo)準(zhǔn)的兩線制數(shù)據(jù)通信接口,控制器通過發(fā)送指令即可對其操作。其內(nèi)部包含溫度感測和濕度感測器件、信號放大器、A/D轉(zhuǎn)換器和校準(zhǔn)存儲器。其體積小,采用CMOS工藝,可靠性更高。SHT10供電電壓為直流2.4 V~5.5 V,功耗低,特別適用于電池供電的傳感器節(jié)點應(yīng)用。
2.2.2 光照強(qiáng)度和土壤含水率傳感器節(jié)點
光照強(qiáng)度傳感器采用了魏圖農(nóng)業(yè)科技的WLSTH100傳感器,輸入線電阻高,線性度好。其抗干擾能力強(qiáng),可長距離應(yīng)用。供電電壓為直流12 V,輸出信號為4~20mA。
土壤含水率傳感器采用了魏圖農(nóng)業(yè)科技的SWCP系列土壤水分傳感器,該系列傳感器的特點是響應(yīng)速度快、工作穩(wěn)定、精度高且使用方便。其供電電壓為12 V,輸出信號為 0~2 V。
這兩種傳感器應(yīng)用方式類似,因此電路原理一樣,只是接口有所區(qū)別。此節(jié)點電路包括降壓電路、繼電器控制電路及信號調(diào)理電路。調(diào)理電路的作用是把傳感器輸出的電壓或電流信號轉(zhuǎn)變成統(tǒng)一的符合CC2430內(nèi)部A/D轉(zhuǎn)換范圍的電壓信號,通過運放實現(xiàn)阻抗匹配。
2.2.3 匯聚節(jié)點
匯聚節(jié)點包含核心模塊插槽、降壓電路及串行接口電路。電源采用外接5 V直流電源供電。外接串行接口電路主要由MAX3232構(gòu)成。
上位機(jī)選用TQ2440開發(fā)板作為實驗平臺,其硬件資源比較豐富,在這里主要應(yīng)用其串行通信接口及LCD觸摸屏,實現(xiàn)串口讀取數(shù)據(jù)和LCD屏幕顯示數(shù)據(jù)信息。
本系統(tǒng)節(jié)點的應(yīng)用程序設(shè)計是基于TinyOS操作系統(tǒng)來實現(xiàn)的,需要將TinyOS移植到CC2430上。通過添加和修改TinyOS系統(tǒng)的部分源碼,編譯形成可執(zhí)行文件,下載到CC2430內(nèi)部Flash。移植TinyOS的同時添加應(yīng)用程序代碼,即實現(xiàn)無線傳感器網(wǎng)絡(luò)的相關(guān)功能。TinyOS由nesC語言編寫,nesC應(yīng)用程序是由一個或多個組件連接起來實現(xiàn)的,組件之間的配合通過組件提供和使用的接口來完成。nesC的組件有模塊和配置兩種形式。模塊是具體的功能實現(xiàn)和對外部操作的代碼,提供一個或多個接口,模塊內(nèi)也可以包含其他內(nèi)部可重用組件的接口;配置的作用是組裝組件,對組件間要對接和關(guān)聯(lián)的接口進(jìn)行連接。
3.1.1 開發(fā)環(huán)境的建立及移植
建立工具鏈,安裝的軟件有Keil C51 7.50A、Java 2 SDK v1.5、Cygwin,把TinyOS的編譯工具的安裝包安裝到Windows XP下的Cygwin環(huán)境中,TinyOS8051wg-0.1pre4.tgz解壓到 Cygwin環(huán)境中[7]。
TinyOS是一個具有層次體系結(jié)構(gòu)的操作系統(tǒng),不同層有不同的組件。組件對不同層次的抽象和平臺相關(guān)的組件就是底層硬件的抽象[8]。在CC2430上移植工作就是添加底層硬件的抽象,能夠和系統(tǒng)組件和庫組件連接應(yīng)用。
3.1.2 傳感器節(jié)點與匯聚節(jié)點程序
傳感器節(jié)點的應(yīng)用程序主要包含無線通信協(xié)議棧代碼程序、發(fā)送與接收數(shù)據(jù)程序以及傳感器驅(qū)動程序三部分。無線通信協(xié)議棧代碼實現(xiàn)自組網(wǎng),負(fù)責(zé)拓?fù)浣Y(jié)構(gòu)的建立及維護(hù)[9];發(fā)送與接收數(shù)據(jù)程序負(fù)責(zé)數(shù)據(jù)成幀,發(fā)送或接收鄰近節(jié)點數(shù)據(jù);傳感器驅(qū)動程序?qū)鞲衅鞑僮鳎@得環(huán)境因子的原始轉(zhuǎn)換數(shù)據(jù)。圖4為CC2430內(nèi)部ADC的程序流程圖。
圖4 CC2430內(nèi)部ADC程序流程
匯聚節(jié)點的應(yīng)用程序主要包含無線通信協(xié)議棧代碼程序、發(fā)送與接收數(shù)據(jù)程序、串口驅(qū)動程序及串口發(fā)送和接收程序三部分。
上位機(jī)采用嵌入式Linux系統(tǒng),基于QT4.5編寫界面與應(yīng)用程序,應(yīng)用多線程編程方式,以實現(xiàn)界面顯示與串口讀取數(shù)據(jù)同時進(jìn)行[10-11]。主界面包含序號、位置、類型、數(shù)值和單位5項,可同時顯示5個不同傳感器節(jié)點數(shù)據(jù),序號可以通過自選框的上下箭頭改變。界面下有日期與時間顯示。按鈕設(shè)置了設(shè)置鍵、啟動鍵和停止鍵3個。
首先測試傳感器節(jié)點與匯聚節(jié)點功能,連接硬件,匯聚節(jié)點與PC串口連接,在Linux系統(tǒng)下運行采集程序,界面效果與數(shù)據(jù)顯示如圖5所示。
圖5 Linux系統(tǒng)運行界面
測試成功后,移植到開發(fā)板,需要重新定義串口,編譯下載,設(shè)置程序開機(jī)自啟動。實驗結(jié)果表明,程序運行正常,可應(yīng)用觸摸屏操作界面。圖6為系統(tǒng)硬件圖。
圖6 系統(tǒng)硬件圖
應(yīng)用多線程編程可使上位機(jī)界面響應(yīng)觸摸操作速度快,基于CC2430芯片設(shè)計制作的模塊電路運行良好,焊接所用焊錫以及貼片電阻、電容品質(zhì)很關(guān)鍵。實驗證明,所設(shè)計無線模塊傳輸距離在都10 m以上。本系統(tǒng)硬件結(jié)構(gòu)簡潔,傳感器功耗低,滿足了節(jié)能的需求。
[1]杜尚豐,李迎霞,馬承偉,等.中國溫室環(huán)境控制硬件系統(tǒng)研究進(jìn)展[J].農(nóng)業(yè)工程學(xué)報,2004,20(1):7-12.
[2]鄭文剛,趙春江,王紀(jì)華.溫室智能控制的研究進(jìn)展[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2004(2):8-11.
[3]KALRA A, CHECHI R, KHANNA R.Role of ZigBee technology in agriculture sector[C].National Conference on Computational Instrumentation, 2010(3): 151-152.
[4]VALADA A, KOHANBASH D, KANTOR G.Design and development of a wireless sensor network system for precision agriculture[D].Pittsburgh: Carnegie Mellon University, 2010.
[5]梁光勝,劉丹娟,郝福珍.基于 CC2430的 Zigbee無線網(wǎng)絡(luò)節(jié)點設(shè)計[J].電子設(shè)計工程,2010,18(2):15-18.
[6]卜天然,呂立新,汪偉.基于TinyOS無線傳感器網(wǎng)絡(luò)的農(nóng)業(yè)環(huán)境監(jiān)測系統(tǒng)設(shè)計 [J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2009(2):23-26.
[7]徐敬東,賴錫盛.TinyOS 2.0在 CC2430上的移植[J].計算機(jī)工程,2011,37(2):256-260.
[8]Ossama Mohamed Younis.An energy-efficient architecture for wirelss sensor networks[D].Indiana: Purdue University,2005.
[9]顏庭莘,孫利民.TinyOS路由協(xié)議原理及性能評估[J].計算機(jī)工程,2007,33(1):112-114.
[10]李國政,張強(qiáng),楊紅衛(wèi),等.ARM-Linux嵌入式系統(tǒng)在農(nóng)業(yè)大棚中的應(yīng)用[J].現(xiàn)代電子技術(shù),2007(6):19-21.
[11]張保立,王俊,張發(fā)明,等.基于 QT_Embedded和 Qtopia的嵌入式溫室無線測控系統(tǒng)GUI設(shè)計[J].電子技術(shù),2008(6):26-29.