融合ZigBee 与WiFi 无线技术智能家居系统的设计
2015-04-01乔季军王德宇李玉琳石坤明施云波
乔季军 王德宇 李玉琳 石坤明 施云波
(哈尔滨理工大学测控技术与通信工程学院,黑龙江 哈尔滨 150080)
0 引言
随着移动互联网、物联网的发展和电子信息技术的全面普及,家庭信息化、家电网络化成为当今智能家居系统发展的新趋势。然而,如何实现低成本、低功耗、自组织、高效率的运行是智能家居系统设计过程中需要考虑的重要问题[1]。
在智能家居监测区域中,需要采集、处理和控制的传感信息有许多,有涉及安全的防盗、燃气泄漏,有涉及智能控制的厨房电器,有涉及舒适的空调、视音设备等[2]。早期的智能家居网络通信方式的研究热点主要是电力线载波[3]和有线网络[4],例如以太网络、工业RS-485 总线网络等。近几年,随着蓝牙(Bluetooth)技术、WiFi 技术和ZigBee 等无线技术的发展,在家庭无线网路系统的研究中呈现出无线化的发展趋势[5]。与有线相比,无线具有低成本、低功耗、自组织、高效率等特点,将成为智能家居系统设计的最优解决方案。
本文设计了基于ZigBee 和WiFi 无线技术的智能家居系统,采用IEEE 802.15.4 协议实现无线自组织、终端自适应的网络,满足现代智能家居系统成本低、功耗小、效率高、灵活性强等设计要求。
1 系统设计
1.1 系统总体架构设计
系统的总体架构原理示意图如图1 所示。
图1 系统总体架构原理示意图Fig.1 Schematic diagram of the systematic architecture
在本文设计的智能家居系统监测过程中,利用ZigBee 自组网功能将家居中需要感知的各个监测节点采集的信息汇聚于中央协调器,信息经过中央协调器的数据处理,通过WiFi 与家居的计算机互联,连入互联网中,实现远程监控。系统包括智能家居网关协调器、ZigBee 采集节点、ZigBee 控制节点和WiFi 接入互联网模块。网关协调器采用CC2530 作为主控制器,配有WiFi232 模块,作为无线访问节点(access point,AP)路由器与以太网连接,便于将ZigBee 网络连入互联网中。ZigeBee 采集节点负责将温湿度、光线、烟雾、燃气等一系列家居参数进行采集,并上传到用户APP中。ZigBee 控制节点与家庭中各种家用电器相连。由于许多家用电器的位置都不是固定的,因此,这样的家庭网络设计提高了系统的灵活性,用户可以随意添加或者删除任何节点,也可以将电器放置在任何位置。
1.2 硬件电路设计
(1)ZigBee 模块外围电路设计。
ZigBee 模块是系统组网和控制的核心,用来对ZigBee 通信网络进行相应的配置并接收ZigBee 各个节点的数据,然后通过WiFi232 模块将系统连入Internet。本文选择了高性能、低功耗的TI 公司的CC2530 射频芯片作为ZigBee 通信芯片,CC2530 能够提供较高的通信链路质量、较高的接收器灵敏度和较强的抗干扰性。此外,CC2530 还提供了丰富的外设,包括2 个USART、12位的ADC 和21 个GPIO。该芯片搭配TI 公司提供的ZigBee 协议栈Z -Stack2007 进行开发,缩短了设计周期。ZigBee 模块电路外围设计原理示意图如图2 所示。
图2 ZigBee 模块电路外围设计原理示意图Fig.2 Peripheral design principle of ZigBee module circuit
(2)恒流源电路设计。
为了适应家居中市电波动较大的特点,本文采用OPA603 运放芯片和TL431 精密稳压电源芯片,设计一种精度较高的恒流源电路,用于传感器测量电路,提高了系统的稳定性。恒流源电路原理示意图如图3 所示。
图3 恒流源电路原理示意图Fig.3 Schematic diagram of the constant current source circuit
(3)WiFi 模块电路设计。
本文通过WiFi 技术无线路由实现家居内网与Internet 外网互联,选用嵌入式WiFi232 模块,完成数据的收发。其硬件内嵌一个单片机和TCP/IP 协议栈,对外提供UART 串口或者SPI 总线接口。WiFi 模块电路原理示意图如图4 所示。
图4 WiFi 模块电路原理示意图Fig.4 Schematic diagram of WiFi module circuit
(4)ZigBee 控制节点电路设计。
ZigBee 控制模块电路主要对家庭中各种家用电器进行开关控制,如电灯、电饭煲、加湿器、自动窗帘等设备。通常是借助继电器、步进电机等电控制器件,其中,控制模块中继电器模块电路原理示意图如图5 所示。
图5 ZigBee 控制节点电路Fig.5 ZigBee control node circuit
1.3 通信协议设计
ZigBee 是基于IEEE 802.15.4 标准的低功耗局域网无线协议,适用于智能家居系统中的无线传感器网络中[6]。在智能家居无线传感网络系统中,要求整个网络具有网络稳定、组网速度快、实时性高、节点可随意添加等特点。因此,本文在ZigBee 协议的基础上采用Mash 网络,Mash 网络结构以及网络通信原理示意图如图6、图7 所示。
图6 Mash 网络通信原理示意图Fig.6 Communication principle of Mash network
图7 Mash 网络结构示意图Fig.7 Structure of Mash network
为了使数据帧更容易进行编解码,将数据帧定义为定长,为每一个字节赋予特定的功能,这样就不需要单独开辟一个空间来标志数据帧的长度,在程序设计时也会变得简单,又能实现各种功能[7]。本文设计的数据帧包括两种类型的帧,即命令帧和状态帧,数据帧的定义格式如图8 所示。其中,数据域中,功能码、命令码和数据码可以是用户自定义的数据区。在数据传输过程中,将此数据封装成帧,在网络中传输。
图8 数据帧定义的格式Fig.8 Definition of the data frame format
2 软件设计
系统软件设计包括终端节点数据采集与控制程序设计、Mash 结构组网程序设计和网关协调器程序设计。
2.1 Mash 组网网络地址分配机制
ZigBee 网络采用分布式地址分配(DAAM),为每个设备分配唯一的一个网络地址[8]。DAAM 分配的地址有一定的规律性,包含了“地址-位置”对应关系。DAAM 规定,每个父节点都拥有一段网络地址,当父节点接收子节点入网时,可以将地址分配给子节点,如果这段地址已分配完,则该父节点不能再接受子节点。网络中,每个节点都有深度,表示在逐级传递的网络中,该节点传送数据到协调器所需要的最小跳数。假设协调器作为根节点深度为0,则它的子节点深度为1,如果每个深度可容纳的最大子节点个数为Cm,整个网络的最大深度为Lm,每个深度可容纳最大路由器的个数为Rm,由此可以算出Cskip(d),其中d 为父设备的网络深度,Cskip(d)为父设备所能分配的网络地址段,计算公式为:
DAAM 的具体分配步骤如下。
①网络初始化。网关节点地址为0,确定组网参数,然后再广播通知全网络。
②子节点发送地址请求信息。未入网的子节点查询邻居表,找出深度最小的潜在父节点,然后向其发送地址请求消息。
③父节点回复地址信息。地址为Ap的路由节点收到未入网节点的入网申请后,作为父节点,根据申请节点的类型和顺序做如下地址分配。
如果申请节点为路由设备,则:
如果申请节点为终端设备,则:
式中:1≤n≤Cm-Rm。如果子节点收到父节点回复的拒绝信息,则返回步骤②,重新选择父节点发送请求信息。
2.2 网关协调器软件的设计
网关协调器的工作模式主要包括睡眠模式、发送模式、接收模式、命令模式[9]。网关协调器的软件设计流程如图9 所示。
图9 网关协调器软件设计流程图Fig.9 The software flowchart of gateway coordinator
在以协调器为中心的ZigBee 网络构建成功后,网关协调器进入睡眠模式。如果有相应的节点加入网络,则会通过中断唤醒方式将协调器唤醒并进入命令模式,进行节点配置。当接收到新的数据帧指令时,会通过串口中断方式将协调器唤醒并进入接收模式和发送模式,将数据帧发送至相应节点,执行相应的操作。
2.3 终端节点软件程序的设计
终端节点成功加入ZigBee 网络后,即进入相应的低功耗模式[10];在收到协调器发送来的数据帧之后,会通过中断唤醒方式进入数据帧接收模式,进行相应的操作。ZigBee 采集节点主要完成传感器数据的采集,当采集数据完成后,将数据打包并发送至协调器,等待确认消息,如果超过最大等待时间,会重新发送数据包。当接收到确认消息后,即完成本次数据采集任务,再次进入低功耗模式,等待下一次数据采集。ZigBee 控制节点主要进行各种家用电器的实时控制。终端节点程序设计流程如图10 所示。
图10 终端节点软件设计流程图Fig.10 The flowchart of the terminal node software
系统采用低功耗休眠机制,节点由两节5 号电池供电,能维持使用半年时间,平均功耗在7 ~10 mW;采用定时唤醒的方式进行数据传输。这样的软件设计大大降低了ZigBee 网络系统的功耗,有较强的适用性。
3 系统测试
3.1 ZigBee 传输距离的测试
传输的距离测试时以ZigBee 点对点,采用ZigBee温度终端节点每隔1 s 发送一次温度值,ZigBee 协调器连接计算机USB 串口接收数据。以协调器为圆心,在100 m 的范围内进行测试,接收到数据为通信成功。测试结果如表1 所示。
表1 ZigBee 传输距离测试
测试结果表明,ZigBee 在开阔环境中的有效距离在70 m 左右,在有建筑物遮挡时有效距离在50 m左右。在小型和中型房子中基本可以直接使用,如果不能满足需求,还可以在中间加入路由器节点来增大ZigBee 的有效传输距离。
3.2 传输数据掉包率的测试
将温度采集节点、湿度采集节点、烟雾采集节点和光线采集节点分别用3 V 电源供电,放在房间的不同位置。计算机连接系统的网关协调器,打开网络串口调试助手,发送采集指令并接收终端节点发送给ZigBee 网络协调器的数据。通过设置不同的发送周期就可以调整串口发送数据的频率,从而控制数据波特率。测试结果如表2 所示。
表2 传输数据掉包率测试Fig.2 Test of the packet loss rate of data transmission
测试结果表明,ZigBee 和WiFi 的串口传输可以满足系统的日常要求,但在数据速率过大和传输数据过多时会有丢包现象,最大掉包率为0.02%。另外由1、3、4组的测试推测,在测试的环境下可能有干扰,使得接收字节变多,所以,在传输的过程中有必要加入校验程序。
4 结束语
本文基于ZigBee 和WiFi 无线技术设计了一种新型智能家居系统,采用IEEE 802.15.4 协议实现无线自组织、终端自适应的网络,满足现代智能家居系统成本低、功耗小、效率高、灵活性强等设计要求。
通过通信传输距离和数据掉包率的测试,结果表明,该系统设计基本满足要求,并有一定的功能扩展空间。
[1] 俞文俊,凌志浩.一种物联网智能家居系统的研究[J]. 自动化仪表,2011,32(8):56 -59.
[2] 王云良,王敏其,程凌.智能家居网络系统的优化及控制稳定性分析[J].自动化仪表,2014,35(8):78 -82.
[3] 祁明晰,祁昶,黄天戍.基于电力线载波通信技术的智能家居系统[J].电力自动化设备,2005,25(3):72 -75.
[4] 徐锋,刘欣,方加宝. 智能家居远程控制系统设计[J]. 低压电器,2009(4):20 -24.
[5] 贺玲玲. Zigbee 传感器网络Cluster - Tree 改进路由算法研究[J].传感技术学报,2010(9):1303 -1305.
[6] 王益祥,牛江平. 远程无线抄表系统的研究[J]. 自动化仪表,2011,32(3):4 -7.
[7] 张雪凡.线性拓扑无线传感器网络关键技术[J]. 上海大学学报:自然科学版,2010(16):20 -22.
[8]宋蛰存,陈宁,李迪飞.Zigebee 无线传感技术在森林火灾监测中的应用[J].自动化仪表,2010,31(4):50 -52.
[9] 汪玉凤,姜林.基于Zigbee 和GPRS 的无线抄表系统[J]. 仪表技术与传感器,2010(10):49 -51.
[10]Han D M ,Lim J H . Design and implementation of smart home energy management systems based on Zigbee [C]//IEEE Transactions on Consumer Electronics,2010:1417 -1425.