鐘利娟,文歡
(新疆農業大學計算機與信息工程學院,新疆烏魯木齊830052)
隨著傳感器技術和人工智能技術的發展,各種智能化設備逐漸地進入到人們的生活當中,代替了一些煩瑣或者危險的工作[1]。在現代社會,人們建造的房屋越來越多,發生家庭火災的可能性也就越來越大。現有的火災報警裝置的監測方式也比較單一,時常發生火災誤報的情況,并且報警裝置與滅火裝置無法聯動。因此,設計一種實用、智能、精準的火災監測報警系統顯得十分重要。這不僅需要設計者的思維從原來的注重節約轉向安全、人性化,也要求火災監測報警系統達到更智能、更精確的水平[2]。
本設計基于Raspberry Pi 3B+樹莓派實現了一種火災監測報警系統。該系統由檢測、報警與控制三個部分組成,可實現煙霧和火焰自動檢測、聲光報警、拍攝上傳現場畫面,并通過微信公眾號控制滅火裝置開關的功能。用戶根據上傳的現場畫面,判斷是否真正發生火災,這樣大大減小了火情誤報的概率。如果真實發生火災,可通過微信公眾號遠程控制滅火裝置的開關,這樣可以降低人工成本、減少損失。多傳感器監測火災和智能滅火功能,是對火災防范以及及時應對環境狀況的有效方法,其中包含傳統火災報警系統的特點,也滿足目前對火災現場及時控制的需求,提升了火災監測報警系統的各方面的功能性[3]。
本設計采用Raspberry Pi 3B+樹莓派作為主控模塊,Python作為主要編程語言。火災監測報警控制系統的煙霧傳感器和火焰傳感器模塊實時檢測火情,將檢測的數據傳送至Raspber‐ry Pi 3B+樹莓派進行處理。Raspberry Pi 3B+樹莓派根據輸入數據,對蜂鳴器、LED 燈和CSI攝像頭進行智能控制,實現聲光物理報警和拍攝現場畫面并上傳至用戶郵箱的功能。如果用戶判斷為真實發生火災,將通過微信公眾號向服務器發送控制指令。mosquitto 消息代理發布主題。Raspberry Pi 3B+樹莓派從服務器上訂閱相應主題,對滅火裝置開關進行控制。整體系統設計框圖,如圖1所示。

圖1 整體系統設計框圖
2.1.1 傳感器
系統中對火焰的檢測采用體積較小的三線制火焰傳感器。該傳感器有三個端口,即DO、GND 和VCC,可以檢測波長從760nm 到1100nm 的火焰或光源。檢測的角度大約為60 度,尤其對于火焰的光譜非常敏感,另外它的靈敏度可以依據不同環境進行人工調節。該傳感器中采用的是LM393 芯片作為比較器,工作穩定,不容易出現故障,體積小便于安裝[4]。在本設計當中,Raspberry Pi 3B+樹莓派上的GPIO 口需要檢測火焰傳感器模塊DO口的輸入信號。
系統中對煙霧的檢測使用了非常便宜的MQ-2 氣體傳感器,這是一種二氧化錫半導體氣體敏感材料。當接觸到氣體煙霧時,該材料的電導率就會發生變化,煙霧的濃度越大,電導率就越大,電阻就會越低。MQ-2具有DO數字信號輸出,可以按需調節檢測的靈敏度。
2.1.2 Raspberry Pi 3B+樹莓派
2.1.3 攝像頭
當Raspberry Pi 3B+樹莓派檢測到火災發生時,會打開攝像頭,將現場的畫面拍照上傳至用戶的郵箱,用戶進行人工識別。本設計中選擇CSI 攝像頭,其成本低。雖然CSI 攝像頭幀率較高,但相對比于USB 攝像頭來說,CPU 使用占比更低。考慮到在本設計中,Raspberry Pi 3B+樹莓派還需運行其他模塊的程序,因此選擇CSI攝像頭更為合適。
2.1.4 微信公眾號
微信公眾號是用于發送開啟和關閉滅火裝置的指令。微信公眾號有兩種賬號,分別為個人和企業號,個人號支持普通的開發功能,擁有的權限相對較少[6]。但是在本設計中,只需利用微信公眾號的消息收發功能,所以只需申請一個個人公眾號即可。
2.1.5 Django框架
Django 是一個開源、免費、高級的Python web 框架,可以用于快速開發實用的代碼[7]。其初衷是為了支持Web應用程序開發、Web API和Web服務。借助Django框架,Web開發者可以專注于創建功能豐富、快速、安全和可擴展的獨特應用程序,并得益于比使用Web開發工具更強的靈活性。Django能處理Web開發方面的許多麻煩,使用戶能夠致力于開發應用程序所需的組件,而不是將時間花在已開發的組件上。本設計中,通過Django框架搭建微信公眾號服務器用于對消息的接收和回復。
2.1.6 mosquitto 消息代理
mosquitto 是一個開源的消息代理服務器,它可以實現MQTT 協議的3.1 版本,支持可發布/可訂閱的消息推送模式。在本設計中,微信公眾號作為發布端向mosquitto消息代理發布主題,Raspberry Pi 3B+樹莓派作為訂閱端,從mosquitto 消息代理處訂閱相應主題。
4) 核心交換機CS6509與匯聚交換機CS3560G之間的鏈路利用率、吞吐量、排隊時延:根據這些指標以觀察NIC與Student子網之間的鏈路情況.
2.1.7 公用IP
微信公眾號的接口開發和MQTT協議主題的發布和訂閱,需要使用一個公網IP的兩個端口。微信公眾號遠程控制滅火裝置開關的程序不能在本地運行,因為充當服務器功能的本機一旦關機,微信公眾號以及mosquitto 消息代理就無法正常運行,所以在本設計中使用了騰訊云的服務器,并在服務器上裝Ubuntu桌面版的系統,以便于之后的可視化操作。

