Research on the Remote Monitoring System for Building Environment
艾 紅 孫順順
(北京信息科技大學自動化學院,北京 100192)
樓宇環境遠程監控系統研究
Research on the Remote Monitoring System for Building Environment
艾紅孫順順
(北京信息科技大學自動化學院,北京100192)
摘要:針對樓宇環境遠程監控,以S3C6410芯片為處理器,通過Internet與嵌入式設備相結合,使用本地計算機通過Internet對現場設備信息進行遠程監控。描述了系統總體結構和系統功能,闡述了嵌入式開發平臺的硬件結構和測量模塊;說明了視頻圖像采集設計和Video4Linux下視頻采集流程,介紹了流媒體服務器spcaserv工作原理;給出了動態Web網頁設計和CGI網關程序設計。采集的環境參數和視頻數據經Linux系統處理后基于TCP/IP協議進行傳輸,在上位機監控系統中用瀏覽器實現對樓宇環境數據的實時顯示和遠程視頻的實時監視。
關鍵詞:環境參數嵌入式Web服務器遠程監控視頻流媒體服務器
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引言
遠程監控是指本地計算機通過一定的網絡系統對遠端計算機或設備進行監測和控制。隨著智能化、網絡化的迅猛發展,嵌入式技術的發展為遠程監控提供了更好的平臺。借助遠程監控系統,可以完成對現場數據的實時采集與顯示,獲得現場監控數據。監控系統對遠程采集的數據進行集中顯示,為掌握遠程系統的環境以及綜合情況提供數據基礎。技術人員不需要親臨現場就可以獲得樓宇環境和現場安防系統以及設備的各項數據。通過對這些數據的分析,可以使工作人員對現場進行監控,維護設備的正常運轉,減少值守人員,最終實現遠端的無人或少人值守。選用成本較低、圖像質量較高的攝像頭作為視頻采集設備,性價比高,即插即用。在現場設備分布廣泛或數據不易采集的場合,遠程監控技術可以實現及時監視設備的運行狀態并進行有效控制[1]。
1系統總體結構和系統功能
系統總體結構如圖1所示。

圖1 遠程監控系統系統總體結構圖
系統基于嵌入式Web服務器,采用B/S監控模式。在B/S監控模式結構下,用戶界面完全通過Web瀏覽器實現。一部分事務邏輯在客戶端實現,主要事務邏輯在服務器端實現。系統總體設計包括嵌入式Web服務器、遠程監控客戶端、監控站點、USB攝像頭。嵌入式Web服務器主要有兩方面任務:一是對現場數據如溫度、濕度、煙霧等環境參數的接收與處理,并對數據結果進行判斷,作出相應的報警通知和控制;二是負責數據的發送,把監控站點采集的數據通過Internet發送到遠程監控客戶端,遠程監控客戶端通過IE瀏覽對現場數據進行實時監控。監控站點負責對現場環境數據的實時采集、發送和對現場設備的控制,USB 攝像頭負責現場視頻數據的實時采集。
系統功能包括實時數據采集與控制、遠程網絡訪問控制、視頻監控、報警和用戶確認。
遠程網絡訪問控制功能采用B/S結構,通過以太網接入設備將Web服務器與客戶端 PC 機相連。遠程客戶端可以直接用 Windows 自帶的IE瀏覽器作為客戶端程序,隨時隨地訪問遠程數據并進行實時監控。在Web服務器端,通過USB攝像頭采集圖像,通過spcaserv建立視頻服務器,使用TCP/IP網絡傳輸協議將視頻數據傳送到客戶端,用戶利用 IE 瀏覽器實現對現場視頻的實時監測。
視頻功能的實現有三個關鍵部分。一是圖像采集,圖像通過攝像頭采集,攝像頭利用USB接口連接到Web服務器端。二是圖像傳輸,采集來的圖像存儲在Web服務器端,由Web服務通過spcaserv建立視頻服務器,將數據傳送到客戶端,傳輸過程采用TCP/IP網絡傳輸協議。三是圖像呈現,客戶端接收服務器端傳來的視頻數據并呈現在IE瀏覽器上,達到實時監測的作用。終端采集的各種數據匯集在Web服務器端,由Web服務器負責對數據的綜合分析并做出處理。處理后的數據如果超過預先設定的閾值,則說明數據可能存在異常,從而定位環境設備出現異常情況并啟動報警功能。
用戶確認功能是客戶端用戶通過瀏覽器登錄系統時,系統要求使用用戶名、密碼進行身份確認。系統管理員可以進行用戶管理。
2嵌入式開發平臺硬件結構
采用ARM11 的S3C6410芯片及其外圍接口電路,基于Linux操作系統設計遠程監控系統。遠程監控系統主要包括外圍接口和溫濕度傳感器模塊、煙霧采集模塊、熱釋紅外傳感器模塊、電機驅動模塊、蜂鳴器報警模塊和USB攝像頭,其硬件組成方框圖如圖2所示。

