APP下载

基于ZigBee的物联网智能家居系统设计

2019-11-18牛奕翔

计算机技术与发展 2019年11期
关键词:智能家居报警终端

牛奕翔

(西安交通大学城市学院 计算机系,陕西 西安 710000)

0 引 言

目前智能家居在国内正在进入快速发展的阶段,随着无线网络技术和传感器的快速发展,物联网在人们生活中的应用越来越广泛,特别是在智能家居方面,如各种家电、健康电子产品,智能电器厂商也纷纷推出了相关产品。但是,如何将各种新技术有效应用在智能家居领域,成为大家关注的问题,市场上也涌现出了许多智能家居系统的解决方案。虽然市场中智能家居的系统解决方案越来越多,但是大部分在性能方面都不是很高,在系统能源的使用,系统的稳定性以及可扩展性上并没有很好的表现,都有其各自的缺点,缺少既能兼顾系统节能,又能提高高效性、准确性和可扩展性的智能家居系统解决方案。

因此,文中设计以节省能源、高效、准确,可扩展好为前提,搭建一套行之有效的智能家居系统解决方案,以提升智能家居的整体性能。

1 系统总体设计

所设计的控制系统是用安装在家居内的智能控制端组成,主要包含以太网、家庭网关、ZigBee低功耗无线双向通信、WiFi大功率无线通信单元以及本地控制端[1]。

家居系统内部的家庭网关是整体家居控制系统最重要的组成部分,不但负责内部网络和外部网络间的沟通工作,而且还将使用低功率无线通信的技术手段对其终端的设备进行实时数据的监测与管理。在系统中房间内的各种终端节点可以通过无线网连接,并在此网络中实现信息和数据的传递。通过该智能家居系统的正常运行,用以保证智能家居系统工作的整体安全性。在房间内的不同种类的传感器都可以通过该网络与各终端节点控制器进行连接,当监测到房间内有不正常情况的时候,网络将数据传给相关的控制器,并由其对相关数据进行处理[2]。最后再通过家庭网关,用户便能使用计算机通过网络访问各个房间的控制器端,并能对其进行远程监测与管理。

2 系统硬件设计

系统硬件结构如图1所示。其中网关控制模块采用了三星公司的S5PV210芯片,它是一个32位的微处理芯片,CPU采用的是ARM CortexTM-A8的内核,相比起普通单片机的运行速度快了很多(其主频可以达到1 GHz的频率),可以较好地满足该系统对实时性的具体要求。此外其拥有独立的内存管理单元(MMU),可运行在Linux操作系统上,同时还能方便地进行各种图形界面的简易化设计,加之其具有高性能、高性价比、低功耗等特点,使用该芯片可以大大提高系统的效率与准确性。同时该芯片还有四通道UART、两路全速USB主设备芯片以及两通道SPI,可以方便地对外围设备进行扩展,符合设计要求。而针对网关的具体设计要求,该设计加入了电源、显示、按键、无线传输、报警、以太网、ZigBee协调器、环境监测、家居安保、智能家电模块等外围设备。

图1 系统硬件结构

2.1 无线传输ZigBee模块

ZigBee是低功耗双向无线通信技术中的一种。它遵守IEEE 802.15.4,拥有低复杂度、低成本、低数据速率、短距离、低功耗等特点,用以实现各种不同传感器之间的数据通信。ZigBee可以在设备不工作的时候自动进入到休眠状态,所以两节普通的5号电池,就可以使其持续地工作半年时间以上。除此之外,ZigBee的通信响应时间也非常短,基本上一次正常的响应时间大概在30 ms左右,但是同为无线通信的蓝牙技术,则需要3 s,而WiFi的通信相应时间更是需要高达10 s。综上所述,在现有的各种短距离双向无线通信技术中,ZigBee通信被公认为是最适合应用在智能家居的控制系统之中的技术手段[3],所以文中最终采用ZigBee技术进行网络的组建。

在网络结构方面,ZigBee技术支持星型、树型和网型三种网络拓扑形式,如图2所示。

图2 ZigBee拓扑结构

本次ZigBee无线网络设计采用图2中星型网络拓扑结构[4]。这种网络拓扑结构实际上是用一个PAN协调器与多个终端设备组合而成。在这种拓扑结构当中,首次在设备的功能全部激活时,由其自动建立起来一个特殊的网络,该网络将用它自己作为PAN协调器,同时与现有的其他星形网络自动隔离。仅仅允许PAN协调器和终端设备间进行数据通信,而各终端设备之间则需要经过PAN协调器作为中转站进行数据通信。

