微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ZigBee无线网络的嵌入式智能家居监控系统

基于ZigBee无线网络的嵌入式智能家居监控系统

时间:03-18 来源:3721RD 点击:

在主节点和子节点之间进行传输。智能家居中的无线传感网络结构如下图2 所示。

图2 智能家居中的无线传感网络结构

图2 智能家居中的无线传感网络结构

1.2.智能家居监控系统中的有线网络方案

在单个家庭中的网络连接可以选用无线传感网络,而如果要对整个一栋大楼、一个小区进行统一化的管理,无线传感网络的优势就不那么明显了,而且对于整个小区的网络来说,它所承载的数据流量就很大了,对于无线传感网络这种低通信速率网络来说是不合适的。

以太网是当今现有局域网采用的最通用的通信协议标准。它连接方便,可屏蔽干扰,通信速率可达10/100/1000Mbps以上,而且成本低廉。目前大部分的小区都要宽带网,因此集中网络管理采用比较流行的而且易于实现的以太网连接具有良好的性价比。

在本课题中,家庭网络部分采用无线传感网络来监控,无线采集协调器再将采集的数据发送到数据处理模块,最后经过处理后的数据将通过以太网传输到上位机上。从而组成小区的监控系统,如下图3所示。

图3  小区监控系统

图3 小区监控系统

1.3.uC/OS-II的移植

实时系统中任务的执行大多数都是由外部事件触发的。也就是说,实时操作系统的主要工作就是响应并处理各种外部事件。因此,对于每个外部事件都对应有一个处理这个事件的程序模块,这些模块就是任务。在移植前,把问题分析清楚,将问题分割成多个任务,每个任务都是整个应用的一部分,被赋予一定的优先级,有自己的一套CPU寄存器和堆栈空间。任务执行一次后,设置延时OSTDIy,表明经过OSTDIy个定时器中断周期后任务再次运行,然后进行任务切换,让处于就绪态的优先级最高的任务运行。uC/OS-II的任务实际上就是一段程序,在运行该程序时,可以认为CPU就完全属于该程序本身。在本设计中,所移植的系统建立了8个任务(参照见图2):

0号任务,用来监测安防传感器(煤气泄露)。在执行该任务时通过ZigBee网络协调器选择与安防传感器(煤气泄露)终端节点通信,采集传感器数据。

1号任务,用来监测安防传感器(温度)。在执行该任务时通过ZigBee网络协调器选择与安防传感器(温度)终端节点通信,采集传感器数据。

2号任务,与0号任务对应,将安防传感器(煤气泄露)采集的数据最终通过以太网上传到上位机上。

3号任务,与1号任务对应,将安防传感器(温度)采集的数据最终通过以太网上传到上位机上。

4号任务,用来控制冰箱、空调、电视、灯的电源开关,通常情况下,这些开关型控制,只用一个任务就可以完成,只要在执行该任务时,同时通过ZigBee网络协调器同时发送一个16位地址符就可以选择出所要执行开关任务的终端节点。

5号任务,单独为窗帘建立一个任务。因为窗帘的控制是一个闭环控制。

6号任务,为电表、水表、燃气表的数据采集建立一个任务。因为水表、电表、燃气表的数据对实时性要求没有那么高,可以分时采集,在执行该任务时,同时通过ZigBee网络协调器同时发送一个16位地址符就可以选择出所要执行数据采集任务的终端节点,另外,还要为该任务调用一个延时函数,并设置延时时钟周期数,从而最终实现在三表间轮流数据采集。

7号任务,用来对三表数据上传到上位机建立任务。对应于任务6,分别将从水、电、燃气表采集的数据立即上传。

它们具有各自独立的堆栈空间和不同的静态优先级,0号任务优先级最高,7号任务优先级最低。对于0号任务---3号任务,由于它们是保证家居安全的是不允许中断响应的,所以在这些任务开始执行时,一定要关闭中断。

1.4.基于Visual C++的上位机显示界面设计

在整个智能家居监控系统的设计当中,上位机(PC机)可以为用户提供一个友好、交互的人机界面。假如管理人员需要调用小区中任意一户的数据记录时,可以查询该上位机的存储的数据即可。这里我们利用Visual C++编写上位机的管理界面,主要采用了Windows Sockets网络接口控件,大大简化了设计难度。

首先,Windows Sockets作为Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用。重要的是,Windows Sockets是基于TCP/IP协议的,应用程序调用Windows Sockets的API实现相互之间的通信,而Windows Sockets则是利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作的。

2.软件流程介绍

2.1智能家居中ZigBee无线传感网络中终端节点流程

网络建立成功后,需要添加终端设备(终端节点)进入这个网络。允许设备同网络连接的流程图如图4所示。终端设备通过发送NLME-JOIN.request原语来开始执行孤点方

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top