劉青
摘 要:為了實現(xiàn)溫室環(huán)境視頻監(jiān)控的移動化和智能化,文中研究了一種基于Android的視頻監(jiān)控系統(tǒng)。介紹了該溫室環(huán)境視頻監(jiān)控系統(tǒng)的整體架構(gòu),闡述了視頻解碼與數(shù)據(jù)通信等關(guān)鍵技術(shù),重點論述了視頻監(jiān)控手機端Android軟件的設(shè)計方案。并在WiFi和4G兩種網(wǎng)絡(luò)環(huán)境下分別做了測試,測試結(jié)果表明,該系統(tǒng)運行穩(wěn)定可靠,可實現(xiàn)智能手機對溫室大棚進行遠程視頻監(jiān)控的目的。
關(guān)鍵詞:Android系統(tǒng);智能手機;視頻監(jiān)控;網(wǎng)絡(luò)通信
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:2095-1302(2016)06-00-02
0 引 言
我國目前已成為世界設(shè)施作物栽培第一大國[1],特別是近來環(huán)境污染、食品安全等問題格外突出,實現(xiàn)溫室農(nóng)作物生長過程實時監(jiān)控是解決以上問題的關(guān)鍵。隨著物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)等技術(shù)的快速發(fā)展,溫室智能監(jiān)控、食品溯源等系統(tǒng)已成為研究熱點。傳統(tǒng)的視頻監(jiān)控系統(tǒng)需要復(fù)雜的綜合布線,多采用視頻服務(wù)器和遠程PC端訪問模式,具有施工難度大、價格昂貴和監(jiān)控靈活度差等問題;在Android平臺的智能終端(安裝了Android視頻監(jiān)控應(yīng)用軟件的智能設(shè)備,以下簡稱移動端)上開發(fā)視頻監(jiān)控App,使用WiFi或4G網(wǎng)絡(luò),可以實現(xiàn)溫室環(huán)境隨時隨地的遠程監(jiān)控功能。
1 系統(tǒng)架構(gòu)設(shè)計
基于Android的溫室智能視頻監(jiān)控系統(tǒng)采用C/S架構(gòu)[2],整個系統(tǒng)由無線網(wǎng)絡(luò)攝像頭、云臺、視頻服務(wù)器(以下簡稱服務(wù)端)、無線路由器、基礎(chǔ)網(wǎng)絡(luò)和智能手機等組成,其架構(gòu)圖如圖1所示。PC監(jiān)控端和移動端皆可通過Internet建立連接[3];移動端在本地WiFi網(wǎng)絡(luò)環(huán)境下可搜索設(shè)備的ID號,通過選擇某監(jiān)控設(shè)備的ID號訪問云臺,控制相應(yīng)攝像頭,實現(xiàn)視頻的實時監(jiān)控。移動端通過觸屏方式控制云臺,實現(xiàn)攝像頭的上、下、左、右移動,垂直90度、水平360度的移動近乎可以實現(xiàn)全方位監(jiān)控功能[4],系統(tǒng)中常用攝像頭云臺控制指令見表1所列。本文重點論述移動端Android系統(tǒng)監(jiān)控軟件的方案設(shè)計。
2 關(guān)鍵技術(shù)
視頻數(shù)據(jù)傳輸由RTP(Real-time Transport Protocol,RTP)與UDP協(xié)議共同完成,RTP協(xié)議負責(zé)控制與服務(wù)類信息傳輸,由UTP協(xié)議進行打包、分組傳輸,RTP/UTP協(xié)議流程圖如圖2所示。Android系統(tǒng)采用Socket機制控制TCP/IP協(xié)議實現(xiàn)網(wǎng)絡(luò)通信的可靠連接,Socket是一種跨平臺、支持異構(gòu)語言的編程方式,客戶端程序使用Socket類,服務(wù)端程序使用Server Socket類[5]。移動端通過get Server IP()方法獲取服務(wù)端地址,并設(shè)置相應(yīng)端口號,用戶驗證并連接成功后,服務(wù)端視頻數(shù)據(jù)采用輸入流方式進行傳入,然后使用Buffered Reader()方法讀出數(shù)據(jù),經(jīng)視頻數(shù)據(jù)編碼處理后顯示在界面上,通信結(jié)束后再調(diào)用socket.closed()方法結(jié)束通信。系統(tǒng)采用H.264/AVC方法進行視頻硬件編碼,H.264編碼標(biāo)準能適應(yīng)多種網(wǎng)絡(luò)如高、低寬帶,無線超窄帶寬[6],移動端數(shù)據(jù)幀解碼的方法為:int DecodeH264Frame( byteArray H264, int bFrame, byteArray yuv, int len, intArray size)。
3 系統(tǒng)服務(wù)端設(shè)計
系統(tǒng)服務(wù)端采用C#/CGI方式設(shè)計,CGI是外部應(yīng)用程序與Web服務(wù)器之間的標(biāo)準接口,是信息傳遞的規(guī)程。服務(wù)端實現(xiàn)視頻數(shù)據(jù)的采集、存儲及遠程訪問功能,通過網(wǎng)絡(luò)獲取視頻數(shù)據(jù)流程如圖3所示,實例HttpWebRequest類調(diào)用WebRequest Create(string requestUriString)發(fā)送網(wǎng)絡(luò)請求,用GetReponseStream()方法獲取Internet資源響應(yīng),實例化StreamReader類,StreamReader reader = new StreamReader(stream,Encoding.Default),讀取特定編碼數(shù)據(jù),在Picturebox控件上顯示圖片信息,定時調(diào)用圖像處理代碼的Timer間隔在110 ms時即可實現(xiàn)視頻實時采集。
4 系統(tǒng)移動端設(shè)計
移動端程序開發(fā)環(huán)境為Eclipse+JDK+Android SDK+ADT;測試平臺為小米4LTE-CMCC+Android4.4.4。系統(tǒng)整體設(shè)計采用MVC架構(gòu),使用Android提供的各種API接口進行實現(xiàn),主要有系統(tǒng)設(shè)置、用戶驗證、圖像處理、數(shù)據(jù)存儲、視頻播放等功能模塊,如圖4所示。在/res/layout目錄下實現(xiàn)系統(tǒng)界面開發(fā),使用RelativeLayout和FrameLayout布局方式分別實現(xiàn)系統(tǒng)登錄和視頻播放界面,主要布局文件有act_main.xml、add_camera.xml、cont_device_view.xml、ved_play.xml、set_list_item.xml,布局文件等會在R.java中自動生成ID資源號,系統(tǒng)通過R類加以應(yīng)用。在/src目錄下實現(xiàn)Java主程序的編寫,使用setContentView(view)方法實現(xiàn)布局文件的應(yīng)用,使用findViewById(id)方法獲得layout 中的控件。在AndroidManifest.xml文件中可實現(xiàn)對Activity等系統(tǒng)組件的注冊,也可開啟系統(tǒng)訪問網(wǎng)絡(luò)、攝像頭等權(quán)限等,代碼如下所示:
移動端程序設(shè)計流程如圖5所示。Android系統(tǒng)使用searchCamera()方法搜索監(jiān)控設(shè)備的ID,識別并驗證CA_USER、CA_PWD,使用CheckCameraInfo(String mac)方法驗證監(jiān)控設(shè)備MAC地址;用Sstream(string , int, int)方法請求視頻數(shù)據(jù);用Void Init()方法初始化視頻解碼;使用Bitmap getBitmap()方法進行圖片數(shù)據(jù)處理;用void onMeasure(int widthMeasureSpec, int heightMeasureSpec)實現(xiàn)視頻顯示比例;在void openVideo()方法中實例化Mediaplayer類,如:mMediaPlayer = new MediaPlayer(),實現(xiàn)視頻的播放;使用onCreate(SQLiteDatabase db) 方法創(chuàng)建數(shù)據(jù)庫,實現(xiàn)用戶信息等數(shù)據(jù)的存儲;用int Pcontrol(string, int)方法實現(xiàn)云臺控制,命令為第一個參數(shù)。移動端視頻監(jiān)控界面如圖6所示。
5 結(jié) 語
本系統(tǒng)利用智能手機的便利性與Android系統(tǒng)平臺的開源性,研究實現(xiàn)了溫室監(jiān)控從固定的PC端到移動端移植。在WiFi和4G兩種網(wǎng)絡(luò)環(huán)境下,經(jīng)反復(fù)測試,視頻監(jiān)控系統(tǒng)運行穩(wěn)定可靠,延遲小。本系統(tǒng)研究成果可以應(yīng)用到智能家居、智能交通等領(lǐng)域,具有應(yīng)用廣泛、使用方便等特點。后期需繼續(xù)解決結(jié)合傳感器實現(xiàn)智能遠程報警、變焦等問題。
參考文獻
[1]張猛,房俊龍,韓雨.基于ZigBee和Internet的溫室群環(huán)境遠程監(jiān)控系統(tǒng)設(shè)計[J].農(nóng)業(yè)工程學(xué)報,2013,29(Z):171-176.
[2]劉萬輝,楊曄.基于Android系統(tǒng)的溫室智能監(jiān)控系統(tǒng)的設(shè)計開發(fā)[J].軟件,2013,34(5):1-3.
[3]楊靖靖,趙榮臻,陶偉偉,等.Android平臺遠程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].南通大學(xué)學(xué)報,2014,13(4):7-11.
[4]孟飛,王劍峰,朱習(xí)軍.一種基于Android的智能視頻監(jiān)控系統(tǒng)[J].青島科技大學(xué)學(xué)報,2014,35(5):524-528.
[5]魏崇毓,張菲菲.基于Android 平臺的視頻監(jiān)控系統(tǒng)設(shè)計[J].計算機工程,2012,38(14):214-216.
[6]周曉光,翟猛,皮人杰,等.基于Android的物流視頻監(jiān)控平臺的研究與實現(xiàn)[J].物流技術(shù),2015,34(9):251-254.