無線物聯(lián)網(wǎng)中CoAP協(xié)議的研究與實現(xiàn)
圖8是IPv6智能無線網(wǎng)關(guān)的接口布局,它是基于OPENWRT系統(tǒng)定制完成的。具備3個局域網(wǎng)口,1個廣域網(wǎng)口,1個802.11a/b/g WiFi無線網(wǎng)絡(luò)接口,1個標準USB口和1個可選的串口調(diào)試口。該智能無線網(wǎng)關(guān)除具備通用無線路由器的功能以外,還可以實現(xiàn)基于Contiki操作系統(tǒng)的USB UIP網(wǎng)絡(luò)和普通IP網(wǎng)絡(luò)之間的IPv6互連,同時還支持有能力的系統(tǒng)在OPENWRT的基礎(chǔ)上開發(fā)自己的應(yīng)用軟件包,實現(xiàn)更復(fù)雜的應(yīng)用。本文引用地址:http://www.ex-cimer.com/article/153550.htm
OPENWRT是一個開源的Linux版本。主要應(yīng)用于嵌入式系統(tǒng)。網(wǎng)關(guān)和節(jié)點上同時裝有Contiki系統(tǒng),它提供宏定義和RESTful網(wǎng)絡(luò)服務(wù)實例。
MX231CC節(jié)點上的主要芯片是ATmega1284P,它具有128 KB的可編程閃存,4 KB的E2PROM,16 KB的片內(nèi)SRAM,JTAG接口,優(yōu)化的功耗和處理速度。節(jié)點上運行Contiki系統(tǒng)。節(jié)點上還有光敏傳感器、室內(nèi)溫度傳感器、三色LED指示燈等。
3.2 CoAP協(xié)議的火狐瀏覽器實現(xiàn)(B/S架構(gòu))
B/S架構(gòu)的系統(tǒng)結(jié)構(gòu)如圖9所示。
系統(tǒng)由用戶瀏覽器、Web服務(wù)器、IPv6智能網(wǎng)關(guān)、MX231CC節(jié)點組成。用戶瀏覽器通過HTTP協(xié)議訪問Web服務(wù)器,MX231CC節(jié)點通過CoAP協(xié)議和IPv6智能網(wǎng)關(guān)進行通信,從而實現(xiàn)用戶瀏覽器訪問節(jié)點上資源的功能。圖9中實線表示有線連接,虛線表示無線連接。
在當前的Contiki 2.5中,集成了CoAP 03和CoAP06這兩個版本。這兩個文件在Contiki 2.5的apps目錄下,關(guān)于CoAP的核心內(nèi)容都在這兩個文件中。程序的主要部分為:
AUTOSTART_PROCESSES(coap_sample)這個進程需要自啟動,即當節(jié)點啟動時啟動本程序;
PERIODIC_RESOURCE()為進程的主體部分。
然后進行編譯,編譯成.elf文件,用JTAG下載器下載到節(jié)點上。節(jié)點地址設(shè)置為:2001:2::11:22ff::fe33:4499。這時,用火狐瀏覽器訪問節(jié)點,因為火狐瀏覽器自帶coap插件,如果用其他瀏覽器,那么需要進行coap的代理設(shè)置。以控制節(jié)點上的三色LED燈反轉(zhuǎn)為例,用下面的請求格式:
GETcoap://[mote_ip_address>]:poa_number>/readings
其中mote_ip_address是節(jié)點的IPv6地址,port_number是節(jié)點的端口號,readings是客戶端請求的資源(溫度)。
所以在瀏覽器地址欄輸入:coap://[2001:2::11:22ff:fe33:4499]:61616/toggle,作用是讓節(jié)點上的三色LED燈進行反轉(zhuǎn)。服務(wù)器端的響應(yīng)信息如圖10所示。
從瀏覽器端可以看出,CoAP協(xié)議支持Discover和Observe功能,具有GET、POST、PUT和DELETE等方法。Type表示信息類型為ACK,Code為200,表示成功完成客戶端的請求。事務(wù)ID為38 264,它用于重復(fù)信息檢測,options為1表示有一個可選項,內(nèi)容類型為text表示文本類型。
由此可以看出,通過火狐瀏覽器的CoAP協(xié)議,可以訪問節(jié)點上的傳感器資源。
3.3 CoAP協(xié)議的客戶端實現(xiàn)(C/S架構(gòu))
上節(jié)通過火狐瀏覽器可以實現(xiàn)COAP協(xié)議,但是只能查看實時數(shù)據(jù),不能查看歷史數(shù)據(jù)。為此,這里搭建了一個C/S架構(gòu)的環(huán)境。如圖11所示。
圖11中客戶端軟件是用基于.NET架構(gòu)的C#語言編寫的,數(shù)據(jù)庫使用SQL Server 2008。通過此程序,可以每隔10 s讀取一次數(shù)據(jù),存入到數(shù)據(jù)庫中。并可以通過前臺的Web界面查看各種歷史數(shù)據(jù),包括溫度、濕度、亮度等。
插入數(shù)據(jù)庫中的數(shù)據(jù)如圖12所示,圖中顯示的是室內(nèi)的亮度值。
在Web瀏覽器端可以查看實時和歷史數(shù)據(jù),頁面顯示效果如圖13所示。
由此看出,基于C/S架構(gòu)的方式,不僅可以顯示實時數(shù)據(jù),還可以查看歷史數(shù)據(jù),以便及時發(fā)現(xiàn)問題,更加具有實用性。
4 結(jié)論
本文詳細介紹了CoAP協(xié)議的內(nèi)容、特點、交互模型以及訂閱機制,還給出了基于uIPv6 START KIT無線網(wǎng)絡(luò)開發(fā)套件的系統(tǒng)配置方式,該網(wǎng)絡(luò)可以通過火狐瀏覽器和客戶端軟件兩種方式實現(xiàn)CoAP協(xié)議,用戶不僅可以讀取傳感器上的實時數(shù)據(jù),而且可以查看歷史數(shù)據(jù)。
物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么
評論