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