此网络拓扑结构涉及到ZigBee网络中拥有两种逻辑设备类型,第一种是协调器节点,第二种是终端节点[5]。设计中所用到的协调器可以通过RS232的串口,在家庭网关的工作中将数据传送出去,协调器主要负责有效信道与终端节点的搜索工作,同时根据搜索到的结果创建出相应的无线网络,并通过此网络进行数据的传送。各个终端节点接收协调器发送过来的各种指令,并通过具体指令控制相应位置的终端节点,让其进行对应的工作,从而起到控制终端节点的目的,然后把终端节点上传感器所得到的数值信息反馈回协调器节点,最后再由协调节点一并将信息转发到网关上。该系统采用的是美国德州仪器公司所生产的8051增强型微处理芯片,型号是CC2530,负责进行系统整体数据的收发[6]。CC2530内部集成了一个灵敏度较高,抗干扰性能较好的RF收发器,同时还集成了一个标准增强型的8051微处理器,运用的是2.4 GHz SoC的片上系统,拥有2个USART、21个通用GPIO和12位的ADC以及较为丰富的外部设备接口,支持4种供电模式,遵从IEEE802.15.4协议标准,可以友好地支持低功耗无线通信。对于CC2530的射频信号收发,因为其能够将无线收发模块和8051微处理器的内核集成在同一个电路上,所以在很大程度上简化了它的电路设计。天线将收到的无线射频信号经低噪声放大器与I/Q变频处理之后,得到一个2 MHz的信号,再将该信号经过滤波,放大,A/D变换,自动增益,数字解调后,最终得到一组正确的信号,驱动各终端节点正常工作。

2.2 电源模块

电源在整个系统中的作用比较重要,能否针对控制要求设计出符合系统特点的电源模块,是整个系统运行稳定的保证。按照系统的要求,在设计时主要考虑以下两个因素以保证系统正常运行:(1)稳定性,主要是要确保系统在整个运行过程中具有高稳定性,以确保整个智能家居系统能够长期处于正常工作状态,这样才能保证数据的实时性。为此在设计时加入了滤波稳压电路;(2)性价比,主要是希望用较低的成本完成更高效的工作,所以选用3.3 V直流电压源作为输入电压,因为直流电压源不但成本低,效率高且稳定性好。该系统采用两种方式供电,一种是选用Linear Technology公司的LT1085-3.3型DC-AC变换器获得3.3 V电压,另外一种是通过电池提供3.3 V电压[7]。由于在整体供电的无线智能家居领域,系统的电源模块需要具备较好的供电能力与续航能力,才能满足整个工作的需要,所以在整个系统的各节点设计中,选用充电电池与太阳能电池板相互结合的互补型供电模式。这样设计的优点是在无需人工干预的条件下能够以更加低廉和长效的成本完成整个系统的工作。

2.3 以太网

以太网在网络技术中是一种局域网技术,它的技术特点是一种广播型网络,具体应用的技术是带有冲突检测的载波侦听多路存取(CSMA/CD技术)[8]。这种网络技术的应用非常广泛,在物联网的综合应用中十分重要,可以通过以太网实现系统的远程端登录,共享不同终端的资源,并可对其进行异地管理,使资源可以最大程度地被统一调度、管理和应用,减少了因地域的局限性而造成的信息不全面和远距离管理的不便利性[9]。由于该系统使用的芯片没有自身的网络接口,所以采用了以下组合方式,即DM9000加H1102(网络隔离变压器)加RJ45的结构[10],具体如图3所示。

图3 S5PV210与DM9000的连接示意

2.4 ZigBee-WiFi数据转发端口结构

如图4所示,数据转发端口主要由S5PV210微控制器、1个ZigBee无线模块和1个WiFi无线模块组成,其中ZigBee无线模块为ZigBee网络的协调器,S5PV210微控制器通过2个串口分别与ZigBee无线模块和WiFi无线模块连接,透传ZigBee网络和WiFi网络的数据[11]。

图4 ZigBee-WiFi数据转发端口结构

2.5 报警模块

如图5所示,该模块以STM32F107VCT芯片为中央处理单元(MCU),它的外围电路有显示,摄像头监测,触摸屏,录像,煤气泄漏监测,火灾监测,自来水泄漏监测,人体防盗红外监测,室内、外语音报警,远程通信报警等模块。它的中央处理单元是该系统的核心[12]。

图5 报警系统框图

报警模块主要用于语音实时报警。当用户在室内时,如果发生火灾、自来水泄漏、煤气泄漏,这种语音报警功能对用户可以起到报警的作用。对于非法入侵,该系统也可以起到警告盗贼已被发现的警示作用。室外语音报警模块则主要用于用户离家的情形下,当用户手机接收到来自手机的报警信息,如煤气泄漏、火灾、自来水泄漏等紧急情况需要紧急处理灾情时,用户可能第一时间不能赶回,此时就可以通过选择远程通信控制室外的语音报警模块报警求助。以便小区内的安防人员可以在第一时间赶到救灾现场,将险情控制。

