一、项目概述
1.1 项目摘要
随着数字技术和嵌入式技术的快速发展,各种各样的数码产品如雨后春笋般出现在人们的面前,而且与人们工作、生活密切相关的产品都已实现或正在实现数字化。人们对于这些产品的要求也逐渐从数字化向智能化转变,为了满足人们的这种需求同时也打破传统数字输入设备的局限,我们拟采用ST公司的STEVAL-MKIO62V2开发平台结合Zigbee技术制作一个智能家居控制系统,能够为人以后的智能化生活提供一种可能的实现方案。
1.2 项目背景/选题动机
从某种意义上说,现在的人们生活在两个世界之中:一个是虚拟的数字世界;另一个是现实的物理世界。传统上,人们只能通过键盘、鼠标、遥控器、开关等输入设备来连接这两个世界,而这些输入设备在使用空间和使用方式上都有很大的局限性。为了打破这些局限,我们采用ST公司的STEVAL-MKIO62V2开发平台建立了一个用户手势识别系统,它可以识别用户的手势动作同时转变为相应的设备控制信号和设备输入信息,进而对设备进行控制。同时,我们还采用Zigbee技术将每个家电产品作为一个节点共同组成一个无线网络,在这个网络中用户只用一个主控制器就可完成对网络中所有产品的实时控制。
二、需求分析
2.1 功能要求
系统总体功能要求:
1、主设备组建一个Zigbee网络,区域中的从设备可以随时加入其中,并且信息可以从主设备传输至任意从设备处。
2、使用者通过手持主设备同时做一些简单的手势,即可操控相应的从设备。
3、系统实现用户管理功能,即不同的用户权限不一样,可以使用的家电也不一样。
4、系统实现防盗功能,只有系统用户才能启动主设备。如果非系统用户强制使用主设备,系统会自动锁定。
5、系统中家电实现智能化工作,当用户所处环境满足一定条件时,可触发特定的电器执行特定的操作。
6、系统实现家电工作信息采集,每天从设备都会将自己的工作时间等信息发送至主设备处,主设备进行统一后写入SD卡中,用户可通过电脑查看SD卡中保存的家电工作信息。
系统主要模块功能要求:
1、STEVAL-MKIO62V2开发平台完成用户手部动作的物理信息的采集及处理,结合相应算法完成指令的确定,并通过软件将指令发送至主设备Zigbee模块处。
2、主设备Zigbee模块完成与STEVAL-MKIO62V2开发平台的通信、无线网络的建立以及指令的发送,从设备Zigbee模块完成主设备网络的搜寻及加入、指令接收和硬件接口电路的控制。
系统从设备数字输入控制电路功能要求:
1、日光灯控制电路根据指令完成日光灯的开启/关闭功能。
2、鼠标PS/2接口电路,按照指令解码并按照PS/2协议向PC机发送数据,进而完成鼠标的控制功能。
3、MP3/MP4控制电路,根据指令完成MP3/MP4的开启/关闭、上一曲/下一曲、增大/减小音量功能。
4、电视机控制电路,根据指令完成电视机开启/关闭、换台、增大/减小音量功能。
5、风扇控制电路,根据指令完成开启/关闭、风量调节功能。
以上数字输入控制电路的功能根据项目进展情况会进行适当增减。
2.2 性能标准
1、整个Zigbee网络组网稳定,且网络组成后可随时进行从设备的扩展,信息可快速在网络内传输,传输延时控制在0.1秒内。
2、STEVAL-MKIO62V2开发平台采集、处理数据要快,在0.1秒内要完成手势识别及指令确定,且能够准确识别使用者简单的手势信号。
3、系统用户管理系统支持两种级别的用户:一种是家长用户;另一种是儿童用户。两种用户级别有不同的用户权限。
4、系统防盗系统能识别用户登录手势,在出现3次错误登录手势时,整个系统自动锁定。
5、系统主设备完成SD卡FAT32文件系统的操作,PC可以读出SD卡中主设备存储的信息。
6、日光灯、电视机、MP3、风扇、鼠标PS/2控制电路响应要迅速,在用户手势完成0.2秒内要作出相应的响应。
三、方案设计
3.1 系统功能实现原理
3.1.1 系统设备类型概述
在本项目设计的系统中,有主设备和从设备两种设备类型,使用者通过主设备向从设备发出指令,从设备接收指令并进行相关操作。
系统中的主设备主要完成使用者手势识别、指令发送。其中使用者手势动作的物理信息采集及处理由ST公司提供的STEVAL-MKIO62V2开发平台完成,其平台集成了5个传感器:2轴roll/pitch陀螺仪LPR430AL、单轴yaw陀螺仪LY330ALH、6轴磁力计LSM303DLH、压力传感器LPS001DL和温度传感器STLM75DS2F,并有一个PC机软件配合使用。主设备通过采集这些传感器的实时信息再配合相应的算法处理进而获得使用者的手势信息,之后系统再将这些信息与预设值进行对比以确定要发送的指令,指令确定后主设备通过zigbee模块将信息发送到网络中相应的从设备处。
系统从设备接收到主设备发送的指令后先对指令进行解码,然后对相应产品进行控制。
3.1.2 系统主设备硬件电路概述
系统主设备的硬件分为两个部分,如图2所示。图中左边的部分即为STEVAL-MKIO62V2开发平台,它完成使用者手势信息的采集及相关处理,再通过UART与Zigbee模块通信;图中右边的部分为Zigbee模块完成Zigbee网络的组建以及命令的发送,这一部分的硬件电路需要我们自己设计完成。
图1 主设备硬件结构图
3.1.3 系统从设备硬件电路概述
系统从设备硬件也分为两个部分,如图3所示:一部分是Zigbee模块相关的硬件电路;另一部分是从设备相应的数字控制及输入接口。目前,本项目规划要实现的从设备数字接口有:1)日光灯的控制电路;2)鼠标的PS/2接口;3)MP3、MP4的无线控制接口;4)电视机的遥控器接口。
图2 从设备硬件结构图
3.1.4 系统Zigbee组网原理
系统中的主设备和从设备均处在同一个Zigbee网络中。系统的Zigbee网络是点到多点的叉状网络结构。系统Zigbee网络的组建由主设备中的Zigbee模块完成。其他从设备上电后,其Zigbee模块就会寻找主设备的网络是否存在,一旦存在则立马加入到网络中,从而构成整个智能家居系统的网络。系统结构框图如图1所示:
图3 系统结构图
3.1.5 用户手势识别原理
用户在要发出手势指令时,首先按下设备选择按键或指令发送按键,主设备STEVAL-MKIO62V2开发平台开始采集传感器数据;接着在用户松开按键之后,STEVAL-MKIO62V2开发平台停止采集传感器数据,并根据相应算法进行数据处理并与预先存入的信息进行比对,最终确定要发送的指令。
3.1.6 指令传输及解码原理
主设备的STEVAL-MKIO62V2开发平台确定要发送的指令后,通过UART将指令发送至Zigbee模块处,Zigbee模块再将指令通过Zigbee网络发送至从设备的Zigbee模块上。其中,不同的从设备对应不同的指令,即不同的从设备对应用户不同的手势,而且从设备只会对自己的指令做出响应。
3.1.7 主设备对从设备的控制原理
在控制一个从设备时,首先用户要按下设备选择按键并做出相应的手势,选定要控制的从设备,该从设备被选定后其上的指示灯会亮起,表示该设备被选定;接着用户再按下指令发送按键并做出相应的手势即可对选定设备进行操作。
3.1.8 系统用户管理实现原理
系统共设计两种用户级别:家长用户和儿童用户。两种用户的权限不一样,家长用户可以无条件的使用网络内的任何家电,并且可以控制儿童用户使用某些家电的权限。具体实现原理为:在进行设备选择时,主设备需要将用户的手势与预先保存数据对比,进而确定用户选定的设备。家长用户在选择信息时,预先保存的所有家电的数据都是可见的并且参加数据的对比,而儿童用户根据家长用户的设定,某些家电预先保存的数据不可见也就不参加数据的对比,从而也就无法选定该设备也无法对其进行操作。
3.1.9 系统防盗功能实现原理
用户开启主设备后,主设备建立Zigbee网络,但是用户并不能马上使用主设备控制从设备。首先,用户必须输入登录手势,主设备对登录手势进行识别;接着,主设备确定用户为系统用户后,才会启动系统的正常功能。如果用户输入了三次错误手势,系统将进行自动锁定,主设备向从设备发出防盗信号,然后断掉Zigbee网络。
3.1.10 系统家电智能化工作原理
系统可以根据用户需求提前设定某些特定电器自动开启或自动关闭的条件,这些信息都保存在主设备中,在系统正常工作后,主设备每隔一段时间会采集传感器的信息,然后将这些采集来的传感器信息与预先设定的阈值进行比较,一旦采集来的信息超过阈值,则主设备会根据存储的信息向特定的电器发出指令,进而控制这些电器。
3.1.11 系统家电工作信息采集原理
系统每天会对各个家电的工作时间进行统计,每天同一时间各个从设备都会将自己一天工作的时间发送给主设备,主设备将信息统计后统一写入SD卡中指定的文件里。在此,主设备要完成SD卡FAT32文件系统的建立,这样才能使PC读取出SD卡中存储的信息。
3.2 硬件资源配置
项目中系统主设备信息采集处理部分采用的传感器和处理器基于STEVAL-MKIO62V2开发板,使用到的开发板资源有:温度传感器、压力传感器、加速度传感器等。
除此之外我们还要设计Zigbee模块相应电路以及各种从设备的数字控制、输入接口电路。
3.3系统软件架构
系统软件框图如图4所示:
图4 系统软件框图
系统软件分为主设备软件和从设备软件。
系统主设备软件主要分为两个部分:STEVAL-MKI062V2开发平台软件和Zigbee模块软件。STEVAL-MKI062V2开发平台软件又包括:传感器信息采集及处理、手势识别及指令传输、系统管理;Zigbee模块软件包括:Zigbee网络组建、指令发送、STEVAL-MKI062V2开发平台通信。
系统从设备软件也分为两个部分:Zigbee模块软件和数字输入接口软件。Zigbee模块软件包括:Zigbee网络搜寻、指令接收、数字输入接口控制。数字输入接口软件包括:Zigbee模块通信、指令解码及操作。
3.4 系统软件流程
系统主设备的软件流程为:首先,主设备在上电以后会建立Zigbee网络,使得区域内的从设备可以加入到这个网络中内,进而用户可对这些从设备进行控制;其次,主设备的STEVAL-MKI062V2开发平台会检测用户是否有新的手势输入。若没有新的手势输入则STEVAL-MKI062V2开发平台不进行其他操作只是否有新手势输入的判断,若有新的手势输入STEVAL-MKI062V2开发平台会对手势进行识别并确定其对应的指令;接着,主设备就将确定的指令发送至从设备处,其主要流程为:STEVAL-MKI062V2开发平台通过Zigbee模块通信软件将指令发送至主设备Zigbee模块处,主设备Zigbee模块再将指令通过无线网络发送至从设备Zigbee模块处。指令发送完毕后,主设备再检测用户是否有新手势输入。系统主设备软件流程图如图5所示:
图5 系统主设备软件流程图
系统从设备的软件流程为:首先,从设备上电后会检测区域内是否存在主设备建立的Zigbee网络,如果不存在从设备不进行任何操作继续检测主设备的Zigbee网络,如果存在则从设备加入到主设备的Zigbee网络中;接着,从设备的Zigbee模块不断查询是否有主设备发送来的新指令;进而,当Zigbee模块接收到新指令时,Zigbee模块将指令传送至从设备的数字输入接口,由数字输入接口的软、硬件完成对从设备家电的控制。系统从设备软件流程图如图6所示:
图6 系统从设备软件流程图