基于Android的温室智能视频监控系统研究

时间:2022-10-18 03:07:08

基于Android的温室智能视频监控系统研究

摘 要:为了实现温室环境视频监控的移动化和智能化,文中研究了一种基于Android的视频监控系统。介绍了该温室环境视频监控系统的整体架构,阐述了视频解码与数据通信等关键技术,重点论述了视频监控手机端Android软件的设计方案。并在WiFi和4G两种网络环境下分别做了测试,测试结果表明,该系统运行稳定可靠,可实现智能手机对温室大棚进行远程视频监控的目的。

关键词:Android系统;智能手机;视频监控;网络通信

中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2016)06-00-02

0 引 言

我国目前已成为世界设施作物栽培第一大国[1],特别是近来环境污染、食品安全等问题格外突出,实现温室农作物生长过程实时监控是解决以上问题的关键。随着物联网、移动互联网等技术的快速发展,温室智能监控、食品溯源等系统已成为研究热点。传统的视频监控系统需要复杂的综合布线,多采用视频服务器和远程PC端访问模式,具有施工难度大、价格昂贵和监控灵活度差等问题;在Android平台的智能终端(安装了Android视频监控应用软件的智能设备,以下简称移动端)上开发视频监控App,使用WiFi或4G网络,可以实现温室环境随时随地的远程监控功能。

1 系统架构设计

基于Android的温室智能视频监控系统采用C/S架构[2],整个系统由无线网络摄像头、云台、视频服务器(以下简称服务端)、无线路由器、基础网络和智能手机等组成,其架构图如图1所示。PC监控端和移动端皆可通过Internet建立连接[3];移动端在本地WiFi网络环境下可搜索设备的ID号,通过选择某监控设备的ID号访问云台,控制相应摄像头,实现视频的实时监控。移动端通过触屏方式控制云台,实现摄像头的上、下、左、右移动,垂直90度、水平360度的移动近乎可以实现全方位监控功能[4],系统中常用摄像头云台控制指令见表1所列。本文重点论述移动端Android系统监控软件的方案设计。

2 关键技术

视频数据传输由RTP(Real-time Transport Protocol,RTP)与UDP协议共同完成,RTP协议负责控制与服务类信息传输,由UTP协议进行打包、分组传输,RTP/UTP协议流程图如图2所示。Android系统采用Socket机制控制TCP/IP协议实现网络通信的可靠连接,Socket是一种跨平台、支持异构语言的编程方式,客户端程序使用Socket类,服务端程序使用Server Socket类[5]。移动端通过get Server IP()方法获取服务端地址,并设置相应端口号,用户验证并连接成功后,服务端视频数据采用输入流方式进行传入,然后使用Buffered Reader()方法读出数据,经视频数据编码处理后显示在界面上,通信结束后再调用socket.closed()方法结束通信。系统采用H.264/AVC方法进行视频硬件编码,H.264编码标准能适应多种网络如高、低宽带,无线超窄带宽[6],移动端数据帧解码的方法为:int DecodeH264Frame( byteArray H264, int bFrame, byteArray yuv, int len, intArray size)。

3 系统服务端设计

系统服务端采用C#/CGI方式设计,CGI是外部应用程序与Web服务器之间的标准接口,是信息传递的规程。服务端实现视频数据的采集、存储及远程访问功能,通过网络获取视频数据流程如图3所示,实例HttpWebRequest类调用WebRequest Create(string requestUriString)发送网络请求,用GetReponseStream()方法获取Internet资源响应,实例化StreamReader类,StreamReader reader = new StreamReader(stream,Encoding.Default),读取特定编码数据,在Picturebox控件上显示图片信息,定时调用图像处理代码的Timer间隔在110 ms时即可实现视频实时采集。

4 系统移动端设计

移动端程序开发环境为Eclipse+JDK+Android SDK+ADT;测试平台为小米4LTE-CMCC+Android4.4.4。系统整体设计采用MVC架构,使用Android提供的各种API接口进行实现,主要有系统设置、用户验证、图像处理、数据存储、视频播放等功能模块,如图4所示。在/res/layout目录下实现系统界面开发,使用RelativeLayout和FrameLayout布局方式分别实现系统登录和视频播放界面,主要布局文件有act_main.xml、add_camera.xml、cont_device_view.xml、ved_play.xml、set_list_item.xml,布局文件等会在R.java中自动生成ID资源号,系统通过R类加以应用。在/src目录下实现Java主程序的编写,使用setContentView(view)方法实现布局文件的应用,使用findViewById(id)方法获得layout 中的控件。在AndroidManifest.xml文件中可实现对Activity等系统组件的注册,也可开启系统访问网络、摄像头等权限等,代码如下所示:

移动端程序设计流程如图5所示。Android系统使用searchCamera()方法搜索监控设备的ID,识别并验证CA_USER、CA_PWD,使用CheckCameraInfo(String mac)方法验证监控设备MAC地址;用Sstream(string , int, int)方法请求视频数据;用Void Init()方法初始化视频解码;使用Bitmap getBitmap()方法进行图片数据处理;用void onMeasure(int widthMeasureSpec, int heightMeasureSpec)实现视频显示比例;在void openVideo()方法中实例化Mediaplayer类,如:mMediaPlayer = new MediaPlayer(),实现视频的播放;使用onCreate(SQLiteDatabase db) 方法创建数据库,实现用户信息等数据的存储;用int Pcontrol(string, int)方法实现云台控制,命令为第一个参数。移动端视频监控界面如图6所示。

5 结 语

本系统利用智能手机的便利性与Android系统平台的开源性,研究实现了温室监控从固定的PC端到移动端移植。在WiFi和4G两种网络环境下,经反复测试,视频监控系统运行稳定可靠,延迟小。本系统研究成果可以应用到智能家居、智能交通等领域,具有应用广泛、使用方便等特点。后期需继续解决结合传感器实现智能远程报警、变焦等问题。

参考文献

[1]张猛,房俊龙,韩雨.基于ZigBee和Internet的温室群环境远程监控系统设计[J].农业工程学报,2013,29(Z):171-176.

[2]刘万辉,杨晔.基于Android系统的温室智能监控系统的设计开发[J].软件,2013,34(5):1-3.

[3]杨靖靖,赵荣臻,陶伟伟,等.Android平台远程视频监控系统的设计与实现[J].南通大学学报,2014,13(4):7-11.

[4]孟飞,王剑峰,朱习军.一种基于Android的智能视频监控系统[J].青岛科技大学学报,2014,35(5):524-528.

[5]魏崇毓,张菲菲.基于Android 平台的视频监控系统设计[J].计算机工程,2012,38(14):214-216.

[6]周晓光,翟猛,皮人杰,等.基于Android的物流视频监控平台的研究与实现[J].物流技术,2015,34(9):251-254.

上一篇:光电信息摇摇棒 下一篇:基于NFC的门禁系统