吳其洲, 姚舜才, 王忠慶
(中北大學信息與通信工程學院, 山西 太原 030051)
在農(nóng)業(yè)生產(chǎn)中,溫室環(huán)境的監(jiān)控是一個非常重要的內(nèi)容.溫室是農(nóng)業(yè)生產(chǎn)中需要進行采光的建筑,因此,溫室的采光性是一項很重要的指標.而與此同時,溫室內(nèi)的溫度、濕度的變化也需要加強監(jiān)控.一般的溫室環(huán)境監(jiān)控系統(tǒng)由有線傳輸并通過工業(yè)總線構成網(wǎng)絡來實現(xiàn),這一方法適用于便于敷設傳輸線的場合.然而,在很多情況下溫室現(xiàn)場的情況很難于敷設信號傳輸線.這樣一來,有線傳輸?shù)谋O(jiān)控系統(tǒng)就很難達到系統(tǒng)所要求的目的了[1].近些年來,無線傳感網(wǎng)絡及其接入技術有了一定的發(fā)展,并應用在了很多場合.
本文運用新型的集成傳感器(無線傳感節(jié)點)tmote Sky對溫室的環(huán)境情況進行采樣和檢測,構成了小型的無線傳感監(jiān)控網(wǎng)絡.在此無線傳感檢測系統(tǒng)平臺上,應用專用無線傳感系統(tǒng)TinyOS及其編程語言nesC編寫了相應的無線節(jié)點模塊,并使用LabWindows軟件作為用戶檢測界面,實現(xiàn)了在溫室環(huán)境監(jiān)控系統(tǒng)的集成化.
本溫室環(huán)境監(jiān)控系統(tǒng)從本質(zhì)上來講是一個無線傳感網(wǎng)絡的系統(tǒng),與普通的無線傳感網(wǎng)絡一樣,如果要實現(xiàn)信號在一定距離上能夠進行可靠的監(jiān)控,則整個無線傳感網(wǎng)絡需要盡可能的降低能量消耗.故而,對于節(jié)點的傳感器件,以及整個無線網(wǎng)絡節(jié)點所使用的硬件模塊裝置必須滿足低功耗的要求.基于以上的總體考慮,本文選用了由美國Moteiv Corporation公司所生產(chǎn)的tmote Sky作為本無線傳感網(wǎng)絡的節(jié)點.tmote Sky是工業(yè)級,用于無線傳感器網(wǎng)絡、監(jiān)控系統(tǒng)等領域的低功耗無線傳感節(jié)點模塊,它使用USB口線并按IEEE 802.15.4標準協(xié)議構成.在此模塊上包含有微處理器、無線傳輸/接收、天線、外部閃存以及傳感器5大部分,此外還預留了若干擴展連接口線.模塊的微處理器部分由TI MSP430構成,具有8通道的外部和內(nèi)部A/D轉(zhuǎn)換口,使用USB口線與上位計算機通信;無線傳輸/接收部分使用CC2420芯片,這是一款基于IEEE 802.15.4標準協(xié)議的芯片,可以提供PHY和MAC功能,是非??煽康臒o線傳輸芯片;tmote Sky的天線內(nèi)置,可在室內(nèi)覆蓋50 m的范圍以及在室外覆蓋125 m的范圍;外部閃存使用ST M25P80芯片,這種芯片具有1 M的數(shù)據(jù)存儲空間,與微處理器之間通過SPI總線相連[2].在tmote Sky上還集成了3種傳感器SHT11,分別是溫度傳感器、光傳感器以及濕度傳感器,用戶可以根據(jù)不同的系統(tǒng)需要進行選用.根據(jù)本系統(tǒng)的現(xiàn)場情況及實際需要,作者選用了溫度傳感器及光傳感器,這兩種集成傳感器模塊可以被外部校準,同時也具有數(shù)字量輸出的功能,校準參數(shù)均被存儲在E2PROM中.溫度和光傳感器的各項指標如表1所示.
表1 傳感器的各項參數(shù)
系統(tǒng)硬件平臺在進行安裝調(diào)試之前應該首先對傳感器進行校準和一些必要的處理,具體的處理方法是采用節(jié)點廠家所提供的相關校準程序以及校準參數(shù)對傳感器進行校準和測試,然后可利用公式(1)對溫度傳感器所采集和轉(zhuǎn)化后的數(shù)字量進行折算,這樣便得到了校準后的電壓值:
(1)
在進行溫度監(jiān)控和實施數(shù)據(jù)采樣時,該模塊規(guī)定了采樣時間必須大于30μs.由于tmote Sky的光傳感器是采用了Hamamatsu公司的傳感器,故具體的數(shù)據(jù)可在http://www.hamamatsu.com網(wǎng)站找到.
進行完上述的工作以后就可以將tmote Sky模塊的夾具安裝在溫室內(nèi)的需要檢測的位置,由于此時還沒有對本系統(tǒng)中傳感器網(wǎng)絡中的各個節(jié)點的tmote Sky進行編程,可先安裝夾具,并不加裝tmote Sky節(jié)點.
由于本系統(tǒng)是一個無線傳感器網(wǎng)絡的系統(tǒng),因此在系統(tǒng)軟件的設計上選用了一種專門針對無線傳感網(wǎng)絡的操作系統(tǒng)——TinyOS作為軟件編程平臺.TinyOS嵌入式系統(tǒng)是一個開源的操作系統(tǒng),它是由美國加州大學伯克萊分校開發(fā)的,主要在無線傳感網(wǎng)絡等方面應用, 整個軟件采用了一種基于組件的軟件架構方式.TinyOS嵌入式系統(tǒng)在構建一個無線傳感網(wǎng)絡時需要一個與計算機相連接的基站,以便向各個節(jié)點發(fā)出信息,控制各個節(jié)點的工作狀態(tài),并收集和處理各節(jié)點所采集到的相關信息.TinyOS軟件在控制臺基站發(fā)出管理和監(jiān)控的相關信息,然后由各個終端節(jié)點通過樹形網(wǎng)絡以及中繼節(jié)點進行信息的互相傳遞.TinyOS嵌入式系統(tǒng)提供了很多編程組件以及應用程序(這些資源主要在tinyos-1.x/apps子目錄下),并使用“任務排隊,事件驅(qū)動”的編程模式[3].
在進行系統(tǒng)編程時,主要使用nesC(network embedded system C)編程語言,這種語言是類C的高級結構化編程語言,是對傳統(tǒng)C語言的進一步擴展.nesC語言主要由“架構” (Configuration)和“模塊” (Module)組成,此外還有各種相應的“接口”(Interface)和其他的一些組件.
本系統(tǒng)的軟件置于TinyOS嵌入式編程軟件cygwin/opt/tinyos-1.x/apps的子目錄下,共計有3個文件夾文件,其中兩個文件夾文件是分別用來進行溫度和光照的數(shù)據(jù)信息采集和進行無線傳送的,另外一個文件夾文件是實現(xiàn)無線傳送的中繼功能的.這是因為在實際的環(huán)境參數(shù)測試和數(shù)據(jù)傳輸過程中,如果單純使用溫度、光照采集單元電路以及無線傳送單元電路并不能將所有節(jié)點所采集的信息送至基站中控臺,必須使用中繼節(jié)點,以便增強信號的強度和延長其傳輸?shù)木嚯x.
在環(huán)境參數(shù)測試采集和信息無線傳送的文件中,包含了一個“架構” (Configuration)和一個“模塊” (Module),另外還有相應的硬件支持平臺文件、系統(tǒng)的配置文件以及相應的自述文件.在系統(tǒng)總的“架構”下,溫度監(jiān)控總共使用了6個子“架構”、3個“模塊”和5個“接口”.整個無線傳感網(wǎng)絡系統(tǒng)的“架構”及“模塊” 之間的關系如圖1所示.
圖1 溫度采集與傳送文件的結構圖
在將系統(tǒng)及其各模塊之間相互關系進行合理的安排后,還必須對該系統(tǒng)的各個模塊進行基于nesC語言的編程.這些編程工作主要集中在“模塊”—SenseToRfmYM上,這個模塊的核心任務主要是完成溫度檢測、越限報警以及進行無線傳輸上.其核心指令語句如下:
……
task void TempRfmTask (){
uint16_t TValue;
atomic{
TValue = Stadvl;
}
async event result_t ADCY.dataReady(uint16_t data) {
atomic{
Stadvl = data;
}
post TempRfmTask ();
return SUCCESS;
}……
這段nesC程序中設置了溫度采集和傳輸?shù)摹叭蝿铡薄猼ask void TempRfmTask (),并沒有帶回任何返回值,程序中使用了“接口”IntOutputY中的“指令”output和ADCY的“事件” dataReady.首先,系統(tǒng)要進行數(shù)據(jù)采集和節(jié)點地址的確認,在確認成功基礎上,將相應的檢測值以及節(jié)點的地址發(fā)送出去.在系統(tǒng)中,無線射頻輸入輸出模塊相應的軟件子目錄:cygwin/opt/tinyos-1.x/tos/lib/counters的IntMsg.h文件必須按照系統(tǒng)的網(wǎng)絡構成方式進行相應的修改[4].
圖2 光采集與傳送文件的結構圖
在光的強度采集及其無線射頻傳送的文件中,同樣也包含了一個“架構” (Configuration)以及一個“模塊” (Module),此外還有硬件平臺支持文件、系統(tǒng)配置文件以及自述文件.在系統(tǒng)的總架構下,光強度監(jiān)控文件共應用了5個子“架構”、2個“模塊”以及6個“接口”.整個無線傳感網(wǎng)絡系統(tǒng)的“架構”及“模塊” 之間的關系如圖2所示.
在光強度監(jiān)控的這部分軟件程序中,需要調(diào)用包含在tos/platform/telos子目錄下Hamamatsu.h的頭文件,而其他的軟件程序構建大致與溫度監(jiān)控部分的軟件程序相似[5].
系統(tǒng)中,無線射頻傳送的中繼功能文件僅包含一個“架構”的硬件平臺文件、系統(tǒng)配置文件以及自述文件.在總的系統(tǒng)架構下,本監(jiān)控系統(tǒng)共應用了3個子“架構”、2個“接口”.整個系統(tǒng)的“架構”及“模塊” 之間的關系如圖3所示.
這部分的軟件指令相對來講都比較簡單,茲不贅述.
圖3 中繼文件的結構圖
在整個系統(tǒng)的初步編程和調(diào)試進行完稱后,須進行仿真模擬實驗.本文所采用的仿真工具是TinyOS的專用仿真模擬工具Tossim,這種仿真工具具有準確、完備以及適于連接和仿真、模擬大規(guī)模無線傳感網(wǎng)絡等特點.本系統(tǒng)應用這種仿真工具對系統(tǒng)的運行情況進行了仿真模擬.仿真試驗結果表明,整個系統(tǒng)運行正常.
在系統(tǒng)的仿真試驗進行完畢以后,就投入了整個系統(tǒng)的現(xiàn)場實際調(diào)試,系統(tǒng)總共投入20個節(jié)點,分布于受測溫室的不同位置.TinyOS是一種非圖形化的嵌入式系統(tǒng),它本身只提供檢查采集信號的相關指令,而對于采集回來的信號是不能夠直接直觀地表示出來的.為了使技術及管理人員對于溫室環(huán)境的總體情況有一個清晰的了解,在接收相應的信號后,本系統(tǒng)采用由LabWindows軟件進行編程,并提供了友好的用戶界面.該人機接口界面是基于串口通信的一種圖形化界面.進行監(jiān)控操作時,首先須在一個tmote Sky的節(jié)點上下載opt/tinyos-1.x/apps/TOSBase的程序,并將改程序載入上位計算機的USB口,將上位機作為通信基站[6].由于LabWindows軟件提供了一種串口通信界面,因此系統(tǒng)在進行信號采集時應首先將基站的USB接口口虛擬為一個串行通信的接口.將系統(tǒng)所要求的波特率、采樣時間等參數(shù)按照系統(tǒng)的相關要求設定完全以后,開啟系統(tǒng)界面,就可讀出由無線傳感網(wǎng)絡的各節(jié)點送回的溫室中溫度的實時信息,如圖4所示.同時,也可以顯示出接收到網(wǎng)絡各節(jié)點送回的光強度實時信息,如圖5所示.
圖4 基站收到的某節(jié)點的溫度信號
圖5 基站收到的某節(jié)點的光照信號
在本系統(tǒng)中,tmote Sky的硬件平臺上雖然提供了濕度檢測單元,但由于目前在TinyOS中仍沒有相應的調(diào)理電路模塊,因此本系統(tǒng)沒有對濕度進行相應的監(jiān)控.在整個試驗的過程中,無線傳感網(wǎng)絡監(jiān)控系統(tǒng)運行穩(wěn)定、正常、可靠,達到了用戶所要求的各項指標.
參考文獻
[1] M. Rabbat and R. Nowak. Distributed Optimization in Sensor Networks[Z]. IPSN, Berkeley, CA, 2004.
[2] http://www.moteiv.com[EB/OL],2010-09-20.
[3] http://www.crossbow.com[EB/OL],2010-11-17.
[4] R. Willett, A. Martin, R. Nowak. Backcasting: Adaptive Sampling for Sensor Networks[R]. Proceedings of IPSN, 2004.
[5] J. Aldrich, C. Chambers, D. Notkin. Architectural Reasoning in ArchJava[R].European Conference on Object Oriented Programming (ECOOP),2002.
[6] R. Szewczyk, A. Mainwaring, J. Polastre,etal. An Analysis of a Large Scale Habitat Monitoring Application[R]. Proc. of SenSys ′04, 2004.