预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于Arduino和ZigBee的物联网智能网关设计与实现 给出了一种能够在ZigBee网络和传统网络进行透明协议高效转换的物联网 智能网关的解决方法。该方法利用MQTT服务器作为数据进入传统网络的中转 站,ZigBee网络的数据通过网关上的路由功能接收数据,然后通过串口把数据 转发给NodeMCU,最后数据通过MQTT协议发送到数据中转站。经过智能蔬菜 大棚的实际应用证明,本文设计的网关造价低廉,实用性好,效率高。标签:物 联网;网关;ZigBee;NodeMCU 0引言 物联网(Internet0fthings,简称IoT)是“信息化”时代的重要发展阶段,被 称为继计算机、互联网之后世界信息产业发展的第三次浪潮。要实现物物相连, 工程真正的意义上的物联网,就需要把各种网络互联在一起,那么网关功能的设 备在物联网应用中就起着非常重要的作用。物联网涉及到多种网络的互联,因此 设计一个能够互联所有网络的物联网网关是不现实的,更没有必要,这样不仅成 本高而且研發周期长。因此,在实际的物联网应用系统中,针对涉及到的网络, 研究特定功能的物联网网关不仅能够降低成本而且也会缩短研发周期。而在当前 的物联网中,由于ZigBee广泛应用,那么数据在ZigBee网络和传统以太网之间 的相互转发就显得非常重要。 本文主要研究ZigBee网络和以太网之间的数据转发,同时为了方便用户二 次开发,也提供数据获取和控制数据传送WebAPI。基于此,本文的研究内容包 括:基于MQTT的数据收发、ZigBee网络的实现、基于MongoDB的数据持久 化服务的开发以及提供二次开发的WebAPI接口。 1相关技术和理论 (1)MQTr(MessageQueuingTelemetryTransport,消息队列遥测传输)是 IBM开发的一个即时通讯协议。该协议支持所有平台,几乎可以把所有联网物 品和外部连接起来,被用来当做传感器和制动器的通信协议。(2)NodeMCU是 一个开源的物联网平台,它自身就可以作为物联网终端节点使用,可以应用于某 些物联网中。像Arduino一样,它是简单的开源可编程固件。本文通过MQTT 协议,实现网关与数据中转站相互传输数据。(3)CC2530是用于2.4-GHz IEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。 (4)ZigBee技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无 线通讯技术。从下到上分别为物理层、媒体访问控制层、传输层、网络层和应用 层等。(5)Z-Stack是符合Zigbee协议栈规范的一个硬件和软件平台,是Zigbee 协议栈的一个具体实现。本文利用Z-Stack设计物联网网关的协调器和网关功能。 2GlOT的体系结构 本文设计并实现的物联网网关GIOT(GatewayofiOT)的主要功能是要实现 传统网络和ZigBee网络之间的数据转发并把数据放置到数据中转站服务器上, 该方案的体系结构如图1所示: 图1中,序号(1)、(2)和(3)是本文需要实现的部分,主要涉及到的相 关技术如下: (1)数据中转站服务器:利用Java语言实现WebAPI,程序订阅MQTT服 务器的数据主题,监视物联网终端节点上传的数据以及用户发送的控制数据,并 把所有的数据写入MongoDB数据库中,同时给用户终端提供WebAPI,方便基 于PC和手机管理应用的二次开发调用。 (2)NodeMCU转发服务:利用ESP8266芯片按照Arduino规范设计的模 块,具备无线功能,方便通过无线接入以太网中,利用MQTT协议和数据中转 站进行数据通讯,通过UART与CC2530模块相互传输数据。 (3)ZigBee网络转发服务:利用TI公司的CC2530芯片以及Z-Stack协议 栈实现ZigBee协调器和路由器功能,该部分主要接收ZigBee终端节点上传的数 据以及转发控制数据给终端节点,以及负责和NodeMCU进行通讯。 3GlOT的实现 通过前面的描述,GIOT系统的实现主要分为如下三个方面: 3.1数据中转站服务的实现 (1)功能和流程描述:利用MQTT服务器进行数据传输、设计WebAPI二 次开发接口便于对接其它应用、利用MongoDB保存中间数据和日志,所有功能 采用Java语言设计。主要流程为: 第一步订阅网关主题的名称规范,网关数据的主题为“GIOT_网关的MAC”。 第二步订阅WebAPI传入数据的主题名称规范为“WAPI_APP_USER”,根据 调用API的验证用户即可生成。 第三步MQTT订阅和发布的消息以及操作日志等相关数据保存于MongoDB 数据库中。 第四步设计数据获取以及控制信息传输的二次开发WebAP