Research on the Remote Monitoring System for Building Environment
艾 紅 孫順順
(北京信息科技大學(xué)自動(dòng)化學(xué)院,北京 100192)
樓宇環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)研究
Research on the Remote Monitoring System for Building Environment
艾紅孫順順
(北京信息科技大學(xué)自動(dòng)化學(xué)院,北京100192)
摘要:針對(duì)樓宇環(huán)境遠(yuǎn)程監(jiān)控,以S3C6410芯片為處理器,通過Internet與嵌入式設(shè)備相結(jié)合,使用本地計(jì)算機(jī)通過Internet對(duì)現(xiàn)場(chǎng)設(shè)備信息進(jìn)行遠(yuǎn)程監(jiān)控。描述了系統(tǒng)總體結(jié)構(gòu)和系統(tǒng)功能,闡述了嵌入式開發(fā)平臺(tái)的硬件結(jié)構(gòu)和測(cè)量模塊;說明了視頻圖像采集設(shè)計(jì)和Video4Linux下視頻采集流程,介紹了流媒體服務(wù)器spcaserv工作原理;給出了動(dòng)態(tài)Web網(wǎng)頁設(shè)計(jì)和CGI網(wǎng)關(guān)程序設(shè)計(jì)。采集的環(huán)境參數(shù)和視頻數(shù)據(jù)經(jīng)Linux系統(tǒng)處理后基于TCP/IP協(xié)議進(jìn)行傳輸,在上位機(jī)監(jiān)控系統(tǒng)中用瀏覽器實(shí)現(xiàn)對(duì)樓宇環(huán)境數(shù)據(jù)的實(shí)時(shí)顯示和遠(yuǎn)程視頻的實(shí)時(shí)監(jiān)視。
關(guān)鍵詞:環(huán)境參數(shù)嵌入式Web服務(wù)器遠(yuǎn)程監(jiān)控視頻流媒體服務(wù)器
Abstract:Aiming at the remote monitoring for the building environment, with S3C6410 chip as the processor, and combining with the embedded equipment via Internet, the information of field equipment is remotely monitored by local computer through Internet. The overall structure and functions of the system are described, the hardware structure of embedded development platform and measurement module are expounded. The design of video image acquisition and the video acquisition process based on Video4Linux are explained, and the working principle of stream media server spcaserv is introduced. The design of dynamic Web and CGI gateway program is proposed. The environmental parameters and video data collected are processed by Linux system and then transmitted based on TCP/IP protocol, real time display of the building environmental data and real time monitoring of the remote video are implemented by browser in host computer monitoring system.
Keywords:Environmental parameterEmbedded Web serverRemote monitoringVideoStreaming media server
0引言
遠(yuǎn)程監(jiān)控是指本地計(jì)算機(jī)通過一定的網(wǎng)絡(luò)系統(tǒng)對(duì)遠(yuǎn)端計(jì)算機(jī)或設(shè)備進(jìn)行監(jiān)測(cè)和控制。隨著智能化、網(wǎng)絡(luò)化的迅猛發(fā)展,嵌入式技術(shù)的發(fā)展為遠(yuǎn)程監(jiān)控提供了更好的平臺(tái)。借助遠(yuǎn)程監(jiān)控系統(tǒng),可以完成對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)采集與顯示,獲得現(xiàn)場(chǎng)監(jiān)控?cái)?shù)據(jù)。監(jiān)控系統(tǒng)對(duì)遠(yuǎn)程采集的數(shù)據(jù)進(jìn)行集中顯示,為掌握遠(yuǎn)程系統(tǒng)的環(huán)境以及綜合情況提供數(shù)據(jù)基礎(chǔ)。技術(shù)人員不需要親臨現(xiàn)場(chǎng)就可以獲得樓宇環(huán)境和現(xiàn)場(chǎng)安防系統(tǒng)以及設(shè)備的各項(xiàng)數(shù)據(jù)。通過對(duì)這些數(shù)據(jù)的分析,可以使工作人員對(duì)現(xiàn)場(chǎng)進(jìn)行監(jiān)控,維護(hù)設(shè)備的正常運(yùn)轉(zhuǎn),減少值守人員,最終實(shí)現(xiàn)遠(yuǎn)端的無人或少人值守。選用成本較低、圖像質(zhì)量較高的攝像頭作為視頻采集設(shè)備,性價(jià)比高,即插即用。在現(xiàn)場(chǎng)設(shè)備分布廣泛或數(shù)據(jù)不易采集的場(chǎng)合,遠(yuǎn)程監(jiān)控技術(shù)可以實(shí)現(xiàn)及時(shí)監(jiān)視設(shè)備的運(yùn)行狀態(tài)并進(jìn)行有效控制[1]。
1系統(tǒng)總體結(jié)構(gòu)和系統(tǒng)功能
系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 遠(yuǎn)程監(jiān)控系統(tǒng)系統(tǒng)總體結(jié)構(gòu)圖
系統(tǒng)基于嵌入式Web服務(wù)器,采用B/S監(jiān)控模式。在B/S監(jiān)控模式結(jié)構(gòu)下,用戶界面完全通過Web瀏覽器實(shí)現(xiàn)。一部分事務(wù)邏輯在客戶端實(shí)現(xiàn),主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。系統(tǒng)總體設(shè)計(jì)包括嵌入式Web服務(wù)器、遠(yuǎn)程監(jiān)控客戶端、監(jiān)控站點(diǎn)、USB攝像頭。嵌入式Web服務(wù)器主要有兩方面任務(wù):一是對(duì)現(xiàn)場(chǎng)數(shù)據(jù)如溫度、濕度、煙霧等環(huán)境參數(shù)的接收與處理,并對(duì)數(shù)據(jù)結(jié)果進(jìn)行判斷,作出相應(yīng)的報(bào)警通知和控制;二是負(fù)責(zé)數(shù)據(jù)的發(fā)送,把監(jiān)控站點(diǎn)采集的數(shù)據(jù)通過Internet發(fā)送到遠(yuǎn)程監(jiān)控客戶端,遠(yuǎn)程監(jiān)控客戶端通過IE瀏覽對(duì)現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控。監(jiān)控站點(diǎn)負(fù)責(zé)對(duì)現(xiàn)場(chǎng)環(huán)境數(shù)據(jù)的實(shí)時(shí)采集、發(fā)送和對(duì)現(xiàn)場(chǎng)設(shè)備的控制,USB 攝像頭負(fù)責(zé)現(xiàn)場(chǎng)視頻數(shù)據(jù)的實(shí)時(shí)采集。
系統(tǒng)功能包括實(shí)時(shí)數(shù)據(jù)采集與控制、遠(yuǎn)程網(wǎng)絡(luò)訪問控制、視頻監(jiān)控、報(bào)警和用戶確認(rèn)。
遠(yuǎn)程網(wǎng)絡(luò)訪問控制功能采用B/S結(jié)構(gòu),通過以太網(wǎng)接入設(shè)備將Web服務(wù)器與客戶端 PC 機(jī)相連。遠(yuǎn)程客戶端可以直接用 Windows 自帶的IE瀏覽器作為客戶端程序,隨時(shí)隨地訪問遠(yuǎn)程數(shù)據(jù)并進(jìn)行實(shí)時(shí)監(jiān)控。在Web服務(wù)器端,通過USB攝像頭采集圖像,通過spcaserv建立視頻服務(wù)器,使用TCP/IP網(wǎng)絡(luò)傳輸協(xié)議將視頻數(shù)據(jù)傳送到客戶端,用戶利用 IE 瀏覽器實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)視頻的實(shí)時(shí)監(jiān)測(cè)。
視頻功能的實(shí)現(xiàn)有三個(gè)關(guān)鍵部分。一是圖像采集,圖像通過攝像頭采集,攝像頭利用USB接口連接到Web服務(wù)器端。二是圖像傳輸,采集來的圖像存儲(chǔ)在Web服務(wù)器端,由Web服務(wù)通過spcaserv建立視頻服務(wù)器,將數(shù)據(jù)傳送到客戶端,傳輸過程采用TCP/IP網(wǎng)絡(luò)傳輸協(xié)議。三是圖像呈現(xiàn),客戶端接收服務(wù)器端傳來的視頻數(shù)據(jù)并呈現(xiàn)在IE瀏覽器上,達(dá)到實(shí)時(shí)監(jiān)測(cè)的作用。終端采集的各種數(shù)據(jù)匯集在Web服務(wù)器端,由Web服務(wù)器負(fù)責(zé)對(duì)數(shù)據(jù)的綜合分析并做出處理。處理后的數(shù)據(jù)如果超過預(yù)先設(shè)定的閾值,則說明數(shù)據(jù)可能存在異常,從而定位環(huán)境設(shè)備出現(xiàn)異常情況并啟動(dòng)報(bào)警功能。
用戶確認(rèn)功能是客戶端用戶通過瀏覽器登錄系統(tǒng)時(shí),系統(tǒng)要求使用用戶名、密碼進(jìn)行身份確認(rèn)。系統(tǒng)管理員可以進(jìn)行用戶管理。
2嵌入式開發(fā)平臺(tái)硬件結(jié)構(gòu)
采用ARM11 的S3C6410芯片及其外圍接口電路,基于Linux操作系統(tǒng)設(shè)計(jì)遠(yuǎn)程監(jiān)控系統(tǒng)。遠(yuǎn)程監(jiān)控系統(tǒng)主要包括外圍接口和溫濕度傳感器模塊、煙霧采集模塊、熱釋紅外傳感器模塊、電機(jī)驅(qū)動(dòng)模塊、蜂鳴器報(bào)警模塊和USB攝像頭,其硬件組成方框圖如圖2所示。
圖2 遠(yuǎn)程監(jiān)控系統(tǒng)硬件組成方框圖
設(shè)計(jì)系統(tǒng)的硬件平臺(tái)核心開發(fā)板是UP-Magic6410,中央處理器是三星公司的S3C6410嵌入式微處理器。系統(tǒng)硬件資源包括以太網(wǎng)接口、USB 接口。系統(tǒng)中核心開發(fā)板的外部電源是5 V,電源電路模塊通過芯片進(jìn)行降壓轉(zhuǎn)換,得到提供整個(gè)系統(tǒng)所需要的三種電壓,即3.3 V、1.8 V和1.2 V。以太網(wǎng)接口模塊使用DM9000 以太網(wǎng) MAC 控制芯片。USB接口模塊有兩部分,一部分是USB視頻接口模塊,另一部分是通過USB實(shí)現(xiàn)系統(tǒng)開發(fā)的調(diào)試和下載。USB接口攝像頭選用的是中星微 ZC30lPL 芯片的攝像頭,完成對(duì)現(xiàn)場(chǎng)視頻信息的獲取。溫濕度傳感器模塊用于采集環(huán)境溫度和濕度數(shù)據(jù)。煙霧傳感器模塊用于檢測(cè)環(huán)境中的煙霧指標(biāo)。熱釋紅外傳感器模塊用于感應(yīng)是否有人通過。蜂鳴器報(bào)警模塊用于當(dāng)發(fā)現(xiàn)被測(cè)溫度和煙霧濃度超出允許范圍時(shí),發(fā)出報(bào)警信號(hào),提醒用戶。電機(jī)驅(qū)動(dòng)模塊用于對(duì)現(xiàn)場(chǎng)情況溫度超限的降溫處理。采集的環(huán)境參數(shù)和視頻數(shù)據(jù),經(jīng)Linux系統(tǒng)處理后,基于TCP/IP協(xié)議進(jìn)行傳輸,在上位機(jī)監(jiān)控系統(tǒng)中,采用瀏覽器對(duì)現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示和遠(yuǎn)程視頻的實(shí)時(shí)監(jiān)視[2]。
在煙霧測(cè)量模塊中,采用的煙霧傳感器MQ-2是一種半導(dǎo)體氣敏傳感器。當(dāng)MQ-2傳感器處于可燃?xì)怏w環(huán)境中,空氣中的可燃?xì)怏w濃度增加時(shí),傳感器MQ-2的電導(dǎo)率會(huì)隨之增大。溫濕度傳感器模塊選用SHT10 芯片。SHT10溫濕度傳感器芯片包括一個(gè)電容式高分子濕敏感元件和一個(gè)測(cè)溫元件,集成在同一芯片上,與串行接口電路和14 位A/D轉(zhuǎn)換器實(shí)現(xiàn)無縫連接。電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)使用PWM驅(qū)動(dòng)方式。熱釋紅外傳感器用于探測(cè)紅外特征輻射,可感知人體的熱源,適用于熱釋紅外物體運(yùn)動(dòng)檢測(cè)。熱釋紅外傳感器型號(hào)為RE200B。RE200B采用熱釋電材料極化隨溫度變化的特性探測(cè)紅外輻射,當(dāng)有人通過時(shí),經(jīng)過傳感器前面濾鏡窗口采集信號(hào)。但此時(shí)輸出信號(hào)比較小且不規(guī)則,因此將輸出信號(hào)通過放大電路和比較電路,從而輸出得到需要的波形[3-4]。
3監(jiān)控系統(tǒng)軟件
監(jiān)控系統(tǒng)軟件設(shè)計(jì)包括監(jiān)控界面和監(jiān)控站點(diǎn)的軟件設(shè)計(jì)。監(jiān)控界面分為用戶登錄界面和數(shù)據(jù)顯示界面兩部分。用戶登錄界面需要輸入用戶名和密碼,當(dāng)用戶輸入用戶名和密碼后,要對(duì)用戶名和密碼分別進(jìn)行驗(yàn)證。數(shù)據(jù)顯示界面包括的信息有視頻部分和環(huán)境數(shù)據(jù)部分。監(jiān)控站點(diǎn)的軟件設(shè)計(jì)是對(duì)溫度、濕度、煙霧濃度和紅外信號(hào)狀態(tài)的讀取,對(duì)設(shè)備的控制,以及實(shí)現(xiàn)報(bào)警功能。煙霧傳感器模塊采用中斷處理模式。通過端口配置寄存器配置為輸出模式,再通過對(duì)端口數(shù)據(jù)寄存器的寫操作,實(shí)現(xiàn)對(duì)GPIO設(shè)備的控制和蜂鳴器報(bào)警模塊功能。使用GPIO的引腳GPB5和GPB6控制溫濕度傳感器模塊的SCK引腳和DATA引腳。傳感器芯片獲得的濕度值為相對(duì)濕度,為獲得精確的測(cè)量數(shù)據(jù),需用式(1)進(jìn)行信號(hào)轉(zhuǎn)換。式(1)中的濕度補(bǔ)償系數(shù)c1=-2.046 8、c2=0.036 7,c3=-1.6×10-6。
RHlinear=c1+c2×SORH+c3×SORH2(%RH)
(1)
濕度測(cè)量時(shí)測(cè)試參考溫度是25 ℃,因此濕度信號(hào)需要作溫度補(bǔ)償。溫度補(bǔ)償如式(2)所示。式(2)中的溫度補(bǔ)償系數(shù)t1=0.01,t2=0.000 08。
RHtrue=(T-25)×(t1+t2×SORH)+ RHlinear
( 2)
電機(jī)驅(qū)動(dòng)模塊采用直流電機(jī)橋模塊,用PWM輸出控制電機(jī)速度和正反轉(zhuǎn)等。熱釋紅外傳感器模塊采用中斷模式。熱釋紅外傳感器采集熱釋紅外信號(hào),通過ARM開發(fā)板GPF13引腳實(shí)現(xiàn)。
4視頻圖像采集設(shè)計(jì)
Video4Linux(簡(jiǎn)稱 V4L)是 Linux系統(tǒng)中用于視頻設(shè)備的內(nèi)核驅(qū)動(dòng)。對(duì)于視頻類影像設(shè)備,Linux提供了一套標(biāo)準(zhǔn)的應(yīng)用編程接口API 即V4L,內(nèi)核、驅(qū)動(dòng)、應(yīng)用程序以這個(gè)接口為標(biāo)準(zhǔn)進(jìn)行交流。
在完成內(nèi)核USB攝像頭驅(qū)動(dòng)的移植和加載以后,需要編寫視頻流采集程序,實(shí)現(xiàn)視頻采集設(shè)備的信息獲取和圖像采集。Linux操作系統(tǒng)V4L下視頻編程流程是打開視頻設(shè)備,讀取設(shè)備信息,更改設(shè)備當(dāng)前的設(shè)置,對(duì)采集的視頻進(jìn)行處理,關(guān)閉視頻設(shè)備。視頻采集流程圖如圖3所示。視頻設(shè)備是設(shè)備文件,可以像訪問普通文件一樣對(duì)其進(jìn)行讀寫,攝像頭設(shè)備是/dev/video0。視頻采集主要有兩種方法:內(nèi)存映射和直接從設(shè)備讀取。
圖3 視頻采集流程圖
系統(tǒng)采用spcaview軟件包創(chuàng)建遠(yuǎn)程視頻監(jiān)控服務(wù)器。spcaview是Linux系統(tǒng)下用于圖像采集的軟件,是用于實(shí)現(xiàn)網(wǎng)絡(luò)視頻服務(wù)器的軟件包,包括spcacat、spcaview和spcaserv,每一部分都具有獨(dú)特的作用。spcacat用于簡(jiǎn)單圖片的抓取,spcaview實(shí)現(xiàn)數(shù)據(jù)流記錄,也可以用在客戶端對(duì)數(shù)據(jù)進(jìn)行播放。spcaserv是流媒體服務(wù)器。設(shè)計(jì)中主要使用spcaserv實(shí)現(xiàn)遠(yuǎn)程視頻的實(shí)時(shí)監(jiān)控。
spcaserv服務(wù)器主程序流程圖如圖4所示。
圖4 spcaserv服務(wù)器主程序流程圖
解壓spcaview源碼并進(jìn)入解壓后的源文件目錄,修改Makefile文件。修改CC、CPP 編譯器宏并指定為自己的交叉編譯器,將gcc $(SERVFLAGS) -O spcaserv $(OBJSERVER) $(SERVLIBS) 修改為 $(CC) $(SERVFLAGS)-O spcaserv $(OBJSERVER) $(SERVLIBS)。使用命令make spcaserv編譯程序,若編譯成功,則會(huì)在當(dāng)前目錄下生成視頻服務(wù)器spcaserv。將生成的 spcaserv 下載到ARM開發(fā)板上。
5動(dòng)態(tài)Web網(wǎng)頁設(shè)計(jì)與實(shí)現(xiàn)
在嵌入式Web服務(wù)器設(shè)計(jì)中,客戶端采用公用網(wǎng)關(guān)接口(common gateway interface,CGI)方法與服務(wù)器端進(jìn)行數(shù)據(jù)通信與交互。CGI規(guī)定了Web服務(wù)器調(diào)用其他可執(zhí)行程序(CGI程序)的接口協(xié)議標(biāo)準(zhǔn)。CGI程序接收Web瀏覽器發(fā)送給Web服務(wù)器的信息并進(jìn)行處理,然后響應(yīng)結(jié)果回送給Web服務(wù)器及Web瀏覽器。CGI的工作流程圖如圖5所示[5-7]。
圖5 CGI工作流程示意圖
CGI程序是用來實(shí)現(xiàn)網(wǎng)頁和處理器之間信息傳遞的應(yīng)用程序。CGI 程序獲得傳感器傳來的數(shù)據(jù),通過界面的video.html文件顯示在監(jiān)控界面上。CGI程序的執(zhí)行是通過index.html文件,輸入正確的用戶名和密碼后,程序調(diào)用data.cgi文件執(zhí)行data.cgi程序。程序執(zhí)行時(shí),將采集到的數(shù)據(jù)存放到相應(yīng)的xml文件中,并打開video.html界面,video.html讀取xml中的信息并在網(wǎng)頁中顯示實(shí)時(shí)采集的數(shù)據(jù)。
網(wǎng)頁實(shí)現(xiàn)功能需要首先實(shí)現(xiàn)登錄功能,打開IE瀏覽器,在瀏覽器中輸入地址http://192.168.0.100/index.html(192.168.0.100為嵌入式開發(fā)板地址)。打開登錄界面,輸入正確的用戶名和密碼,調(diào)用CGI數(shù)據(jù)采集并打開監(jiān)控界面。index.html文件中調(diào)用CGI程序的語句是