龍威林,高 藝
(天津現(xiàn)代職業(yè)技術(shù)學(xué)院,天津 300350;南開大學(xué)信息學(xué)院,天津 300071)
無線傳感器網(wǎng)絡(luò)(WSN)技術(shù)是在電系統(tǒng)(MEMS)技術(shù)、片上系統(tǒng)(SOC)技術(shù)、無線通信和低功耗嵌入式技術(shù)等先進(jìn)技術(shù)的基礎(chǔ)上發(fā)展起來的。無線傳感器網(wǎng)絡(luò)技術(shù)實現(xiàn)了數(shù)據(jù)的采集、處理和傳輸,該技術(shù)的優(yōu)點有:功耗低、成本低、分布式、自組織等等。因其諸多特點被廣泛的應(yīng)用于信息感知領(lǐng)域,并在很大程度上推進(jìn)了信息感知技術(shù)的發(fā)展。
智慧農(nóng)業(yè)是農(nóng)業(yè)在先進(jìn)的信息科學(xué)技術(shù)的促進(jìn)下發(fā)展到的高級階段,通過在農(nóng)田環(huán)境部署的各類傳感器節(jié)點,以及將節(jié)點連接起來的無線通信網(wǎng)絡(luò),實現(xiàn)了農(nóng)業(yè)生產(chǎn)真正的智慧化,即能夠做到無時不在、無處不在的智慧監(jiān)測、智慧分析、智慧預(yù)警,而農(nóng)業(yè)生產(chǎn)者在智慧農(nóng)業(yè)的指導(dǎo)下能夠?qū)崿F(xiàn)科學(xué)管理、科學(xué)預(yù)測、科學(xué)決策,實現(xiàn)農(nóng)業(yè)生產(chǎn)領(lǐng)域的新的變革。
利用無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集技術(shù),智慧農(nóng)業(yè)環(huán)境信息采集系統(tǒng)對土壤溫濕度、等環(huán)境參數(shù)進(jìn)行全天候不間斷的監(jiān)測,采集到的各項參數(shù)數(shù)據(jù)通過匯聚節(jié)點傳輸,最終為監(jiān)控人員所掌握。為了提高系統(tǒng)的擴(kuò)展性與可靠性,系統(tǒng)采用自組織網(wǎng)絡(luò)結(jié)構(gòu)與星型網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合的分層網(wǎng)絡(luò)結(jié)構(gòu),提出了一種基于太陽能的能量供給方案。該方案能夠解決簇首節(jié)點的能量供給問題。系統(tǒng)內(nèi)簇首節(jié)點軟件基于μC/OS-II操作系統(tǒng),并以更好的完成各任務(wù)的調(diào)度為目的對系統(tǒng)進(jìn)行了優(yōu)化。智慧農(nóng)業(yè)是農(nóng)業(yè)生產(chǎn)的高級階段,依托部署在農(nóng)業(yè)生產(chǎn)現(xiàn)場的各種傳感節(jié)點和無線通信網(wǎng)絡(luò)實現(xiàn)農(nóng)業(yè)生產(chǎn)環(huán)境的智能感知、智能預(yù)警、智能決策、智能分析、為農(nóng)業(yè)生產(chǎn)提供精準(zhǔn)化種植、可視化管理、智能化決策。
智慧農(nóng)業(yè)環(huán)境信息采集系統(tǒng)利用基于無線傳感器網(wǎng)絡(luò)的大范圍數(shù)據(jù)采集技術(shù),對土壤溫濕度、酸堿性等環(huán)境參數(shù)進(jìn)行全天候的監(jiān)測。采集到的各項參數(shù)數(shù)據(jù)通過匯聚節(jié)點傳輸,最終為監(jiān)控人員所掌握。通過分層式的網(wǎng)絡(luò)結(jié)構(gòu)——上層采用自組織網(wǎng)絡(luò)結(jié)構(gòu),下層采用星型網(wǎng)絡(luò)結(jié)構(gòu),系統(tǒng)的擴(kuò)展性和可靠性有著很大的提升。系統(tǒng)還提出了一種基于太陽能的能量供給方案,該方案能夠解決簇首節(jié)點的能量供給問題。系統(tǒng)內(nèi)簇首節(jié)點在μC/OS-II操作系統(tǒng)的環(huán)境下運行,并對μC/OS-II操作系統(tǒng)進(jìn)行了個性化的優(yōu)化。
無線傳感器網(wǎng)絡(luò)通信協(xié)議的復(fù)雜度、有效性,均與網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)有著密切的關(guān)系。因此,如何設(shè)計一種有效、合理、實用的無線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是系統(tǒng)要解決的關(guān)鍵問題之一。本系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)引入了分層的思想,分為上層、下層兩部分:上層為簇首;下層為傳感器節(jié)點??紤]到系統(tǒng)的實際需求,上層采用自組織網(wǎng)絡(luò)結(jié)構(gòu),下層采用星型網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。簇首的功能特性區(qū)別于一般傳感器節(jié)點:一般來說,所有簇首均包含相同的MAC、路由、管理等功能協(xié)議,而一般傳感器節(jié)點則沒有路由、管理及匯聚處理等功能。采用這種分層式的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),系統(tǒng)的擴(kuò)展性大大提高,特別適合集中管理的情況,系統(tǒng)建設(shè)成本也大大削減,網(wǎng)絡(luò)覆蓋率和可靠性也有一定的提高。
圖1 系統(tǒng)的分層式網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
本系統(tǒng)節(jié)點分為傳感器節(jié)點和簇首節(jié)點兩種類型。
無線傳感器節(jié)點可以按功能劃分為四類模塊:傳感器、處理器、無線通信和能量供應(yīng)模塊。其中,傳感器模塊能夠?qū)崿F(xiàn)所監(jiān)測的農(nóng)業(yè)生產(chǎn)現(xiàn)場中各項數(shù)據(jù)的采集以及數(shù)據(jù)的轉(zhuǎn)換;處理器模塊控制傳感器節(jié)點的各項功能,包括節(jié)點的操作、存儲、數(shù)據(jù)處理;不同傳感器節(jié)點的無線通信模塊相互之間進(jìn)行無線通信;能量供應(yīng)模塊以微型電池為能量來源,為傳感器節(jié)點提供能量。傳感器節(jié)點結(jié)構(gòu)如圖2所示。
本文以基于SHT11的溫濕度采集模塊為例介紹傳感器模塊。SHT11是一款經(jīng)典的數(shù)字輸出的溫濕度傳感器芯片,該模塊集溫濕度感測功能、A/D轉(zhuǎn)換功能等功能于一體,精確度高、響應(yīng)快、抗干擾能力強(qiáng)。
處理器模塊采用的是TI公司生產(chǎn)的MSP430 F149處理器,MSP430 F149是一款超低功耗的16位 RISC混合信號控制器,能夠在低電壓下以超低功耗狀態(tài)工作,RAM保持模式0.1μA,實時時鐘模式0.7μA,工作模式200μA/MIPS,在6μs之內(nèi)快速從待機(jī)模式喚醒,解決了制約無線傳感網(wǎng)絡(luò)的能耗問題,基于以上優(yōu)點,采用MSP430F149作為CPU的優(yōu)點是非常突出的。
圖2 傳感器節(jié)點結(jié)構(gòu)
考慮到無線傳輸?shù)膫鞲衅鞴?jié)點之間的相互距離不會太遠(yuǎn),因此,系統(tǒng)采用基于nrf24L01的無線通信模塊。該模塊適用于近距離的無線通信傳輸,具有低功耗、支持高速跳頻、體積小、外圍器件少、配置簡單、且使用兩層PCB板成本低等優(yōu)點。該模塊可通過SPI寫入數(shù)據(jù),寫入數(shù)據(jù)的速率高至10 Mb/s,數(shù)據(jù)傳輸率高至2 Mb/s,支持自動應(yīng)答、自動再發(fā)射等功能。
系統(tǒng)對簇首節(jié)點的數(shù)據(jù)處理能力和網(wǎng)絡(luò)傳輸能力都有著更高的要求。
因此,中央處理器采用STM32F103ZE高性能的ARM?CortexTM-M3處理器,具有最高72MHz處理頻率及1.25DMips/MHz的性能,且資源豐富,功耗較低。
簇首節(jié)點采用短距離無線通信模塊nrf24L01完成簇內(nèi)數(shù)據(jù)傳輸,采用遠(yuǎn)距離ZigBee無線通信模塊DRF1605H。該模塊內(nèi)置無線放大器,能夠大幅提高發(fā)射信號或接收信號的功率,傳輸最大距離遠(yuǎn)至1.6公里。而且,每個節(jié)點都非常靈活,隨時可以實現(xiàn)數(shù)據(jù)的發(fā)送/接收,同時,也可作為路由器供其它節(jié)點信息傳輸之用。該模塊還能夠自主計算各項數(shù)據(jù)的傳輸路由。
簇首節(jié)點需要的能量較大,為了更好地解決能量供給問題,設(shè)計了基于太陽能的能量供給系統(tǒng),由以下部分構(gòu)成:一是將太陽能轉(zhuǎn)化為電能的太陽能電池板,構(gòu)成了能量收集器;二是將太陽能電池獲取的能量存儲起來的超級電容,構(gòu)成了能量存儲器;還包括基于CN3063的能量管理單元,作用是太陽能電池的充電管理。具體結(jié)構(gòu)如圖3所示。
本系統(tǒng)設(shè)計了三種工作模式:定時采集模式,閾值報警模式,實時查詢模式,分別說明如下:
定時采集模式下,在無線網(wǎng)絡(luò)系統(tǒng)自動組網(wǎng)完成之后,簇首節(jié)點定時收集簇內(nèi)各傳感節(jié)點的信息,保存接收到的數(shù)據(jù)并定時向管理節(jié)點傳輸。
閾值報警模式下,當(dāng)傳感節(jié)點采集到的信息超閾值時,立即發(fā)送報警信息至簇首節(jié)點。簇首節(jié)點接收到報警信息后,立即將其傳送給管理節(jié)點。
實時查詢模式下,對于任一傳感器的節(jié)點信息,管理節(jié)點都有權(quán)實時查詢。實時查詢的具體步驟為:首先,管理節(jié)點向傳感器節(jié)點發(fā)出一條查詢指令,在簇首節(jié)點接收到指令之后,收集簇內(nèi)各傳感器節(jié)點的信息,并將所有收集到的傳感器節(jié)點信息發(fā)送給管理節(jié)點。
由于傳感節(jié)點軟件結(jié)構(gòu)相對簡單,本文以簇首節(jié)點軟件設(shè)計為主進(jìn)行介紹。
圖3 基于太陽能的能量供給系統(tǒng)
簇首節(jié)點主機(jī)板軟件以μC/OS-II作為操作系統(tǒng),完成各任務(wù)的調(diào)度。μC/OS-II作為一種操作系統(tǒng)內(nèi)核,具有可移值、可植入ROM、可裁剪、搶占式、實時多任務(wù)操作等優(yōu)點,具有任務(wù)調(diào)度與管理、時間和內(nèi)存管理、任務(wù)間通信和同步等功能。μC/OS-II目前是各種微處理器、數(shù)字信號處理器和微控制器的主要操作系統(tǒng)。
該系統(tǒng)移植了針對嵌入式應(yīng)用開發(fā)的圖形界面支持系統(tǒng)ucGUI,基于FTF LCD設(shè)計了基于圖形的人機(jī)交互界面,實現(xiàn)了數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)顯示、無線傳輸?shù)裙δ?。系統(tǒng)軟件結(jié)構(gòu)框圖如圖4所示。
圖4 系統(tǒng)軟件結(jié)構(gòu)框圖
簇首節(jié)點上電后,首先,簇首節(jié)點進(jìn)行硬件初始化,然后主干網(wǎng)開始組網(wǎng),所有簇首節(jié)點都要向管理節(jié)點發(fā)送并登記自己的地址。組網(wǎng)結(jié)束后,由管理節(jié)點向所有簇首節(jié)點傳送傳感節(jié)點表列。簇首節(jié)點對于接收到的表列要進(jìn)行驗證。具體驗證的方法是,簇首節(jié)點向表列中的傳感器節(jié)點地址發(fā)出驗證信息,如果能夠收到回應(yīng),則表列中登記的地址正確,予以保留;如無法收到回應(yīng),則說明表列中的地址錯誤,簇首節(jié)點將對錯誤的地址進(jìn)行刪除。
簇首節(jié)點如需判斷是否有等待加入的新傳感器節(jié)點,則需要廣播自己的地址。如果接收到新節(jié)點的地址,則說明該節(jié)點在等待被加入,簇首節(jié)點將收到的地址加入表列,并反饋給該節(jié)點一個ACK確認(rèn)信號。按照以上的步驟,可以不斷的判斷是否有等待加入的傳感節(jié)點并將其加入到網(wǎng)絡(luò)當(dāng)中來,實現(xiàn)無線網(wǎng)絡(luò)的組織和更新。簇首節(jié)點組網(wǎng)流程如圖5。
對于有等待加入無線傳感網(wǎng)絡(luò)的新傳感節(jié)點,需要接收到簇首節(jié)點廣播的簇首節(jié)點地址之后,向該地址發(fā)送自己的節(jié)點地址。如在發(fā)送之后,接收到簇首節(jié)點返回的ACK確認(rèn)信號,則說明已被加入無線傳感網(wǎng)絡(luò)當(dāng)中。如在預(yù)設(shè)的時間之內(nèi),沒有接收到確認(rèn)信號,則需要重新詢問,即重新發(fā)送自己的節(jié)點地址至簇首節(jié)點,并等待簇首節(jié)點的回應(yīng)。傳感節(jié)點組網(wǎng)如圖6。
圖5 簇首節(jié)點組網(wǎng)流程圖
圖6 傳感節(jié)點組網(wǎng)流程圖
因為μC/OS-II作為嵌入式操作系統(tǒng),具有可裁減的優(yōu)點,故可以根據(jù)需求對其進(jìn)行配置。例如,可以關(guān)閉沒有需求的功能,這樣能夠提高系統(tǒng)效率,節(jié)約內(nèi)存空間。文件OS_CFG.H中,以#define語句的形式保存了μC/OS-II的初始化配置選項,將對應(yīng)的語句置位表示使能,清零表示關(guān)閉。
隨著硬件節(jié)點的不斷的改進(jìn)設(shè)計,驅(qū)動程序也進(jìn)行了不斷的編寫,存在著結(jié)構(gòu)較復(fù)雜、代碼效率較低等缺點。所以,也需要對硬件驅(qū)動進(jìn)行優(yōu)化。在優(yōu)化過程中,優(yōu)化驅(qū)動時序,能夠提高驅(qū)動的效率;對驅(qū)動進(jìn)行模塊化設(shè)計,函數(shù)接口進(jìn)行封裝,則易于管理和維護(hù)修改。
基于本文的系統(tǒng)設(shè)計,實現(xiàn)了智慧農(nóng)業(yè)環(huán)境信息采集系統(tǒng),并在某溫室大棚中進(jìn)行了測試。
利用傳感節(jié)點和數(shù)據(jù)中心節(jié)點,可以觀察到大棚中溫濕度的變化。如圖 (a)中,這是某傳感節(jié)點上的液晶顯示器所顯示的實時采集的溫濕度值,其中黃色曲線代表傳感節(jié)點采集到的濕度值,紅色曲線代表著采集到的溫度值。圖(b)中反映的是數(shù)據(jù)中心節(jié)點接收到的該簇中所有傳感節(jié)點采集的信息。圖(c)和(d)中分別反映了當(dāng)所監(jiān)測的環(huán)境中溫濕度發(fā)生變化的時候,傳感節(jié)點采集的數(shù)據(jù)和曲線的變化。
(a) 系統(tǒng)實時采集的溫濕度值 (b)數(shù)據(jù)中心節(jié)點接收到的傳感器節(jié)點信息 (c)(d)傳感器節(jié)點溫濕度曲線圖圖7 系統(tǒng)顯示器顯示的數(shù)據(jù)和曲線圖
基于無線傳感器網(wǎng)絡(luò)設(shè)計的智慧農(nóng)業(yè)環(huán)境信息采集系統(tǒng)采用了分層網(wǎng)絡(luò)結(jié)構(gòu),擴(kuò)展性好,可靠性高。簇首節(jié)點需要的能量較大,為了更好地解決能量供給問題,提出了基于太陽能的能量供給系統(tǒng)。實驗證明,該系統(tǒng)在實際運行中效果良好,能夠在農(nóng)田管理和農(nóng)業(yè)種植等多方面為農(nóng)業(yè)工作者提供科學(xué)可靠的環(huán)境信息以供參考。