家庭安防系统中手机彩信报警的实现
2013-11-10张光异王会清
张光异,王会清,程 勇
(武汉工程大学 计算机科学与工程学院,湖北 武汉 430074)
彩信是一种既可以传送文字信息,又可以传送包括图像、声音、视频等各种多媒体信息的通信服务。传送方式除了在手机间传送外,也可是电脑与手机之间的多媒体信息传送。
本文在家庭安防系统中,以LabVIEW为平台,采用拾音器、红外摄像头等多个传感器,外接GPRS Modem,构建了基于PC的彩信发送报警子系统。该系统应用数据库对彩信进行管理,当监控现场有非法侵入时触发报警,系统启动相应的传感器采集现场的视频和声音,借助GPRS网络将现场情况反映到用户设定的手机,实现了监控终端到用户终端的视频传输。
1 整个系统硬件组成及主要功能简介[1-2]
整个家庭安防系统分客户端和保安终端两大部分。客户端主要由4大功能模块和两个辅助功能模块组成,其中的彩信报警属于辅助模块。客户端通过遥控与语音来操纵控制相应的功能模块。在主功能模块中,用户设防后,当有作案人员触动门缝探测器、红外栅栏探测器或门磁开关时,探测器通过数据采集卡向控制主机发出报警指令,或者用户通过遥控器、语音直接紧急报警。控制主机控制相应的模块进行现场的声音与图像采集,并通过网络将采集的数据文件和用户信息传到物业中心。同时,彩信模块通过GRPS彩信猫把采集的数据经处理后以ini结构彩信形式传到设定的用户手机。保安终端的主要功能是实时检测客户端用户是否有警情发生,一旦有警情,则发出声音报警、闪烁警灯,并显示报警的用户信息。
系统硬件连接如图1所示,其中的探测器是检测非法闯入者,激活报警的设备。主要有东尼TONY-A7拾音器、USB接口的BSX-2066 CMOS摄像头、有线门磁探测器MC-38和六光束红外栅栏等。彩信报警传输由wavecom Q2403A GPRS彩信猫执行。它可同时给10位用户手机发送彩信,支持多个数据库管理系统,支持的彩信文件包括文字、图片、声音、影像等,以及自定义的ini简单彩信格式。本文数据库管理系统采用SQLSever2000,用于存储和管理给手机发送的彩信数据。彩信猫通过USB Hub与控制主机相连,实时检测数据库中的建立信息发送表里面的数据。
图1 整个系统的硬件连接
2 彩信报警模块设计与实现
2.1 主控模块中的相关程序
在客户端主界面中[2],当用户点击“读取采集声音”、“读取采集图片”、“读取采集视频”3个按钮时将自动跳转到相应的数据保存目录,并按设定的打开方式浏览客户端采集的声音、图片与视频。也可通过用户界面中的视频浏览窗口对正在采集的视频在线浏览。
其中在录制声音子VI程序中[3],先检测报警是否被用户取消,若没有被取消,则动态地创建存放采集声音文件的目录,然后进行声音采集。并且从0开始每隔20 s按数字顺序作为文件名、mid为扩展名建立动态的声音文件。声音子VI有两个输入变量分别控制采样数目和采集的硬件设备ID。运行时,需打开声音文件,配置声音输入函数及参数,然后读取采集的数据进行放大3倍和小波降噪后存入到声音文件。
在视频采集子程序中[4],首先通过罗列摄像头子VI把摄像头的硬件描述符按数字递增的顺序罗列。然后通过索引数组函数和发出报警指令的探测器所对应的数据采集卡上的DI序号为其提供相应的索引号,经过Imaqdx函数面板中的相关函数打开有报警指令的探测器所对应的摄像头,配置采集参数,采集数据,并动态分配存储空间。在程序的while循环中通过条件结构的拍照子程序将采集的图像以jpg格式保存,并利用DataSocket技术进行视频保存。为了便于用户手机显示,设计了专门的子程序对图像进行重新采样,使得分辨率为320×240。涉及的函数有:在图片保存函数的条件结构中用imaq copy函数对图像进行拷贝,imaq creat函数为拷贝的图像动态分配存储空间,然后将数据传给拍照子VI,通过imaq write file函数进行图片保存。在进行视频保存时需将采集的图像平化至字符串,以便于视频数据写入DataSocket。用 DataSocket读写数据时,为了方便系统运作,采用Launch DS Server if Local函数动态操作 DataSocket Server和 DataSocket Server Manager,为视频采集创建项目和分配空间。程序中与While循环条件端子相连的是用户是否已停止报警指令,一旦有该指令则停止图像采集,结束循环。
在视频和图片采集子程序里,通过while循环条件结构的真分支,给其后面的110布尔全局变量和条件结构赋予真值来执行录制声音、视频采集、图片子VI。其中的视频采集子VI是非触动的,通过多个摄像头的循环调用来采集现场图像。具体用哪个摄像头采集图像由while循环的次数i和摄像头的个数来决定,若循环次数加1后与摄像头的个数相除余数为0,则用摄像头的个数减1后作为索引数组的索引号调用相应的摄像头来采集图像;若循环次数加1后与摄像头的个数相除余数非0,就用余数减1后作为索引数组的索引号来调用相应的摄像头采集图像。
2.2 彩信报警程序设计与实现[1]
本文采用数据库存储和管理发送的彩信数据。通过SQL Server和SQL语句在数据库的Master表中建立信息发送、信息发送成功、信息发送失败和信息接收4个数据表,分别存放相应的彩信数据。当通过SQL语句把需要发送的信息写入表时,控制主机将采集的数据写入到信息发送表,彩信猫检测到发送表里有数据,立即以结构彩信ini的形式通过GPRS网络传到用户手机。发送完毕彩信猫删除发送表中的数据。若发送成功,将数据保存到MSG Sentbox中;若发送失败,将数据保存到MSG Failedbox表中。为了防止系统出现错误,建立了一个MSG Inbox表,用来接收其他不相关的信息。用户只需启动SQL Server查询分析器,复制这些代码并粘贴这些建表语句,点击“执行查询”按钮进入SQL Server管理器,会看到已经建立了4个数据表,便可正常使用了。
模块设计主要包括发送手机彩信程序的界面和创建结构彩信文件等。创建结构彩信文件程序如图2所示,在图2的手机彩信发送程序中首先通过注册表信息导入子VI将所需的信息导入到注册表。图中while循环的事件结构0事件和1事件分支分别是用户菜单选择事件和用户界面关闭事件。下方while循环中的顺序结构第0帧检查要发送的图片与声音彩信文件是否存在,若存在则将其路径通过条件结构的真分支连接字符串函数连接后,打开配置文件函数和写入键函数写入到配置文件。由于写入键函数时,会自动生成“=”号,因而需通过读取文本文件函数和搜索替换字符串函数读取配置文件后将等号替换为空字符串,再由里面的顺序结构中的for循环的循环次数决定要发送的结构彩信的帧的数目。
图2 创建结构彩信文件
图3所示为把彩信所需的文件通过SQL语句写入数据库相应表程序,在图3程序下方while循环里的顺序结构第1帧先判断手机号码输入控件中哪些有输入,再通过DB Tools Open Connection函数和DB Tools Execute Query函数把输入的手机号码、彩信类型、彩信标题和简单结构彩信文件的路径通过SQL语句将相应的信息写入到数据库对应的彩信发送数据表里[5]。然后在第2帧里把发送过的结构彩信文件删掉,以便后面的彩信文件的创建与发送。
彩信的发送过程:客户端主机从数据库中的发送表读出发送状态为“待发”,将彩信发送出去。发送完成,将发送表中的发送状态改为“已发”,并改发送时间为当前时间。
图3 把彩信所需的文件通过SQL语句写入数据库相应表
彩信报警作为整个安防系统的辅助模块,是传统监控、报警方式的补充。该系统的紧急求助功能也是以彩信的方式求助。当家里有老人或病人等按下求助按钮时,彩信模块就会把现场的视频和录音以彩信的方式发送到用户手机和小区物业中心求助,使服务终端实时了解现场信息。
系统可以外接多种传感器报警,具有开发周期短、所需设备简单、通用性和实用性强等特点。能够完成彩信的单发、群发、重发。彩信发送完成后可自动将内容、发送时间、目的手机号码、发送状态等信息存入数据库,以备查询,实现了报警系统与户主的远程实时通信功能。测试结果表明,系统运行平稳、性能可靠、实时性好;各个传感器和程序模块的组合能够准确完成报警、记录、传送的功能;试验中没有发生误报和漏报情况;系统功能完善、费用低廉、操作方便、运行效果良好,适合于现代数字家庭的安防监控。
[1]程勇.基于LabVIEW的家庭智能报警系统研究[D].武汉:武汉工程大学计算机学院,2011.
[2]王会清,程勇.基于LabVIEW的家庭智能报警系统研究[J].武汉工程大学学报,2011,33(11):78-82.
[3]王会清,程勇.家庭安防系统中声音信号的小波分析与降噪[J].武汉工程大学学报,2011,33(9):96-99.
[4]王会清,程勇.家庭安防系统中的多摄像头视频采集与网络传送[J].武汉工程大学学报,2012,34(7):66-70.
[5]尹仁平,刘刚,汪立新,等.LabVIEW中的数据库访问[J].电子则量技术,2006,29(3):51-52.