- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
无线物联网中CoAP协议的研究与实现
系统由用户浏览器、Web服务器、IPv6智能网关、MX231CC节点组成。用户浏览器通过HTTP协议访问Web服务器,MX231CC节点通过CoAP协议和IPv6智能网关进行通信,从而实现用户浏览器访问节点上资源的功能。图9中实线表示有线连接,虚线表示无线连接。
在当前的Contiki 2.5中,集成了CoAP 03和CoAP06这两个版本。这两个文件在Contiki 2.5的apps目录下,关于CoAP的核心内容都在这两个文件中。程序的主要部分为:
AUTOSTART_PROCESSES(PERIODIC_RESOURCE()为进程的主体部分。
然后进行编译,编译成。elf文件,用JTAG下载器下载到节点上。节点地址设置为:2001:2::11:22ff::fe33:4499.这时,用火狐浏览器访问节点,因为火狐浏览器自带coap插件,如果用其他浏览器,那么需要进行coap的代理设置。以控制节点上的三色LED灯反转为例,用下面的请求格式:GETcoap://[]:
/readings其中mote_ip_address是节点的IPv6地址,port_number是节点的端口号,readings是客户端请求的资源(温度)。
所以在浏览器地址栏输入:coap://[2001:2::11:22ff:fe33:4499]:61616/toggle,作用是让节点上的三色LED灯进行反转。服务器端的响应信息如图10所示。
从浏览器端可以看出,CoAP协议支持Discover和Observe功能,具有GET、POST、PUT和DELETE等方法。Type表示信息类型为ACK,Code为200,表示成功完成客户端的请求。事务ID为38 264,它用于重复信息检测,options为1表示有一个可选项,内容类型为text表示文本类型。
由此可以看出,通过火狐浏览器的CoAP协议,可以访问节点上的传感器资源。
3.3 CoAP协议的客户端实现(C/S架构)
上节通过火狐浏览器可以实现COAP协议,但是只能查看实时数据,不能查看历史数据。为此,这里搭建了一个C/S架构的环境。如图11所示。
图11中客户端软件是用基于。NET架构的C#语言编写的,数据库使用SQL Server 2008.通过此程序,可以每隔10 s读取一次数据,存入到数据库中。并可以通过前台的Web界面查看各种历史数据,包括温度、湿度、亮度等。
插入数据库中的数据如图12所示,图中显示的是室内的亮度值。
在Web浏览器端可以查看实时和历史数据,页面显示效果如图13所示。
由此看出,基于C/S架构的方式,不仅可以显示实时数据,还可以查看历史数据,以便及时发现问题,更加具有实用性。
4结论
本文详细介绍了CoAP协议的内容、特点、交互模型以及订阅机制,还给出了基于uIPv6 START KIT无线网络开发套件的系统配置方式,该网络可以通过火狐浏览器和客户端软件两种方式实现CoAP协议,用户不仅可以读取传感器上的实时数据,而且可以查看历史数据。
上一篇:联通打造移动互联全开放模式
下一篇:虚拟化成就WLAN