邵琳
南京中兴软件有限责任公司 江苏 南京 210012
摘要:可靠、适用的通讯网络是智能家居的重要组成环节,一个典型的家居通讯网络可以由终端、主网关、服务器、客户端所组成。其中终端采用TI公司推出的具有ZigBee协议的微处理器CC2530,并构成ZigBee局域网,包括节点、路由器、协调器;主网关采用联发科7688硬件+OpenWrt系统,使用中移物联网开放平台做服务器后台,实现数据的交互。通过温湿度状态显示以及排插远程操作的测试,验证了智能家居通信网络架构的可行性。
关键词:智能家居;ZigBee;OpenWrt;服务器;客户端
引言
伴随着科技的不断进步,生活水平也在逐渐提高,对于家庭居住环境的智能化是人们追求高生活质量的展现之一,主流趋势便是将无线网络技术应用于家庭网络中。通过智能化手段,连接家庭中的电器设备,是物联网在现代家庭中重要的体现[1]。家居的通讯网络架构决定智能家居系统内部之间数据传输的效率和速率,通讯网络架构的研究,对家居设备的应用设计有着重要的意义。
1系统整体结构
智能家居的通信架构由终端、网关、服务器、客户端组成。终端主要由Zigbee组成的控制通信网络,连接着灯、电动窗帘、红外线收发器等传输速率要求不高的设备,对于视频和语音数据使用WIFI来传输。家居网关则是数据信息相互转换的设备,红外网关由CC2530设计,目前还有很多的家用电器是使用红外线控制,比如空调、和电视机。主网关有担任着家庭主机的任务,通过接收终端的数据和从服务器中查找历史数据,进行分析处理后,实现智能控制。服务器是一个数据库,服务器云使用中移物联开放平台,中移云已经提供了设备管理,比如设备的查找,安装,卸载,客户端则是网页或者手机APP,用户使用浏览器读取服务器中的数据并解析,显示出家庭设备环境参数。用户要控制家电,则通过网页访问服务器,服务器再将控制数据发给家庭网关,家居网关再将数据发送给响应的设备,设备再执行相应的动作。
2硬件设计
2.1CC2530最小系统
CC2530是一个应用于IEEE802.15.4、Zigbee和RFCE4的片上系统解决方案,拥有增强工业标准的8051MCU,片上有可编程FLASH,8 kB RAM和许多外设。终端设备可以直接运用CC2530构成应用设计,而不需要其它MCU,降低了成本。CC2530最小系统可分为时钟电路,复位电路、下载仿真电路、射频输入输出匹配电路[1]。
2.2温湿度检测
DHT11是数字式温湿度传感器,可以直接连接到CC2530的数字I/O口。DHT11拥有功耗低,体积小的特点,其内部包含电阻式感湿元件和一个NTC测温元件。MCU通过单总线协议来读取DHT11的数据,单总线协议中一条总线可以挂无数个器件,线路简单。传感器数据接口为开漏输出,需要加上拉电阻,一般当总线连线长度少于20 m时,上拉电阻取5 k适宜。D数据与CC2530的P0.2相连[2]。
2.3智能插座
智能插座属于ZigBee局域网中的终端,每个插座输出口通过印制板继电器触点的闭合状态来实现开和关,或者通过固态继电器控制插座口的火线。两类继电器控制可以由CC2530的I/O口来实现,这样将排插接入了局域网,可以实现远程控制。一般MCU的I/O口灌拉电流比较小,而继电器驱动电流相对较大,可靠驱动电流值约50 mA,可以在I/O口外接开关电路,如采用小功率三极管9013以驱动继电器。对于印制板继电器而言,继电器线圈就是一个电感,在线圈断开瞬间,会有很大的反向电动势,所以在应用中继电器线圈需要并接一個续流二极管,即保护小功率三极管,也可以消除对电源的干扰[3]。
2.4红外网关
很多家用电器是通过红外遥控器控制的,要想通过手机远程操作,就需要清楚家用电器的红外编码指令,这样才能把从手机端来的网络数据变成红外数据指令,显然解码不同家用电器的遥控红外指令是必需的。
YIRTX02是一款集红外编码和解码功能为一体的芯片,能够学习上99%的红外遥控器,内部嵌入了MCU,而且已经烧入了固件,通过串口和外部通信,芯片从红外接收管接收到红外数据,在芯片内部处理之后,通过串口TX端口将处理好的数据包发出。外部MCU发数据协议包到RX端口,YIRTX02经过对数据的处理,再经过红外编码,将信号从红外发送器发出,控制YIRTX02的MCU为CC2530,则可以红外网关作为ZigBee网络中的终端节点[4]。
2.5主网关
Linkit Smart 76880 Duo开发板有TX和RX引脚,直接分别连到Zigbee局域网中协调器上的CC2530 的RX和TX硬脚上,这样主网关与Zigbee局域网构成了有效的数据链。并且,开发板上有WIFI收发电路,可以直接通过WIFI连接到互联网,板上有HOST USB接口,可以通过USB摄像头,采集图像数据。
3软件设计
3.1ZigBee局域网和网关的协调
主网关是整个智能家居通信架构的核心,一方面承担着数据的传输任务,同时还具备控制主机的功能。在局域网络中每个节点设备的信息、数据都是在主机中不断更新和保存,通过协调器来连接网关和各个设备,协调器作为系统的第一个节点,负责无线网络的建立和参数的配置。当数据来自于节点并发送给协调器时,需要利用协议簇(Z-stack)来对数据类型进行划分,而当数据为透传数据时则不需要进行区分,直接传给网关。通过协调器搭建好局域网后,从每个设备节点获取设备信息,向网关发送所有设备的有关信息,并初始化系统中的所有设备列表。接着,两者便会不停的进行发送和接收的操作,协调器从节点接收到的数据大致分两种类型,一种是Z-stack协议栈的内部消息;另一种是节点发给网关的透传数据,透传数据指的是从硬件设备传送给传感器等设备后,需要上传的数据。网关发给协调器的数据也分两种,第一种是直接给协调器的数据;第二种是透传发给终端设备的数据,它指的是远程发送的指令。当收到来自于协调器的数据后,网关将更新设备列表中的内容,同时上传有关数据给服务器。而当收到来自于服务器的命令时,网关会迅速透传给节点,确保命令的时效性[5][6][7]。
3.2Linux 网络编程
Linux的网络编程采取Socket套接字,发送和接收就是通过write()函数和read()函数,Socket就是应用层和TCP/IP层之间的中间层,在编程时不需要考虑具体数据的有关操作。Socket通信是成对出现的,分别是sever端和client端,标准的套接字分为TCP和UDP两种方式,TCP是面向连接的服务,其优势在于能够精确发送和接收数据,而UDP协议是面向无连接的服务,可能无法正确的对数据进行收发。所以在通过socket函数创建套接字时,选择TCP数据格式。
3.3数据上传和远程控制
这里采用EDP协议的目的一是为了对家电设备进行远程控制,二是保证家电设备中的数据上传。EDP消息包的组成元素有:消息类型(一个字节)、剩余消息长度(1-4字节,指示选项+消息体的长度)、选项(根据消息类型0个或多个)、消息体(根據消息类型0或多个字节)。消息类型如表1所示,程序设计时需要用到的消息类型有CNN_REQ、CONN_RESP、SAVE_DATA、SAVE_ACK、 CMD_REQ、CMD_RESP、PING_REQ、PING_RESP。
初始化系统之后,通过套接字连接平台服务器地址jjfaedp.hedevice.com,TCP 端口876。向服务器发送连接请求,登录设备。网关接收到连接响应之后,表示网关正常登录。通过SAVE_DATA类型消息包,网关将需要更新的数据发送给服务器,等待服务器的响应,当接收到SAVE_ACK消息包数据表示数据成功上传。数据在服务器中的保存时限为一年,手机APP客户端可以通过服务器查询数据。当远程客户端发送控制指令,表示服务器发送CMD_REQ命令请求,此时网关将数据发送至对应的ZigBee终端。整个过程需要周期性地向服务器发送心跳包并等待服务器的心跳应答,若无反应则可能是因为某种原因与服务器失去连接,需要重新登录。
结论
通过对整个系统的制作与调试,验证了智能家居通信网络架构是可行的,通信架构的传输速率满足要求,其中服务器发送命令到网关,所需的时间是300 ms,网关再发送到终端需要200 ms,命令响应需要500 ms,从客户端发送命令到终端,再接收到响应需要约1s時间。在用户界面的显示中,数据只能3秒刷新一次,图片只能5秒刷新一次,造成这种情形的原因是服务器所决定的,因为服务器是免费的,所提供的带宽非常小。在大型的智能家居系统中需要选择带宽大的服务器来满足大数据传输要求。
参考文献
[1]毕赣斌,何勇,赵诗辞.基于ZigBee技术的智能家居控制系统的设计[J].计算技术与自动化,2017,36(1):74—77.
[2]彭银桥,吴吉.基于ZigBee技术的智能家居控制系统[J].电子技术与软件工程,2018,(8):43—44.
[3]杨帆,宋开怀.基于Zigbee网状网络的智能家居系统[J].自动化与仪器仪表,2018,(5):105—108.
[4]祝振宇,陈冰红.基于ARM及ZigBee的智能家居远程监控系统实现路径[J].自动化与仪器仪表,2019,(3):182—185.
[5] 陈培英,王承林,胡红林,等.基于ARM及ZigBee的智能家居远程监控系统实现路径[J].现代电子技术,2017,40(19):41—44.
[6] 沈显庆,崔保峰,张欣欣,等.基于ZigBee技术的家居环境监测系统的设计[J].工业仪表与自动化装置,2016,(5):92—95.
[7]任瑾,龙小丽,张晓亚.基于ARM和ZigBee技术的智能家居系统的设计[J].自动化应用,2017,(8):49—51+54.