胡國強+李茵++蔚繼承



摘 要: 針對農業生產環境中信息監測點分散和學校現有無線傳感網絡(WSN)的不足,采用移植性強支持6LoWPAN協議棧的Contiki嵌入式操作系統在STM32平臺上進行農業環境信息監測傳感器節點設計;在DDWrt上實現了支持6LoWPAN協議棧的IPv4/IPv6雙棧邊緣路由器,將監測到的農業環境信息轉發到IPv4/IPv6網絡,最終實現了基于6LoWPAN的農業信息傳感系統。在校園網環境下測試了農業環境信息傳感節點與測試機網絡的連通性,測試結果表明,基于6LoWPAN協議的無線網關與農業環境信息監測傳感節點通過6LoWPAN協議可以正常通信,用戶可通過CoAP協議訪問6LoWPAN無線傳感器網絡。
關鍵詞: 6LoWPAN; CoAP; WSN; Contiki; 農業環境信息
中圖分類號: TN915.04?34; TP393.03 文獻標識碼: A 文章編號: 1004?373X(2016)23?0152?05
Design and implementation of agri?environmental information sensing
system based on 6LoWPAN and CoAP
HU Guoqiang1, LI Yin2, WEI Jicheng2
(1. Network and Education Technology Center, Northwest A&F University, Yangling 712100, China;
2. College of Information Engineering, Northwest A&F University, Yangling 712100, China)
Abstract: To overcome the insufficient of disperse information monitoring points in agricultural production environment and wireless sensor network (WSN) existing in college, the strong portability embedded operating system Contiki supporting 6LoWPAN protocol stack is adopted to design the agri?environmental monitoring sensor node on STM32 platform. The IPv4/IPv6 double?stack edge router supporting 6LoWPAN protocol stack was realized on DDWrt. The monitored agri?environmental information is transmitted to the IPv4/IPv6 network to realize the agricultural information sensing system based on 6LoWPAN. The connectivity between agri?environmental information sensor node and tester network was tested in campus network environment. The test results show that the 6LoWPAN protocol based wireless gateway can communicate with agri?environmental information monitoring sensor nodes via 6LoWPAN protocol normally, and users can access the 6LoWPAN wireless sensor networks via CoAP protocol.
Keywords: 6LoWPAN; CoAP; WSN; Contiki; agri?environmental information
0 引 言
近年來,隨著高性能、低成本嵌入式技術的發展,受業界廣泛關注的無線傳感器網絡WSN (Wireless Sensor Network,)已在農業環境信息監測方面得到了初步應用[1?3]。WSN是由部署在一定范圍內用于傳感溫度、空氣濕度、光照強度、土壤溫度、土壤濕度等物理現象的傳感器節點組成[4]。無線傳感器網絡在信息采集方面的廣泛應用極大地促進了無線傳感器網絡在各個領域的研究發展[5]。現有的無線傳感網絡技術主要有兩大類:第一類為非IP技術類型,比如大規模使用的ZigBee組網技術;另一類為基于IP的技術,比如uIPv6協議 [6]。
隨著IPv4/IPv6網絡和無線傳感網絡的飛速發展,將IPv6網絡和無線傳感網絡結合的技術已成為國內外研究的熱點[7]。IETF ( Internet Engineering Task Force)成立專門小組致力于實現IPv6網絡的嵌入式設備化,發揮其在無線傳感網絡中的地址優勢[6]。在IETF的不斷努力下,低功耗802.15.4數據鏈路層和物理層協議及網絡層協議的6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)協議棧被提出來,通過6LoWPAN適配層對IPv6數據包進行分片和重組,完成IPv6網絡層與802.15.4物理層的融合[8?11]。
近年來,已有基于 6LoWPAN協議棧的無線傳感技術在工農業和生活中應用的相關研究。文獻[12]設計并實現了無線傳感器網絡6LoWPAN路由器,文獻[13]設計并實現了基于6LoWPAN協議的監測系統,文獻[14]實現了將WSN接入到IPv6系統,文獻[15]設計了WSN計入到IPv6網絡模型,文獻[16]設計實現了6LoWPAN的智能家電監測與控制系統,文獻[17]基于6LoWPAN對礦井無線傳感器網絡適配層進行了研究,文獻[7]設計和實現了一個基于TinyOS的6LoWPAN無線傳感器網絡,上述研究有很高的應用價值,但也有值得改進之處。實際應用中部署的WSN與IPv4/IPv6網絡之間無法進行點到點的通信,即用戶無法迅速地對特定地理壞境的農業信息進行監測,無法通過命令管理每個空氣濕度、光照強度、土壤溫度、土壤濕度等調節裝置[15]。為了讓農業信息WSN支持IP網絡架構,本文設計和實現了一個基于Contiki嵌入式操作系統的6LoWPAN農業環境實時傳感系統。該系統實現了以IEEE 802.15.4作為物理層和數據鏈路層標準的WSN,靈活接入IPv4/IPv6網絡中,完成了WSN與互聯網之間的點到點通信。用戶可以通過Web服務器對基于6LoWPAN的WSN進行實時管理。
1 基于6LoWPAN的農業信息傳感系統總體設計
1.1 需求分析
本系統實現農業生產環境信息采集與控制,各個節點通過6LoWPAN協議將數據傳輸到6LoWPAN網關,最終通過IPV4/IPv6網絡將采集的數據傳送到Web服務器,具體要求如下。
(1) 傳感器系統穩定性
傳感器節點一般部署在環境惡劣、高海拔、高寒、潮濕、干旱半干旱地區,在這些極其惡劣的環境下,農業專家需要大量實時的連續數據研究農作物的生長。因此,需要末端傳感器節點在復雜多變的環境中穩定地傳輸類型復雜多變、精度要求高的觀測數據,同時還要求各節點故障率低,不間斷觀測。
(2) 所有傳感器節點和邊緣路由器全都支持6LoWPAN協議棧,每個都有惟一的IPv6地址。
(3) 傳感器系統可擴展性
末端傳感器節點能自由擴減,兼容性強,能穩定、節能地采集農業環境信息并將這些信息傳輸到信息管理服務器。
(4) 數據格式統一
各類傳感器收集的數據類型不同,為了方便管理和處理這些數據,必須建立元數據模型。
(5) 便于用戶訪問
在REST(Representational State Transfer)即表現層狀態轉移架構的CoAP(Constrained Application Protocol)[18]中抽象傳感器資源,優化 CoAP協議增加的報文傳輸時延,使得主機能直接通過網頁訪問傳感器資源。
1.2 系統體系結構設計
系統主要包括以下兩部分:
(1) 6LoWPAN 網絡:用于采集環境數據或者根據后臺指令執行具體的操作;
(2) 后臺系統:用于存儲數據和發出指令。其中 6LoWPAN網絡又包含兩種不同的節點:一個是普通的 6LoWPAN節點,用于數據的采集與指令執行;另一個是6LoWPAN路由器,用于連接6LoWPAN網絡與IPv4/IPv6網絡。
具體細劃為支持6LoWPAN協議棧的WSN,6LoWPAN邊界路由器,IPv6網絡,Web服務器,終端用戶五部分,如圖1所示。
基于6LoWPAN的傳感器節點采集農業生產環境的信息后傳給節點的MCU[19](微處理器),MCU對數據包處理后經過6LoWPAN適配層的分片和重組,封裝成802.15.4數據格式發送給邊緣路由器的無線網卡模塊;無線網卡上射頻芯片接收數據包在6LoWPAN適配層分片和重組后經過串口發送給邊界路由器,邊界路由器把數據包轉發到IPv4/IPv6網絡,整個過程如圖2所示。實現了基于6LoWPAN協議棧的WSN與IPv4/IPv6網絡的互通和融合,用戶可以通過IPv4/IPv6網絡實時訪問6LoWPAN網絡。
2 系統硬件設計
2.1 傳感器節點硬件設計
傳感器節點由RF收發器、MCU及傳感單元三部分組成,具體設計如圖3所示。
本課題選用的MCU是意法半導體(STMicroelectronics)公司系統級芯片STM32F103RCT6,該芯片集成低功耗32位ARM Cortex?M3微處理器,256 KB FLASH閃存,48 KB RAM儲存器和其他通用外設。RF收發器采用AT86RF231芯片,AT86RF231是一款工業級、低電壓供電、超低功耗、方便操作的收發器。傳感單元采用可以檢測周圍環境的濕度和溫度的傳感器DHT11。
傳感器節點主要有兩個功能:
(1) 傳感單元采集農業環境信息后發送到MCU處理,處理后經過RF收發器發給邊緣路由器;
(2) 傳感器節點通過RF收發器接收邊緣路由器的數據包,微處理器對數據包進行處理后發送命令給傳感單元。
2.2 邊緣路由器硬件設計
邊緣路由器由兩大模塊組成:與傳感器節點通信的傳感網絡模塊和與IPV4/IPv6網絡通信的IPV4/IPv6網絡模塊。兩個模塊通過串口或USB口相連,具體結構圖如圖4所示。
2.2.1 WSN模塊硬件設計
基于兩大模塊的功能需求,采用雙MCU架構。WSN網絡通信模塊仍采用AT86RF231和STM32F103RCT6,天線采用Antenova公司支持2.4 GHz的微型天線A5839。
2.2.2 IPv6模塊硬件設計
IPv4/IPv6模塊利用支持DDWRT的BUFFALO WXR?1900DHP千兆路由器進行開發,其使用雙核Broadcom BCM4709A處理器,Broadcom BCM4360雙頻無線網絡芯片,內存512 MB,FLASH 128 MB,刷機系統可擴展能力強。首先,升級DDWRT固件,使其支持IPv4/IPv6雙棧,實現6LoWPAN傳感網絡向IPv4/IPv6網絡的數據轉發;其次開發能識別通過USB接口相連的WSN模塊的驅動程序,使其識別WSN網絡的數據包,實現6LoWPAN傳感網絡與IPv4/IPv6相互通信。
3 軟件設計
3.1 無線傳感器節點軟件設計
無線傳感器節點和邊緣路由器WSN模塊移植Contiki操作系統[20],Contiki是一種物聯網開源操作系統。Contiki連接微小的、低成本、低功耗微控制器網絡。它由C語言實現的基于事件驅動的開源多任務操作系統組成。其使用輕量級protothreads進程模型,可以在事件驅動內核上提供一個線性的、類似于線程的編程風格[21],移植性強。雖然CoAP協議目前還在制定當中,但Contiki和Ti?nyOS嵌入式操作系統已經支持CoAP協議[22]。REST中對資源的請求操作包括獲取、創建、修改和刪除。目前通常采用HTTP(超文本轉移協議)實現RESTfuI架構,因為HTTP提供了GET,POST,PUT和DELETE幾種操作方法,與REST要求相一致,是一種無狀態協議。由于HTTP是基于TCP協議的,在使用時需要保持連接,這對于帶寬有限的傳感器網絡來說是不小的開銷。采用UDP作為傳輸層協議的CoAP(Constrained Application Protocol)協議更適合在資源受限的網絡設備上使用[23]。
傳感器節點的軟件架構包括系統支撐層、傳輸層、協議層及應用層,傳感器節點軟件流程設計圖如圖5所示。傳感器節點上電初始化后處于監聽邊緣路由器的狀態。一旦邊緣路由器發來數據包,傳感器節點就對數據包進行解析。如果是監測指令,傳感器節點就查詢當前環境信息,把數據壓縮之后通過射頻模塊發送給邊緣路由器;如果是控制指令,傳感器節點將會控制環境信息傳感器的開關狀態,其完成指令后,也會通過射頻模塊向邊緣路由器發送應答信號。
3.2 邊緣路由器軟件設計
邊緣路由器內有兩個獨立的操作系統, STM32平臺的Contiki系統和WXR?1900D DDWRT固件自帶的Linux系統。兩套系統之間通過USB轉串口通信。6LoWPAN邊緣路由器的軟件框架包括三個層次:傳輸層、協議層及CoAP應用層,傳輸層包括無線傳輸層與有線傳輸層。具體設計流程如下:
從有線傳輸層接收CoAP數據報文,對數據報文進行分段,并按照路由表的信息,通過無線傳輸層將CoAP數據報文發送到Web服務器;從無線傳輸層獲取服務器發送的CoAP數據報文,對CoAP數據報文進行恢復,并按照路由表的信息,通過有線傳輸層將數據報文發送到WSN節點。
3.3 Web服務器
用戶機想要直接訪問傳感節點可以使用火狐瀏覽器,在火狐瀏覽器上安裝插件Copper(Cu)后就可以直接在地址欄輸入要訪問的節點的IP地址和端口號即可。為了便于用戶直接用HTTP方式訪問,架設了Web服務器,具體流程如圖6所示。
圖6 Web服務器的設計流程圖
(1) Web服務器向某一特定區域為標識的傳感節點發出數據請求到邊緣路由器;
(2) 邊緣路由器將IPv6頭部按照事先的標準優化壓縮成6LoWAPN頭部,并轉發到圖6中相應的6LoWAPN物聯網;
(3) CoAP消息由邊緣路由器轉發到最終物聯網節點,物聯網節點獲取權限范圍內的區域標識信息。標識信息經過步驟(1)~步驟(3)的反過程先到Web服務器,最終到達用戶機;
(4) 用戶機向Web服務器發起服務請求,通過獲取Web服務器發布服務說明的信息后,采用CoAP/HTTP方式向Web服務器進行服務調用;
(5) Web服務器收到用戶機發起的服務請求后,處理消息內容,并把用戶機請求的數據格式及發送數據的方式回送給用戶機。
4 系統試驗驗證
在實驗室隨機設置一個節點,節點IPv6地址(FC00::0212:4b00:053d:7789),該節點開啟了兩個任務,占用兩個端口,其中5683是CoAP使用的端口,12346端口做UDP傳輸用。邊緣路由器IPv6地址(FC00::0212:4b00:0612:8e25),從校園網獲取IPv4地址(210.27.82.231)。傳感節點加入邊緣路由器創建的6LoWAPN網,如圖7所示。
為了方便用戶通過IPv4網絡訪問,在網關上做了NAT64轉換。測試機從校園網獲取IPv4地址(210.27.82.130),通過CoAP協議訪問,如圖8所示。
該試驗說明,6LoWAPN網絡搭建成功,在IPv4環境下用戶可以通過CoAP協議訪問邊緣路由器。IPv6環境下的測試方法相同,如果在IPv6環境下,用戶可以通過CoAP協議直接訪問傳感節點。
5 結 論
針對現有農業環境信息傳感系統在實際應用中存在的不足,實現了基于6LoWPAN和CoAP無線傳感器網絡的農業環境信息傳感系統,本系統實現了WSN 與IPv4/IPv6網絡之間的點到點通信,用戶可以通過CoAP/HTTP方式訪問6LoWPAN網絡,進而對特定的農業環境信息進行采集或控制。本系統沒有開發專門的上位機軟件,如果結合上位機軟件將更加完美,這也是下一步課題研究的重點。
參考文獻
[1] YICK J, MUKHERJEE B, GHOSAL D. Wireless sensor network survey [J]. Computer networks, 2008, 52(12): 2292?2330.
[2] 彭燕,何東健.基于ZigBee技術的果園生態環境監測系統[J].農機化研究,2009,31(4):164?167.
[3] ZHANG Q, YANG X L, ZHOU Y M, et al. A wireless solution for greenhouse monitoring and control system based on ZigBee technology [J]. Journal of Zhejiang University, 2007, 8(10): 1584?1587.
[4] AKYILDIZ I, SU W, SANKARASUBRAMANIAM Y, et al. Wireless sensor networks: a survey [J]. Computer networks, 2002, 46(4): 1123?1130.
[5] 羅萬明,閻保平,晉銳,等.面向生態監測的IPv6無線傳感器網絡研制及應用[J].科研信息化技術與應用,2013(4):58?67.
[6] 崔博涵.基于6LoWPAN的無線傳感網絡平臺的設計與實現[D].哈爾濱:哈爾濱工業大學,2013.
[7] 向浩,李堃,袁家斌.基于6LoWPAN的IPv6無線傳感器網絡[J].南京理工大學學報,2010,34(1):56?60.
[8] 李堃.基于6LoWPAN的IPv6無線傳感器網絡的研究與實現[D].南京:南京航空航天大學,2008.
[9] 謝希仁.計算機網絡[M].5版.北京:電子工業出版社,2010.
[10] 付誠.基于6LoWPAN的無線傳感器網絡路由研究及實現[D].北京:北京郵電大學,2012.
[11] 朱曉榮,李鳳國.基于Contiki的6LoWPAN適配層的研究與實現[J].信息通信技術,2013(3):66?70.
[12] 苑樂.無線傳感器網絡6LoWPAN路由協議設計與實現[D].北京:北京交通大學,2011.
[13] 劉保君.基于6LoWPAN協議的農業物聯網技術研究[D].北京:北京郵電大學,2014.
[14] 聞志平,李迅,李洪峻.無線傳感器網絡IPv6接入系統的設計與實現[J].計算機工程,2010(3):109?111.
[15] 王曉喃,殷旭東.基于6LoWPAN無線傳感器網絡的農業環境實時監控系統[J].農業工程學報,2011,26(10):224?228.
[16] 魏燕達,周衛星.基于6LoWPAN的智能家電監測與控制系統設計與實現[J].現代電子技術,2015,38(14):101?104.
[17] 張凱婷,徐釗,張峰,等.基于6LoWPAN的礦井無線傳感器網絡適配層研究[J].工礦自動化,2012,38(6):43?47.
[18] BORMANN C, CASTELLANI A P, SHELBY Z. CoAP: an application protocol for billions of tiny internet nodes [J]. IEEE Internet computing, 2012, 16(2): 62?67.
[19] ZHOU J Y, CHEN J L, XUE B, et al. On the four axis aircraft design based on STM32 [J]. Journal of Qinzhou University, 2015, 30(2): 30?33.
[20] DUNKELS A, GRONVALL B, VOIGT T. Contiki: a light?weight and flexible operating system for tiny networked sensors [C]// Proceedings of 2004 the 29th IEEE International Conference on Local Computer Networks. Sweden: IEEE, 2004: 455?462.
[21] 馬親民.專為物聯網開發的開源操作系統Contiki[EB/OL].[2015?12?14].http://blog.sina.com.cn/s/ blog_6de000c201010z7n.html.
[22] 湯春明,張熒,吳宇平.無線物聯網中CoAP協議的研究與實現[J].現代電子技術,2013,36(1):40?44.
[23] 黃忠.物聯網資源尋址和訪問方法研究[D].濟南:山東大學,2013.
[24] AISHWARYA V, FELIX ENIGO V S. IP based wireless sensor networks with Web interface [C]// Proceedings of 2011 IEEE International Conferences on Recent Trends Information Technology. India: IEEE, 2011: 462?466.