基于ZigBee技术的嵌入式Web智能家居远程监控系统
设计说明书
一、 系统概述
1. 智能家居
智能家居又称为智能住宅, 在国外常用Smart Home 表示。与智能家居含义近似的有家庭自动化(Home Automation)、电子家庭(Electronic Home、E-home)、数字家园(Digital Family)、家庭网络(Home Net/Networks for Home)、网络家居(NetworkHome)、智能家庭/建筑(Intelligent Home/Building)等。
智能家居系统利用先进的计算机技术、网络通讯技术、综合布线技术将与家居生活有关的各种子系统有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全。智能家居可以提供全方位的信息交换功能,帮助家庭与外部保持信息交流通畅,优化人们的生活方式,增强家居生活的安全性,甚至为各种能源费用节约资金。
2. 本系统拟研究内容
通过Web Service从网络获取天气预报并在只能终端显示,辅助智能设备决策,例如窗帘的开关,空调温度的调节。基于NFC技术的门禁系统,将NFC手机模拟为门禁卡。
目前,各种智能家居系统的设计多以有线为主,但有线技术并不适用于智能家居的普及,安装难度大以及价格昂贵的缺点限制了其发展。因此无线通信技术应用到智能家居中必将成为将来的发展趋势和潮流。
本项目对家居设备通过ZigBee 进行无线组网, 把家居设备的信息和数字视频传输到因特网网络上,在因特网上设立一个"无线视频网关"WEB 服务器,可供外部访问;将家居信息如温度进行实时的显示并进行后续的利用控制;同时将收集各处传输进来的数字视频进行后续的处理和识别。
对基于ZigBee 技术对嵌入式Web 的智能家居远程监控系统进行研究和设计。对家居设备通过ZigBee 进行无线组网,把家居设备的信息和数字视频传输到因特网网络上,在因特网上设立一个"无线视频网关"WEB 服务器,可供外部访问。实现将家居信息如温度进行实时的显示并进行后续的利用和控制;同时将收集各处传输进来的数字视频信息进行后续的处理和识别。如入侵检测,人脸检测和识别等。
二、 系统功能
1. 视频采集、人脸识别、远程监控
2. 天气预报
3. 门禁
三、 系统总体设计方案
1. 开发板参数
1) Real6410开发板
本项目所使用开发板为Real6410 开发板,采用三星公司的ARM11 内核的处理器S3C6410.开发板上还集成了123 M的DDR 内存以及1 GB NandFlash, 同时预留了256 kNorFlash.底板上还提供两个四线RS-232 串口, 一个USBHOST 接口,一个10 M/100 M 自适应以太网接口等外设。
2) NFC门禁系统开发板
PN532是NXP最近推出的一款NFC芯片,支持读卡器模式和卡模式(需要卡芯片Smart MX),支持TypeA、TypeB、TypeC三个标准,内部带一个MCU51,支持命令方式,可以直接跟PC机串口连接就成为一个NFC/RFID读卡器,简单方便,成本低,性能好。电路板天线经过数学公式的计算,达到最佳的匹配效果,3.3v供电,读卡距离控制在4cm内。
读卡器通过串口和电脑连接,上位机可以使用libnfc,libnfc是一个开源的软件,功能特别强大,实现了很多nfc的功能,例如读卡器初始化、建立连接、传输数据等等。
2. 系统架构设计
本项目主要完成智能家居的环境变量和视频信号的监控。整个系统包括一块ARM11 开发板,一个16 位单片机,2个USB 的CMOS 摄像头;一台PC 机(运行客户端的监控程序)根据功能的不同,整个系统可划分由视频采集模块、数据压缩、编码模块和视频监控PC 等组成。采集模块包括USB摄像头; 数据的压缩编码由ARM11 处理器完成; 视频监控PC 完成视频客户端的功能;PC 机完成对开发系统的程序开发、调试等。图1 为系统的组成结构。
图1 系统组成结构
1) WEB 服务器端设计
首先为ARM 开发板定制一个合适的Linux 内核(内核版本:Linux 2.6.28),然后对其进行裁剪,使其具有基本内核功能,同时保留TCP/IP 协议栈,串口协议以及相应的视频编解码模块,使系统利用尽量少的硬件资源来满足任务的处理工作。然后是开发一个运行于Linux 下的WEB 服务器程序,其实现的基本功能是通过USB 摄像头的图像数据采集,完成对视频信息的获取、压缩和编码(具体的编码标准为当前较为流行的H264 编码)。然后通过T
CP/IP 协议将数据打包发送到网络,同时利用Socket 实现服务器监听功能,这样就可以接受来自客户机的监控请求。具体的工作内容如下:
USB 摄像头的驱动程序移植;
H264 视频编码程序移植;
视频采集和传输的应用程序的设计;
通过ZigBee 获取传感器相关信息。
图2 为WEB 服务器的工作流程。 ARM 通过网页采集的视频图像,此视频即可以通过网页显示,也可以通过相应基于I386 或Linux 的监控软件进行查看。
图2 WEB 服务器工作流程图
2) 客户机终端监控软件的设计
客户机终端监控软件采用MFC 编写, 可实现来自WEB服务器端的实时视频预览、视频录制、视频截图及传感器参数的实时显示等功能。程序采用多线程技术:一个线程进行视频信息的解码和播放功能,另一个线程实现视频录制功能。
另外还采用了视频信息叠加的方法,可以对环境变量进行屏幕叠加,能在录制时完成信息的录制和再现。
四、 系统关键技术
1. 用ZigBee传输传感器信息
ZigBee 是IEEE 802.15.4 协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。IEEE-802.15.4 规范是一种经济、高效、低数据速率(<250 kbps)、工作在2.4 GHz 和868/928 MHz 的无线技术, 用于个人区域网和对等网络。本项目使用ZigB
ee 完成传感器信息的传输。传感器信息由一端ZigBee 接收后发送至另一端ZigBee,然后传入RS232 串口中。具体传输模型如图3 所示。
图3 传感器信息通过ZigBee 传输模型
2. DirectShow视频采集
嵌入式多线程编程DirectShow 是微软公司在ActiveMovie 和Video forWindows 的基础上推出的新一代基于COM (ComponentObject Model)的流媒体处理的开发包。DirectShow 技术对处理图像序列或用摄像机捕获的序列尤其有用。本项目使用VC 开发基于DirectShow 技术实现视频采集。通过#pragmacomment(lib, "winmm.lib")链接静态库winmm.lib,便可以实现windows 多媒体编程。
3. 多线程技术及Socket通信
智能家居系统客户机监控软件采用MFC 编写。其中关键技术包括多线程以及Socket。
监控软件中包括previewVideo 线程( 通过函数UINTpreviewVideo(LPVOID videoCtl)实现)实现视频的预览功能以及recordVideo 线程( 通过函数UINT recordVideo (LPVOIDvideoCtl) 实现) 实现视频录制功能。打开摄像头后通过AfxBeginThread (previewVideo,&m_video) 函数启动previewVideo 视频预览线程, 用户便可以通过监控软件预览视频图像。当用户点击录制视频按钮时, 首先通过函数SuspendThread(pVideoThread->m_hThread)挂起previewVideo视频预览线程, 然后通过函数AfxBeginThread(recordVideo,&m_video)启动recordVideo 视频录制线程。当用户点击停止录制按钮时, 软件通过函数ResumeThread (pVideoThread->m_hThread)恢复previewVideo 视频预览线程。终端监控软件通过previewVideo 线程以及recordVideo 线程便能很好的实现客户机的视频预览和视频录制功能。线程模型如图4所示。
图4 线程模型
智能家居系统使用Socket()实现客户机与服务器之间的通信。通过USB 摄像头采集数据,对数据进行获取、压缩和编码后通过TCP/IP 协议将数据打包发送到网络,同时在服务器端创建Socket()进行监听,来接受客户机的请求。当客户机发送connect()连接请求后,服务器通过accept()接收客户机连接请求。然后服务器与客户机之间通过send()函数和recv()函数实现发送、接收数据。Socket()通信模型如图5 所示。
图5 Socket 通信模型
4. 入侵检测
为了减少网络传输和系统的压力,在视频采集端,每采集一次图像就对采集的数据进行一次处理。该函数设定一个图像发生变化的阈值c_limit,然后将图像所有像素之差与阈值c_limit 进行比较,如果大于阈值c_limit,则认为图像发生了变化,否则即认为没有变化,则不将该次采集的图像数据写入JPEG 文件保存,这样可以极大地提高视频存储的能力,同时减少各资源的浪费。
5. 利用openCV库实现人脸检测
OpenCV 是Intel 公司面向应用程序开发者开发的计算机视觉库,其中包含大量的函数用来处理计算机视觉领域中常见的问题,例如运动分析和跟踪、人脸识别、3D 重建和目标识别等。
在openCV 函数可编程过程中,CvSize 和IpImage 是两个比较常用的结构。CvSize 结构表示矩形尺寸的结构,结构中分别定义了矩形的宽度和高度。IpImage 结构主要针对视觉
方面处理。
五、 扩展功能简介
1. Web Service的集成
Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。
根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们透过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。
因为该系统是基于嵌入式Web的,所以可以调用有关天气预报的Web Service获取温度、湿度、紫外线强度等天气信息,辅助智能家居系统设备的决策,例如窗帘、空调等的自动化操作。
2. 基于NFC技术的门禁系统
NFC是Near Field Communication缩写,即近距离无线通讯技术。由飞利浦公司和索尼公司共同开发的NFC是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论