基于WiFi的远程视频测控系统设计与实现
摘要:基于WiFi的远程视频测控系统可以通过Web及移动终端远程实现智能控制以及视频监控,并将视频数据与操作记录等存储于云服务器上。研究了物联网、云服务器、移动终端等技术,以AR9331无线WiFi芯片为核心处理器、红外可控摄像头为视频采集模块,利用云服务器,采用WiFi技术,构建了高度集成的嵌入式实时测控平台。LUCI技术实现一键连接,具有体积小、成本低、稳定性高、安全性好、操作便利等特点,集智能控制及安防等功能于一体。以宠物喂食视频监控为例,以AR9331无线模块搭配Linux系统提供云服务。实验结果表明该系统稳定可靠,能够很好地实现智能喂食与监控功能,满足宠物看护与安防需求。
关键词:WiFi;视频监控;嵌入式;智能控制
0 引言
宠物经济所产生的连锁效应不可小视,宠物所推动的连锁产业在当今激烈竞争的市场占据了一定的份额。目前市场上的宠物看护系统品种不多,大多数产品功能单一,不能满足人们日益增长的需求。近年来,随着智能家居[1]技术❥的发展和生活节奏的加快,对智能化设备的准确性、有效性、便利性提出了更高要求。
基于WiFi的远程宠物喂养及监控系统具有特定喂食与监控功能,可以对宠物进行实时监控,根据需要进行远程控制、智能喂食,并将所有数据与视频保存到云服务器上。整个系统支持一键连接,方便用户使用,界面美观大方,稳定性高,同时本系统还可以应用到家居自动化、室内外安防等领域,具有广阔的市场前景。
1 系统总体结构
系统由AR9331核心WiFi模块、云服务器、远程客户端3部分组成。其中AR9331核心模块主要负责将喂食参数、视频数据传送至云服务器以及接收控制命令去执行相应的喂食操作。云服务器主要负责对接远程客户端和喂食机之间的通信、管理喂食机信息和用户信息。远程客户端通过与服务器的交互来获取喂食机的实时视频以及实时对喂食机进行喂食喂水控制,系统结构如图1所示。
系统工作流程为:设备上电,通过一键设置程序将喂食机连接互联网,喂食机发送UDP心跳包与服务器连接,注册相应设备信息。客户端软件启动,通过HTTP请求与云服务器交互,提交相应的用户信息以及相关联的设备信息。服务器通过对注册信息的处理匹配,实现喂食机与用户设备的实时交互。
2 系统功能模块设计
2.1 AR9331核心WiFi模块
AR9331WiFi模块采用ATHEROS公司的AR9331芯片,该核心板上运行的是基于Linux内核的OpenWRT系统。OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,通常用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。它提供了100多个已编译好的软件,而且数量还在不断增加, OpenWRT SDK更简化了开发软件的工序。AR9331WiFi核心模块架构如图2所示。
2.1.1 设备一键连接模块
目前市场上设备连接网络设置比较复杂,笔者对WiFi模块的多种模式进行了研究并结合网络编程知识,通过UCI来设置WiFi的工作模式,实现设备一键智能联网功能。一键连接模块工作过程如下:
设备接收到硬件的触发设置信号后,通过UCI将WiFi设置为AP模式,然后启用UDP服务监听指定的端口号。用户通过手机客户端先获取想要连接的网络设备用户名ssid、mac地址、加密方式和路由器密码,然后通过WiFi连接喂食机并通过UDP将以上数据发送给核心板。核心板在收到设置参数后,通过UCI来将WiFi设置为sta模式并连接指定的网络设备。
2.1.2 设备控制模块
设备控制模块主要是通过接收网络控制命令并解析命令数据包,通过RS232对继电器板实现实时控制,从而进行喂食喂水操作。控制程序模块主要采用多线程网络编程和串口编程[2],分为两个线程:一个线程用来定时向云服务器发送UDP心跳包,确定喂食机是否在线和实时向云服务器更新喂食机设备的逻辑地址;一个线程用来监听网络端口,实时接收云服务器发回来的控制命令,从而实现喂食喂水操作。控制流程如图3所示。
2.1.3 视频模块
选择成熟稳定的网络摄像机模块。网络摄像机一般会提供SDK,这使得视频开发快捷方便。本系统采用威视达康的视频解决方案。
2.2 云服务器
云服务器端主要分为喂食机设备信息提取更新模块和基于Web Services的设备控制模块两个部分
2.2.1 喂食机设备信ษ息提取更新模块
因为喂食机设备不止一个,属于一对多的网络通信编程,会出现多个设备同时更新,所以设备信息提取更新模块采用udp异步通信编程来实现[3]。主要实现过程如下:服务器端通过异步监听指定端口,接收喂食机设备发送的心跳包数据,然后从心跳包中提取出设备对应的ID号,并通过对UDP报文的分析提取出设备对应的IP地址和端口号,来确定喂食机设备的唯一逻辑地址。因为设备心跳包发送频率较高而设备信息变更频率较低,所以本系统将设备信息先暂存在一个XML文档中,每次将接收到的数据与XML中的数据比对,如果发生改变才将数据更新到数据库,这样可以大大降低数据库的压力。
2.2.2 设备控制模块
Web Service[4]是基于网络、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web ☤Service能与其它兼容的组件互操作,并且 Web Services 利用 SOAP 和 XML对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。因为本系统后期客户终端包括手机终端、PC终端等设备,各种设备的平台不一样,所以本系统选择Web Services来提供服务。模块整体架构见图4。
用户通过http请求将参数以json的数据格式发送至服务器,服务器端通过对json格式的数据进行解析,进行相应的操作,为用户提供准确实时的宠物进食记录,系统调用流程如图5所示。
通过用户提交的ID号到数据库查询对应的设备IP和端口号,然后通过udp向设备发送喂食喂水的控制命令。操作成功后,数据库操作模块将喂食喂水量记录进数据库。查询喂食喂水模块通过设备ID号从喂食喂水数据库中查询对应记录,并将数据取出以json的数据格式返回给用户。
2.3 远程客户端
2.3.1 PC端
在PC端采用基于AJAX[5]的Web控制页面设计,AJAX代表了异步JavaScript+XML。这种技术首先由微软在1999年引入,并以“使用远程调用的DHTML/JavaScript[6] Web应用程序”著称。这一技术的基本思想是:允许一个互联网浏览器向一个远程页面/服务作异步的HTTP调用,并且用收到的结果更新当前Web页面而不必刷新整个页面。本系统的控制页面通过向Web Services 提供的API发送特定的参数,实现喂食喂水和查询历史数据的操作。
2.3.2 苹果/安卓手机客户端
手机客户端采用网络编程和多线程编程,通过http协议远程调用Web Services提供的API接口实现指定的功能,本文开发了基于苹果/安卓平台的客户端。
苹果手机客户端采用Xcode 设计开发。Xcode 是苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷方式。Xcode具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。安卓手机客户端采用Eclipse和ADT编程来实现。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
3 硬件选型与系统测试
本系统采用的AR9331芯片是目前同性能芯片中功耗较低的WiFi芯片,8M FLASH、64M DDRII、400MHZ主频;相比其它同类芯片,具有功耗低、发热量小、♀性能稳定的特点,是将音频编码、无线WiFi、路由、P2P、中继、网络寻址等功能高度集成为一体的核心模块,广泛应用于无线IP CAMERA方案、智能家居设备远程控制、Internet远程控制、VOIP等领域,整体架构逻辑如图6所示。
系统调试分为硬件测试和软件测试两个部分。硬件测试主要是测试硬件是否工作正常,包括核心模块、控制模块等。软件测试主要是对各个软件模块进行功能测试,测试效果如图7所示。
经测试,本系统喂食控制以及视频显示正常。
4 结语
本文研究了物联网、云服务器、移动终端等技术,利用LUCI实现了一个方便安装使用的智能喂食机监控系统。用户和设备通过云服务器进行实时交互,可通过PC和苹果手机客户端远程实时观看宠物进食并进行安防监控,实现对宠物远程喂食喂水操作。实际测试表明:设备运行效果良好,操作安装方便,具有很好的市场前景。
参考文献:
[1] 王凯明.智能家居系统的研究[D].西安:西安科技大学,2005.
[2] 任丽丽.基于ZigBee的嵌入式无线终端设计与实现[D].北京:北京邮电大学,2013.
[3] 异步通信 [EB/OL].http://wenku.baidu.com/link?url=s03yi 50J0zVo8ILx040K8L2k 1mY1fm5IqOXZ7mDB8u6V0hbZmsD8kM G_0OLrHRyJrm84vC3FyjRz5l8lvEqx 6yhjRZRpnฎvc_nG6kEjHAG
[4] 周胜.具有高可维护性的软件应用三层架构的分析与实现[D].成都:西南交通大学,2010.
[5] JQUERY AJAX[EB/OL]. http://www.css88.com/jqapi-1.9/jQuery.ajax/.
[6] JAVASCRIPT API [EB/OL]. http://developer.baidu.com/map/jshome.htm.