• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ARM9 的嵌入式監(jiān)控系統(tǒng)設(shè)計*

      2021-02-04 05:12:34李來文陳希明劉澤源裴永旭黃楚俊
      科技創(chuàng)新與應(yīng)用 2021年7期
      關(guān)鍵詞:開發(fā)板文件夾插件

      李來文,陳希明,劉澤源,周 昕,裴永旭,黃楚俊

      (哈爾濱理工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150080)

      1 概述

      本系統(tǒng)采用iTop4412 開發(fā)板作為開發(fā)平臺,借助Linux 操作系統(tǒng)來實現(xiàn)軟件上的需求,通過網(wǎng)線連接路由器,然后在嵌入式系統(tǒng)上搭建Boa Web(Boa Webserver)服務(wù)器,通過移植MJPG-streamer 軟件采集攝像頭數(shù)據(jù)。用戶只需要通過電腦端瀏覽器或者手機端App 即可查看實時監(jiān)控畫面。

      在iTop4412 上運行定制的Linux 系統(tǒng),開發(fā)板搭載UVC 攝像頭的基礎(chǔ)上,將 Mjpeg-streamer、Boa Web 移植到開發(fā)板,根據(jù)開發(fā)板IP 地址,編寫html 文件、App,最終實現(xiàn)在電腦端和手機App 上隨時查看監(jiān)控畫面的功能。

      系統(tǒng)整體方案設(shè)計如圖1 所示。

      圖1 系統(tǒng)整體方案

      2 系統(tǒng)設(shè)計主要任務(wù)

      本系統(tǒng)主要利用iTop4412 開發(fā)板搭建遠程監(jiān)控系統(tǒng)。設(shè)計任務(wù)分為適配硬件、移植軟件、網(wǎng)頁設(shè)計、制作App 四個部分。

      2.1 適配硬件

      本系統(tǒng)應(yīng)用USB2.0 的UVC 攝像頭,通過定制內(nèi)核,確保攝像頭在開發(fā)板上正常運行。

      2.2 軟件移植

      本系統(tǒng)的軟件部分主要包括Linux 操作系統(tǒng)內(nèi)核的定制,根據(jù)需求來添加或者移除相應(yīng)的驅(qū)動。還包括移植Boa Web 服務(wù)器及移植MJPG-streamer 視頻流服務(wù)器。

      2.3 網(wǎng)頁設(shè)計

      搭建輕量級的Web 服務(wù)器Boa Web,通過IP 地址訪問服務(wù)器時,需要登陸首頁。本監(jiān)控系統(tǒng),首頁直接顯示監(jiān)控畫面、報警器操控按鈕即可。

      2.4 移動端 App 設(shè)計

      本遠程監(jiān)控系統(tǒng)除了提供電腦端瀏覽器訪問之外,還支持手機端瀏覽器及App 訪問方式。手機端瀏覽器訪問與電腦端相同,只需要設(shè)計App 即可。打開App 后,點擊開始按鈕,即可在App 中看到監(jiān)控畫面;點擊返回按鈕,即可停止監(jiān)控,回到輸入IP 地址和端口的界面。更改IP 地址或端口后,可繼續(xù)查看其他攝像頭的監(jiān)控畫面。

      通過Android Studio 進行Android 開發(fā),最終在Android 10 真機上測試,確保App 能夠正常使用。

      3 系統(tǒng)可行性分析

      3.1 開發(fā)平臺選擇

      為確保USB 攝像頭能獲取清晰度較高的視頻采集結(jié)果,同時保證嵌入式視頻監(jiān)控系統(tǒng)的性能更加穩(wěn)定,必須采用性能較高的處理器作為開發(fā)平臺。

      本系統(tǒng)主芯片采用Exynos-4412,該CPU 功能強大,性能卓越,適用于要求系統(tǒng)具有高穩(wěn)定性、高可靠性,以及高效處理和響應(yīng)的場合。對于嵌入式視頻監(jiān)控系統(tǒng)而言,為用戶提供滿意效果,保證系統(tǒng)的穩(wěn)定性和可靠性是前提。對該課題而言,基于Exynos-4412 的芯片是合理選擇,既滿足了設(shè)計上的要求,同時兼顧價格的考慮。

      3.2 USB 攝像頭

      USB 攝像頭即插即用,無需獨立電源,絕大多數(shù)平臺都支持。與傳統(tǒng)監(jiān)控攝像頭相比,成本更低,而且品牌、性能眾多,使用者可根據(jù)實際需求與資金情況,購買合適的USB 攝像頭產(chǎn)品使用。同時Linux 內(nèi)核中有V4L2 攝像設(shè)備的驅(qū)動支持,兼容USB 攝像頭。即只要將V4L2 驅(qū)動加入到內(nèi)核,在開發(fā)板上插入USB 攝像頭后,開發(fā)板即能正常識別設(shè)備,USB 攝像頭正常運行。

      鑒于上述特點,本系統(tǒng)選用USB 攝像頭作為視頻采集設(shè)備。

      3.3 軟件方案

      本設(shè)計的重點,主要是軟件部分的編寫。軟件主要從以下幾個方面進行設(shè)計。首先是選用什么樣的操作系統(tǒng)作為開發(fā)環(huán)境,由于Linux 開源、功能豐富、強大的網(wǎng)絡(luò)功能等特點,因此選擇Linux 作為本課題的系統(tǒng)。然后在Linux 操作系統(tǒng)上搭建 Boa Web 服務(wù)器、MJPG-streamer,通過服務(wù)器將數(shù)據(jù)傳輸出去,在手機或者電腦上訪問相應(yīng)網(wǎng)頁或手機APP,就可以實時查看攝像頭捕捉到的視頻畫面。

      對于服務(wù)器傳輸?shù)囊曨l流數(shù)據(jù),在電腦端可以利用瀏覽器直接訪問IP 地址和端口,所以電腦端不需要編寫代碼。

      對于手機端提供兩種方法查看監(jiān)控。第一種方式是直接通過瀏覽器訪問IP 地址和端口號;第二種就是通過App 直接查看監(jiān)控畫面。

      4 系統(tǒng)具體實現(xiàn)

      4.1 移植MJPG-streamer

      MJPG-streamer 是一款免費的基于IP 地址的視頻流服務(wù)器,它的輸入插件從攝像頭讀取視頻數(shù)據(jù),并將視頻數(shù)據(jù)復(fù)制到內(nèi)存中,有多個輸出插件可將這些視頻數(shù)據(jù)進行處理,其中最重要的輸出插件是網(wǎng)站服務(wù)器插件,它將視頻數(shù)據(jù)傳送到用戶瀏覽器中,MJPG-streamer 的工作就是將其中的一個輸入插件和多個輸出插件綁定在一起,所有的工作都是通過它的各個插件完成的。

      Mjpeg-Streamer 的移植需要jpeg 庫,所以必須首先移植jpeg 庫,在網(wǎng)上下載jpeg 源碼jpegsrc.v8b.tar.gz,拷貝到Ubuntu 目錄下。終端進入剛解壓出來的目錄執(zhí)行:

      ./configure --host=arm-none-linux-gnueabi --prefix=/home/user/out_jpeg 命令配置編譯器與安裝目錄。執(zhí)行make 命令編譯,執(zhí)行make install 命令將其安裝至指定目錄。

      下載mjpg-streamer-r63.tar.gz,并解壓到Ubuntu 的一個目錄下。修改源碼頂層目錄下的Makefile 文件,指定gcc 編譯器,指定動態(tài)庫。

      修改plugins/input_uvc/makefile 文件,進行如圖2 所示的修改。

      修改plugins/output_http/Makefile,進行如圖3 所示的修改。

      圖 2 input_uvc 修改

      圖 3 output_http 修改

      圖4 修改start 文件

      圖5 App 程序流程圖

      配置完成后make,之后將運行程序需要的依賴庫和可執(zhí)行程序拷貝到開發(fā)板目錄下。

      在開發(fā)板的根目錄下創(chuàng)建camera 目錄,將input_uvc.so、libjpeg.so.8、mjpg_streamer、output_http.so、start.sh 以及文件夾www,拷貝到開發(fā)板的camera 目錄下。其中,input_uvc.so、libjpeg.so.8、output_http.so 是程序運行所需要的依賴庫,start.sh 是執(zhí)行程序的 shell 腳本,mipg_streamer 是可執(zhí)行程序。

      將USB 攝像頭插入開發(fā)板,超級終端查看設(shè)備號,之后對start.sh 文件修改,指定攝像頭設(shè)備號,如圖4 所示。

      4.2 移植 Boa Web 服務(wù)器

      Boa Web 服務(wù)器是專門為嵌入式平臺開發(fā)的輕量級Web 服務(wù)器。本設(shè)計使用Boa Web 服務(wù)器的原因是當用戶通過電腦或手機訪問服務(wù)器時,可以直接通過IP 地址查看實時監(jiān)控。

      官網(wǎng)下載BOA 源碼“boa-0.94.13.tar.gz”解壓到Ubuntu 指定目錄下。

      解壓后會有名字為boa-0.94.13 的文件夾。進入這個文件夾下的src 文件夾里,運行./configure 生成Makefile編譯文件。

      打開剛生成的Makefile 文件,修改其中兩個參數(shù),指定 gcc 編譯器為:arm-none-linux-gnueabi-gcc。

      打開compat.h 文件,在第123 行代碼左右找到#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 一行,改為 #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff。

      保存后退出,接著make 編譯,對生成的boa 文件使用命令arm-none-linux-gnueabi-strip boa,進行瘦身。

      接下來將boa 文件拷貝到開發(fā)板的bin 目錄下;在開發(fā)板的etc 目錄下新建boa 文件夾,在根目錄下新建www 文件夾,在www文件夾內(nèi)新建cgi-bin 文件夾;將boa.conf 拷貝到開發(fā)板的etc/boa目錄下;接著將Ubuntu 的etc 目錄下的mime.types 拷貝到開發(fā)板的etc 目錄下。進入到開發(fā)板/etc/boa/,打開 boa.conf,進行如下修改。

      (1)首先將該文件第49 行左右的 Group nogroup 修改為Group root。

      (2)其次將該文件第96 行左右的#ServerName www.your.org.here 修改為 ServerName www.your.org.here。

      (3)第三將該文件第115 行左右的 DocumentRoot /var/www 修改為 DocumentRoot /www 這里的“/www”就是前面步驟使用mkdir 創(chuàng)建的www 目錄。

      (4)最后將該文件第194 行左右的 ScriptA1ias /cgi-bin//usr/1ib/cgi-bin/修改為 ScriptAlias /cgi-bin/ /www/cgi-bin/。

      保存后退出。接著運行boa 程序,再運行剛才的start.sh 文件,在電腦瀏覽器直接輸入開發(fā)板IP 地址即可查看監(jiān)控畫面。

      4.3 安卓 App 設(shè)計

      安卓App 使用Android Studio 開發(fā),依據(jù)系統(tǒng)需要,編寫程序,在真機上進行功能測試,最終完成整個App的開發(fā)。整個程序流程如圖5 所示。

      5 結(jié)束語

      本文結(jié)合嵌入式技術(shù)以及監(jiān)控系統(tǒng)技術(shù),從實際應(yīng)用出發(fā),提出了一種基于 ARM9 的嵌入式 Web 視頻監(jiān)控系統(tǒng)的設(shè)計方案,完成了系統(tǒng)的具體實現(xiàn),有一定的實用價值。

      猜你喜歡
      開發(fā)板文件夾插件
      磁力文件夾
      自編插件完善App Inventor與樂高機器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      調(diào)動右鍵 解決文件夾管理三大難題
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺析單片機開發(fā)板的設(shè)計與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      MapWindowGIS插件機制及應(yīng)用
      TC一鍵直達常用文件夾
      電腦迷(2015年1期)2015-04-29 21:24:13
      基于Revit MEP的插件制作探討
      Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      衡阳市| 遵化市| 玉环县| 屏东县| 巴彦县| 平顺县| 灵台县| 华池县| 陆川县| 高陵县| 宝坻区| 康保县| 昔阳县| 仙游县| 西盟| 南安市| 故城县| 临邑县| 建水县| 河东区| 宜章县| 天水市| 崇仁县| 隆昌县| 思南县| 阿拉善左旗| 临沂市| 南投县| 武城县| 彭阳县| 昭苏县| 茶陵县| 玉林市| 宿松县| 云阳县| 页游| 砀山县| 溧阳市| 浙江省| 冀州市| 湾仔区|