3 系统软件设计

系统流程如图6所示。

在该系统中,每一个功能任务都是相对独立工作的,因此选用这种以模块为单位的设计方式。这种设计不但使整个系统工作过程层次分明、维护方便,同时大大提高了整个系统的工作效率。在这样的系统中,各种家用电器以及各种传感器都可以被视作一个独立功能的节点,各节点则通过ZigBee功能模块建立起整体的网络通讯系统,实现了一种以中央系统为核心的数据控制模式对各家电进行控制,同时也以此为通道完成了各终端节点的信息反馈[13]。

图6 系统流程

系统选用Linux为开发平台,主要因为其内核代码庞大,程序丰富且具有可移植性,同时由于Linux系统属于开源平台,使得其支持的硬件比其他操作系统更多,大大简化了程序编写的复杂度和程序后续的可扩展性。这使得用户可以充分发挥主观想法,按照自己的需求编写内核程序,开发出符合自己需求的嵌入式系统,最大程度地提高系统的可扩展性。

在整个系统中ZigBee协调器作为媒介,自动组网将数据传输到相应的模块中[14],其主要的目标就是完成控制中心与各个模块节点的通信功能,保证信息可以准确无误地进行传递,所以整体数据信息的控制与监测都必须在ZigBee协调器解析命令之后才可以正常进行[15]。图7为ZigBee协调器驱动模块加载的整个过程。

首先调用init_module()函数完成模块的加载工作,然后把设备与文件注册到系统的内核中,使设备和文件在系统中得到确认。在整个程序的设计过程中,选用了中断定时方式,要求系统要用到request_irq去申请中断,通过中断的请求,用户就可以进行写数据操作或者读数据操作。

图7 ZigBee 协调器程序流程

ZigBee协调器建立网络的过程如图8所示。

图8 ZigBee组网过程

首先需要协调器全部初始化Zstack协议栈完成ZigBee组网的第一个工作,再进行信道扫描并定义网络的Personal AreaNetwork ID,最后启动网络并打开中断;当中断发送请求去接收数据或者发送数据时,系统将调用与之相关的各种函数同时把数据发送出去。在整个ZigBee通信网络组建的过程中,时常会伴随着Zstack协议栈的运行,Zstack协议栈是运行在main()中的。主函数main()首先对SRAM、硬件驱动、Flash闪存、MAC层模块进行有效的初始化工作,然后调用相关函数,以此来实现对OSAL功能的初始化工作。该函数内部有两个重要的函数:系统任务初始化函数osalInitTasks()和用户应用任务初始化函数SampleApp_Init()。osalInitTasks()函数是实现系统任务初始化并分配任务ID。执行创建的任务SampleApp_Init()。用户在这个函数中对自己的应用程序对象进行初始化,主要任务是对ZigBee终端中使用的端口和串口外设进行初始化。在该设计中,涉及到初始化的内容有系统所用的IO端口,在OSAL系统中记录相关事件,配置串口波特率,打开串口UART等工作。

4 系统整体测试结果

通过对系统进行测试,从所得的各项结论验证出系统的准确性处于何种状态。针对此项工作做了如下试验:先由整个中央的控制模块发出相关指令,然后经PAN协调器将指令转发到ZigBee的各个终端节点,再在各终端节点接收数据,然后经过串口通讯将所有数据传送到PC端,在PC端再将所发送的各种数据连同ZigBee终端节点与通过传感器接收到的现实数据进行比对。通过多次测试得到的结果如表1所示。

表1 系统检测结果

从表1可以得出,节点之间未出现大的干扰,且能高效地进行整体系统运行,并使系统处于稳定且通信效果准确的状态。由此可以判定,系统的工作很好地满足了设计之初的各种控制要求。

5 结束语

该设计创新性地利用各种专业技术特点解决物联网家居中的能耗、准确性、稳定性和扩展性问题,形成一套更为有效的智能家居系统,使其能够更好地为大众家庭服务。通过对系统软件结果的测试,很好地验证了系统的整体性能,各项指标均可达到设计要求,为物联网智能家居在低能耗,高准确性,高稳定性和易扩张性方面提供了一套行之有效的解决方案。

猜你喜欢

智能家居报警终端
智能家居在室内设计中的应用研究
复杂线束在双BCI耦合下的终端响应机理
终端拜访工作中的七大漏洞
X美术馆首届三年展:“终端〉_How Do We Begin?”
智能家居数据采集及应用研究
“吃人不吐骨头”的终端为王
基于Zigbee的智能家居系统的研究
2015款奔驰E180车安全气囊报警
智能家居未来感初体验
2014款奥迪Q5车发动机OBD灯报警