李潤宇+朱嘉塬+蘭旭婷
摘 要:系統(tǒng)程序基于Python語言來操作樹莓派,使用的Linux系統(tǒng),采用Python語言中的mjpg-streamer來使用官方樹莓派的攝像頭的圖形處理技術(shù),再通過Android來實現(xiàn)遠(yuǎn)程監(jiān)控。
關(guān)鍵詞: 樹莓派;Android;攝像頭;Python
由西北民族大學(xué)電氣工程學(xué)院"雙E"項目資助(項目編號:20161801)
Monitoring of PTZ camera based on Android mobile phone
LIRunYu,ZHUJiaYan,LANXuTing
Abstract: the system program based on Python language to operate the raspberry pie, the use of the Linux system, graphics processing technology using Python language in mjpg-streamer to use the official raspberry pie of the camera, and then to realize the remote monitoring through Android.
Key words: Raspberry pie; Android; camera; Python
1 引言
手機視頻監(jiān)控是通過手機隨時隨地來觀看遠(yuǎn)程監(jiān)控點的視頻,整套系統(tǒng)基于互聯(lián)網(wǎng)而運行,通過在安置在特定地點的監(jiān)控攝像機拍攝,并將拍攝的視頻畫面經(jīng)過視頻服務(wù)器壓縮處理后上傳至互聯(lián)網(wǎng),再通過網(wǎng)絡(luò)傳輸?shù)奖O(jiān)控中心的視頻監(jiān)控服務(wù)器,然后使用手機上網(wǎng)的方式,登錄到視頻監(jiān)控服務(wù),獲得監(jiān)控資源。
通過Python控制樹莓派的GPIO,通過程序能夠控制連接GPIO口的舵機,使用其自帶的嵌入式Linux系統(tǒng)的開發(fā)環(huán)境,可以高效且豐富的語言開發(fā)環(huán)境。通過樹莓派推薦的Python語言實現(xiàn)串行通信和網(wǎng)絡(luò)通信,分析實現(xiàn)遠(yuǎn)程視頻監(jiān)控與物聯(lián)網(wǎng)的思路,并與傳統(tǒng)的開發(fā)方式比較,顯示其突出的實用價值。分析樹莓派的軟硬件和全球資源,介紹樹莓派各個實用的教學(xué)實踐,顯示其在平臺選型時的優(yōu)勢所在。最終得出樹莓派可使嵌入式Linux開發(fā)及教育取得顯著進(jìn)展的結(jié)論。
2 國內(nèi)市場處于發(fā)展階段
早期階段,中國電信的全球眼和原中國網(wǎng)通已經(jīng)在有條件的家庭發(fā)展遠(yuǎn)程視頻監(jiān)控,隨著家庭信息化的迅速發(fā)展,對用戶家庭的遠(yuǎn)程視頻監(jiān)控需求表現(xiàn)的越來越強烈。
中期階段,中國移動也在發(fā)展以”手眼通”為代表的手機彩信監(jiān)控,基于手機流量的視頻監(jiān)控。
當(dāng)前階段,視頻監(jiān)控在行業(yè)領(lǐng)域與家庭緊密聯(lián)系的小區(qū)已經(jīng)有了很好的發(fā)展,隨著家庭網(wǎng)絡(luò)環(huán)境的不斷改善、用戶消費水平的提高、安全防范意識的增長、獨立式居住家庭的增多,國內(nèi)家庭手機市場將更快更好的發(fā)展。
3 APP來進(jìn)行視頻監(jiān)控
現(xiàn)階段社會,手機無處不在,隨著智能手機的發(fā)展、個人生活水平的提高,基本上上人均手持智能手機的比例直線上升,智能手機基本上離開不了人們的生活。
通過使用手機基于Android編寫的APP來進(jìn)行視頻監(jiān)控,整個系統(tǒng)基于物聯(lián)網(wǎng)而運行,通過攝像頭捕獲的畫面從樹莓派發(fā)送到云服務(wù)器,再從手機上聯(lián)網(wǎng)的APP從物聯(lián)網(wǎng)讀取云服務(wù)器上捕獲的畫面,能夠隨時隨地地進(jìn)行監(jiān)控,并且能夠發(fā)送舵機轉(zhuǎn)動指令來全方位進(jìn)行遠(yuǎn)程視頻監(jiān)控。
4 基礎(chǔ)功能的實現(xiàn)
APP的編寫:通過Android Studio來編寫能不斷從指定服務(wù)器地址讀取畫面并顯示且還能向云服務(wù)器發(fā)送指令的軟件。
服務(wù)器的搭建:通過花生殼提供的功能來進(jìn)行內(nèi)網(wǎng)穿透,達(dá)到遠(yuǎn)程傳輸數(shù)據(jù)的需求。
攝像頭的捕獲:通過樹莓派中Python語言的mjpg-streamer庫來實現(xiàn)攝像頭的圖形捕獲。
舵機控制攝像頭的轉(zhuǎn)動:樹莓派自帶Python的開發(fā)環(huán)境,使用Python語言進(jìn)行程序編程,控制樹莓派的GPIO口,來調(diào)節(jié)PWM控制連在其上面的舵機,來實現(xiàn)舵機的轉(zhuǎn)動。
樹莓派自啟動:通過編寫樹莓派中Linux系統(tǒng)下的.sh的文件來使樹莓派達(dá)到自啟動的目的,且啟動mjpg-streamer庫中來開啟攝像頭來捕獲畫面。
GPIO口控制舵機:使用樹莓派自帶的Python開發(fā)環(huán)境,來進(jìn)行軟件的編程,控制GPIO需要先安裝GPIO庫,安裝完成后先使用.sh文件來執(zhí)行舵機轉(zhuǎn)動的程序。
5 設(shè)計的方案
本項目主要采用Python語言和其庫的mjpg-streamer在樹莓派上執(zhí)行攝像頭的圖形捕獲,且其攝像頭為官方樹莓派攝像頭,攝像頭與樹莓派連接,再由樹莓派把每一幀的畫面通過路由器的WIFI聯(lián)網(wǎng)發(fā)送給云服務(wù)器,而云服務(wù)器也不短向固定讀取ip地址發(fā)送捕獲的畫面,再通過聯(lián)網(wǎng)的手機來不短向云服務(wù)器接收視頻的捕獲畫面,同時能從APP發(fā)送舵機轉(zhuǎn)動的指令,而樹莓派從云服務(wù)器獲取了轉(zhuǎn)動舵機的指令對GPIO口來進(jìn)行操作,來達(dá)到控制攝像頭旋轉(zhuǎn)來捕獲畫面的功能。
樹莓派方面:在樹莓派上導(dǎo)入mjpg-streamer庫,安裝并執(zhí)行其文件,建立.sh文件來設(shè)置兼容的官方攝像頭的屬性,并默認(rèn)開啟攝像頭來開啟自啟動來不斷地捕獲畫面,且不斷的向云服務(wù)器中發(fā)送。
手機Android方面:采用Android Studo編寫的APP軟件,它一方面具有向固定ip地址捕獲畫面的功能,一方面具把捕獲的畫面顯示出來的功能,另一方面能從手機發(fā)送舵機轉(zhuǎn)動的指令。即基于手機Android的APP不斷從云服務(wù)器上讀取畫面,返回給手機來顯示,同時還能夠發(fā)送舵機轉(zhuǎn)動的指令來控制舵機。
舵機控制的攝像方面:采用官方的攝像頭,小巧便利,在攝像頭上安裝舵機,舵機連接樹莓派的GPIO口上,通過樹莓派從云服務(wù)器不斷讀取轉(zhuǎn)動舵機轉(zhuǎn)動的指令來實現(xiàn)多方位遠(yuǎn)程視頻的監(jiān)控。
參考文獻(xiàn):
[1] 陳麗麗;洪樂游;鮑盛峰 基于android手機的云臺網(wǎng)絡(luò)攝像頭控制[J].中國科技博覽,2014(4):356-356
[2]李文勝. 基于樹莓派的嵌入式Linux開發(fā)教學(xué)探索[J]. 電子技術(shù)與軟件工程,2014,(09):219-220.