圖2 遠程監控系統硬件組成方框圖
設計系統的硬件平臺核心開發板是UP-Magic6410,中央處理器是三星公司的S3C6410嵌入式微處理器。系統硬件資源包括以太網接口、USB 接口。系統中核心開發板的外部電源是5 V,電源電路模塊通過芯片進行降壓轉換,得到提供整個系統所需要的三種電壓,即3.3 V、1.8 V和1.2 V。以太網接口模塊使用DM9000 以太網 MAC 控制芯片。USB接口模塊有兩部分,一部分是USB視頻接口模塊,另一部分是通過USB實現系統開發的調試和下載。USB接口攝像頭選用的是中星微 ZC30lPL 芯片的攝像頭,完成對現場視頻信息的獲取。溫濕度傳感器模塊用于采集環境溫度和濕度數據。煙霧傳感器模塊用于檢測環境中的煙霧指標。熱釋紅外傳感器模塊用于感應是否有人通過。蜂鳴器報警模塊用于當發現被測溫度和煙霧濃度超出允許范圍時,發出報警信號,提醒用戶。電機驅動模塊用于對現場情況溫度超限的降溫處理。采集的環境參數和視頻數據,經Linux系統處理后,基于TCP/IP協議進行傳輸,在上位機監控系統中,采用瀏覽器對現場數據進行實時顯示和遠程視頻的實時監視[2]。
在煙霧測量模塊中,采用的煙霧傳感器MQ-2是一種半導體氣敏傳感器。當MQ-2傳感器處于可燃氣體環境中,空氣中的可燃氣體濃度增加時,傳感器MQ-2的電導率會隨之增大。溫濕度傳感器模塊選用SHT10 芯片。SHT10溫濕度傳感器芯片包括一個電容式高分子濕敏感元件和一個測溫元件,集成在同一芯片上,與串行接口電路和14 位A/D轉換器實現無縫連接。電機驅動模塊設計使用PWM驅動方式。熱釋紅外傳感器用于探測紅外特征輻射,可感知人體的熱源,適用于熱釋紅外物體運動檢測。熱釋紅外傳感器型號為RE200B。RE200B采用熱釋電材料極化隨溫度變化的特性探測紅外輻射,當有人通過時,經過傳感器前面濾鏡窗口采集信號。但此時輸出信號比較小且不規則,因此將輸出信號通過放大電路和比較電路,從而輸出得到需要的波形[3-4]。
3監控系統軟件
監控系統軟件設計包括監控界面和監控站點的軟件設計。監控界面分為用戶登錄界面和數據顯示界面兩部分。用戶登錄界面需要輸入用戶名和密碼,當用戶輸入用戶名和密碼后,要對用戶名和密碼分別進行驗證。數據顯示界面包括的信息有視頻部分和環境數據部分。監控站點的軟件設計是對溫度、濕度、煙霧濃度和紅外信號狀態的讀取,對設備的控制,以及實現報警功能。煙霧傳感器模塊采用中斷處理模式。通過端口配置寄存器配置為輸出模式,再通過對端口數據寄存器的寫操作,實現對GPIO設備的控制和蜂鳴器報警模塊功能。使用GPIO的引腳GPB5和GPB6控制溫濕度傳感器模塊的SCK引腳和DATA引腳。傳感器芯片獲得的濕度值為相對濕度,為獲得精確的測量數據,需用式(1)進行信號轉換。式(1)中的濕度補償系數c1=-2.046 8、c2=0.036 7,c3=-1.6×10-6。
RHlinear=c1+c2×SORH+c3×SORH2(%RH)
(1)
濕度測量時測試參考溫度是25 ℃,因此濕度信號需要作溫度補償。溫度補償如式(2)所示。式(2)中的溫度補償系數t1=0.01,t2=0.000 08。
RHtrue=(T-25)×(t1+t2×SORH)+ RHlinear
( 2)
電機驅動模塊采用直流電機橋模塊,用PWM輸出控制電機速度和正反轉等。熱釋紅外傳感器模塊采用中斷模式。熱釋紅外傳感器采集熱釋紅外信號,通過ARM開發板GPF13引腳實現。
4視頻圖像采集設計
Video4Linux(簡稱 V4L)是 Linux系統中用于視頻設備的內核驅動。對于視頻類影像設備,Linux提供了一套標準的應用編程接口API 即V4L,內核、驅動、應用程序以這個接口為標準進行交流。
在完成內核USB攝像頭驅動的移植和加載以后,需要編寫視頻流采集程序,實現視頻采集設備的信息獲取和圖像采集。Linux操作系統V4L下視頻編程流程是打開視頻設備,讀取設備信息,更改設備當前的設置,對采集的視頻進行處理,關閉視頻設備。視頻采集流程圖如圖3所示。視頻設備是設備文件,可以像訪問普通文件一樣對其進行讀寫,攝像頭設備是/dev/video0。視頻采集主要有兩種方法:內存映射和直接從設備讀取。

