智能家居控制系统,是以智能家居系统为平台,家居电器及家电设备为主要控制对象,利用综合布线技术、网络通信技术、自动控制系统、音频技术等将家居生活有关的设施进行高效集成,提升家居智能、安全、便利、舒适,为我们的生活带来很的方便性。随着物联网技术的飞速发展,随之而诞生的智能家居成为了物联网技术中的佼佼者。智能家居是随着人们生活水平的提高而逐渐发展起来的朝阳产业。它的出现给人们的生活带来极大的便利;同时,智能家居的出现也带动了一大批经济产业。对于传统的智能家居而言,功能相对单一,且不能将各种家电设备之间进行有效互联;再者传统的智能家居一般采用有线的方式进行组网,组网不便,维修不易。
本文设计了一个基于ZigBee的智能家居控制系统,该系统巧妙地使用了ZigBee的一大优势--自组网功能,完全避免了传统的组网方式。ZigBee技术具有组网简单、方便,且组网容量大等优点。本智能控制系统将ZigBee技术和家庭智能网关技术有效结合,以MYD-YG2UL为智能网关的处理器,在MYD-YG2UL嵌入一个Linux系统,该系统是一个高度集成的网关系统,从而对家庭设备进行本地和远程操作,真正实现了家电设备的智能化。
本项目尝试通过构建一体化、实时控制的智能家居,可用于普通居民家庭、大中小型商场以及工业领域等。下图展示了家居智能设备与终端系统互联情况。MYD-YG2UL作为控制端,与家具智能设备直接连接,并接有传感设备。同时,MYD-YG2UL作为端点与云端相连,为云端提供家具智能设备的运行情况并接收云端控制命令。远程终端设备可通过云端实时查询和控制家居智能设备。
本文所提出的智能家居系统解决方案整体框架如图所示。通过技术论证和架构分析后,决定将系统划分为三个子系统:ZigBee无线传感器监控子系统,网关子系统,监控子系统。ZigBee无线传感器监控子系统通过各个传感器节点采集数据,将采集的数据通过无线网络系统传递给路由节点,再通过路由节点将收集的各个终端节点的数据进行二次传递给协调器,由协调器与智能网关进行数据交换,以完成数据的传递。用户就能在远程进行查家中的各种环境信息,实时掌握家中的最新动态。网关子系统有两大作用,一是连接以太网;二是搭载摄像头采集视频数据,实施远程监控的功能。智能网关为整个智能家居系统的核心所在,协调各个子系统正常运转。
在系统提供在线查看安全监测数据的功能,通过多传感器采集数据,搭建无线局域网,实时同步各个传感器信息,实现全方位的安全监测和报警功能;同时搭建了Web服务器,供用户远程查看监控信息。
4.1 ZigBee无线传感监控子系统
ZigBee协议为智能家居环境监测提供了无线自组局域网解决方案。协调器节点可以实时获取到各个终端节点的环境信息,实时传递给用户便于用户查看,路由节点用于终端节点的二次传递,起到信息传递的作用;终端节点用于通过各个传感器收集环境信息,判断采集信息是否达到预警、报警阀值,是否执行相应动作,将用户指定的信息数据通过路由器传递给终端节点,最后在传递给用户,方便用户了解环境信息。
4.1.1 ZigBee工作流程图
ZigBee的工作流程图如下图所示。
Figure 4-1 Z-Stack 工作流程图
Z-Stack采用操作系统的思想来构建,采用事件轮循机制,而且有一个专门的Timer2 来负责定时。从CC2530工作开始,Timer2 周而复始地计时,有采集、发送、接收、显示等任务要执行时就执行。当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以极大地降级系统的功耗。整个Z-Stack 的主要工作流程,如图所示,大致分为以下6步:
关闭所有中断;
芯片外部(板载外设)初始化;
芯片内部初始化;
初始化操作系统;
打开所有中断;
执行操作系统。
4.1.2 ZigBee建立网络、加入网络流程分析
本设计主要是用ZigBee组建网络系统,建立网络、加入网络为本设计的一个重点,下面分别介绍协调器建立网络、路由器加入网络、终端节点加入网络的组网过程。协调器的建立网络过程如下图所示。
Figure 4-2 协调器建立网络过程
从上图可以发现,网络的建立是从ZDO来实现的,网络建立后,从应用层收到ZDO_ATATE_CHANGE消息,对该消息包含当前节点网络状态。路由器节点加入网络过程如下图所示。路由器加入网络的过程是由ZDO实现的,当路由器加入网络以后,在应用程会收到当前节点的网络状态。
Figure 4-3 路由器加入网络过程
终端节点加入网络如下图所示。由下图可知,终端节点加入网络的过程也是由ZDO实现的,在应用层收到该节点的信息后,即可读出当前的网络状态。
Figure 4-4 终端节点加入网络过程
4.1.3 ZigBee环境监测流程
环境监测的流程图如下所示。
ZigBee各个节点进行初始化化后进行组网,各个终端节点不断采集环境信息,在一切准备妥当之后,协调器就会定时向网关环境信息。ZigBee子系统与网关通过ser2net实现交互,将ZigBee子系统的协调器的串口数据传给网关,网关通过TCP协议与外界交互。智能网关上电后,进行系统初始化,网络连接等,等待协调器发送环境信息,当接收到数据后,通过无线网络将数据发送至云端。云端得到相应的数据后,绘制每个终端的温湿度曲线,也可实时查看当前的环境信息。当然移动端也可获取环境信息,同时也可控制家电设备。另外,为了保证数据传输的可靠性,设计了简单的数据传输协议保证数据的可靠交互。
4.2 网关/监控子系统
网关/监控子系统有摄像头、智能网关和移动终端组成。智能网关上电之后完成板级初始化,连接号WiFi,初始化摄像头。当有用户请求视频信息时,智能网关立即获取摄像头数据传给用户。
5.1 ZigBee无线传感监控子系统
IAR编译
打开工程
\ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Utilities\SerialApp\CC2530DB\下的SerialApp.eww。
Figure 5-1 编译固件
编译完后单击下载按钮。
Figure 5-2 编译完成
固件烧写
使用SmartRF Flash Programmer烧写Hex固件到ZigBee节点,将Coordinator.hex和EndDevice 1-4.hex分别下载到协调器和终端。注意:如果没有那么多板子的话,只要下载 Cocodinator.hex和 EndDevice1.hex就可以了。
Figure 5-3 下载方法
上位机调试
一定要给协调器先上电,因为使用的USB转串口,程序自动识别串口。笔者提供免安装和安装版本,在这里使用免安装版本,双击ZigBee.exe。笔者这里这是为自动刷新数据。笔者使用了一个终端,可看到如下图所示的信息。
Figure 5-4 上位机软件
手机控制
如果想手机也控制则需要有无线路由器,手机打开 wifi 并连接好后,先点网络设置,输入电脑 IP 地址后点连接,手机显示连接成功后,会自动刷新数据。如下图所示。
Figure 5-5 手机网路设置及控制
5.2 网关/监控子系统
网关子系统可以使用Yocto或者Openwrt系统,其中有几个关键组件,下面一一讲解
具体步骤,请参见米尔公众号:
https://mp.weixin.qq.com/s/vgqdP3Kr3_9f7oCKtlyyWg
由于此项目中涉及到的知识非常的多,如:
Linux开发,包括系统移植,驱动开发等
电脑端C#程序,包括串口、界面开发等;
搭建安卓开发环境,学习安卓界面开发,安卓的socket通讯;
ZigBee组网实验,多终端通讯,对于简单项目在我们上面修改一下就可做成自己的产品;
项目中使用的通讯协议是基本Modbus协议修改而来的,结构相同只是命令码不同,更标准、更完善。
MYC-YG2UL核心板及开发板
基于RZ/G2UL处理器,通用64位工业MPU
RZ/G2UL是瑞萨一款高性能处理器;
内核Cortex-A55@1.0GHz CPU、Cortex-M33@200MHz;
16位DDR3L/DDR4接口以及LCD控制器;
摄像头输入、显示输出、USB2.0和千兆以太网;
尺寸37mm*39mm,工业级:-40℃-85℃,邮票孔+LGA,190PIN;
应用:工业网关、入门级工业HMI、医疗器械、PLC控制器、充电桩、储能系统。
本篇评测由优秀评测者“Bruceou”提供