圖2 整體系統設計仿真圖
火災檢測模塊是火災監測報警系統中的基礎部分。本設計中,采用Raspberry Pi 3B+樹莓派作為本次設計的主要控制單元。當火焰和煙霧傳感器模塊都達到閾值時,火焰和煙霧傳感器模塊分別從數字引腳向Raspberry Pi 3B+樹莓派輸出低電平。Raspberry Pi 3B+樹莓派處理信息,給控制蜂鳴器和LED燈的引腳分別輸出低電平和高電平從而實現聲光物理報警功能。同時Raspberry Pi 3B+樹莓派還將打開CSI攝像頭,拍攝一張照片發送至用戶的郵箱,用戶可以根據照片內容進行人工判斷,這樣既節省了人力又降低了誤報率。
微信公眾號遠程控制滅火裝置模塊分為三個部分。首先利用微信公眾號,在騰訊云服務器上搭建Django框架作為微信公眾號的服務器,用于微信公眾號接收和回復消息。當公眾號收到open 時,回復用戶“收到open,已經將1 發送到subscribe 平臺”;當公眾號收到close時,回復用戶“收到close,已經將0發送到subscribe平臺”;當公眾號收到除open和close以外的其他信息時,則回復相同的信息。
其次,在服務器上安裝mosquitto消息代理。選用MQTT協議,而不是HTTP協議,是因為MQTT協議,相較于HTTP協議吞吐量更大,依賴TCP 協議具有非常高的可靠性。本設計中,微信公眾號接收到相應指令后,mosquitto消息代理發布主題。
最后,Raspberry Pi 3B+樹莓派作為訂閱端從mosquitto消息代理(broker)處訂閱相應主題,從MQTT協議的報文當中獲得控制指令,根據指令對控制舵機的端口輸出PWM脈沖信號。
火災監測報警系統的運行邏輯是軟件設計的核心。當火災檢測模塊沒有檢測到火情時,系統不做任何處理。當檢測到火情時,系統進行聲光物理報警并打開CSI攝像頭,拍攝一張照片發送至用戶郵箱,用戶進行人工判斷是否發生火災。如果沒有發生火災,為誤報情況,系統不做任何處理。如果發生火災,用戶可通過微信公眾號遠程控制滅火裝置的開關。用戶向公眾號發送open,舵機順時針旋轉180度,打開滅火裝置的開關。用戶向公眾號發送close,舵機逆時針旋轉180 度,關閉滅火裝置的開關。火災監測報警系統的軟件設計流程圖如圖3所示。

圖3 火災監測報警系統軟件設計流程圖
火災監測報警系統的實物圖如圖4 所示。并對系統測試了以下幾種情況:

圖4 火災監測報警系統實物圖
當只有煙霧傳感器模塊達到閾值時,火災監測報警系統未觸發。
當只有火焰傳感器模塊達到閾值時,火災監測報警系統也未觸發。
當火焰傳感器和煙霧傳感器同時達到閾值時,會觸發火災監測報警系統,系統進行聲光物理報警,并打開攝像頭拍攝一張照片,然后發送至用戶的郵箱。用戶根據拍攝的照片,發現確實發生火災,立馬向微信公眾號發送open 的指令,舵機在2秒內順時針旋轉180 度,打開滅火裝置開關。5 分鐘后用戶向微信公眾號發送close 的指令,舵機在2 秒內逆時針旋轉180度,關閉滅火裝置的開關。
本文提出了一個基于Raspberry Pi 3B+樹莓派的火災監測報警系統的設計與實現方法。主要闡述了火災檢測模塊和微信公眾號遠程控制滅火裝置模塊兩部分。火災檢測模塊主要實現了火災檢測與報警功能,發生火災時將采集到的信息傳送給Raspberry Pi 3B+樹莓派,Raspberry Pi 3B+樹莓派進行聲光物理報警,并打開攝像頭拍照上傳至用戶郵箱。微信公眾號遠程控制滅火裝置模塊主要實現了控制功能。在發生火災的情況下,能最大限度地節省時間并達到滅火的效果,這也是本設計的創新之處。相比于傳統的火災監測報警器,本設計更加人性化和智能化。軟件設計主要為火災監測報警系統的運行邏輯設計、火災監測的數據采集與處理和服務器對于指令的處理。經測試,本設計具有實時檢測火災,聲光報警,發送現場照片至用戶郵箱,用戶通過微信公眾號遠程控制滅火裝置開關的功能。整個系統性能穩定,實時效果明顯,感應靈敏,應用前景廣泛。