圖3 視頻采集流程圖
系統采用spcaview軟件包創建遠程視頻監控服務器。spcaview是Linux系統下用于圖像采集的軟件,是用于實現網絡視頻服務器的軟件包,包括spcacat、spcaview和spcaserv,每一部分都具有獨特的作用。spcacat用于簡單圖片的抓取,spcaview實現數據流記錄,也可以用在客戶端對數據進行播放。spcaserv是流媒體服務器。設計中主要使用spcaserv實現遠程視頻的實時監控。
spcaserv服務器主程序流程圖如圖4所示。

圖4 spcaserv服務器主程序流程圖
解壓spcaview源碼并進入解壓后的源文件目錄,修改Makefile文件。修改CC、CPP 編譯器宏并指定為自己的交叉編譯器,將gcc $(SERVFLAGS) -O spcaserv $(OBJSERVER) $(SERVLIBS) 修改為 $(CC) $(SERVFLAGS)-O spcaserv $(OBJSERVER) $(SERVLIBS)。使用命令make spcaserv編譯程序,若編譯成功,則會在當前目錄下生成視頻服務器spcaserv。將生成的 spcaserv 下載到ARM開發板上。
5動態Web網頁設計與實現
在嵌入式Web服務器設計中,客戶端采用公用網關接口(common gateway interface,CGI)方法與服務器端進行數據通信與交互。CGI規定了Web服務器調用其他可執行程序(CGI程序)的接口協議標準。CGI程序接收Web瀏覽器發送給Web服務器的信息并進行處理,然后響應結果回送給Web服務器及Web瀏覽器。CGI的工作流程圖如圖5所示[5-7]。

圖5 CGI工作流程示意圖
CGI程序是用來實現網頁和處理器之間信息傳遞的應用程序。CGI 程序獲得傳感器傳來的數據,通過界面的video.html文件顯示在監控界面上。CGI程序的執行是通過index.html文件,輸入正確的用戶名和密碼后,程序調用data.cgi文件執行data.cgi程序。程序執行時,將采集到的數據存放到相應的xml文件中,并打開video.html界面,video.html讀取xml中的信息并在網頁中顯示實時采集的數據。
網頁實現功能需要首先實現登錄功能,打開IE瀏覽器,在瀏覽器中輸入地址http://192.168.0.100/index.html(192.168.0.100為嵌入式開發板地址)。打開登錄界面,輸入正確的用戶名和密碼,調用CGI數據采集并打開監控界面。index.html文件中調用CGI程序的語句是