侯 琳,李百靈,王馨鐸,于 洋,楊巨成
(天津科技大學人工智能學院,天津 300457)
隨著社會的進步,科技的發展速度也越來越快,城市的大型高層建筑數量也越來越多。建筑的不斷拔高,建筑面積也在不斷增加,導致火災安全形勢十分嚴峻。由于消防安全監管機構的人員數量有限,且缺少有效的技術支持和社會化的協作,重大的火險隱患未能及時發現、整頓和消除,火災風險發生的概率仍然居高不下。
為有效減少火災消防安全隱患,國家消防總局于2017-10-10 印發了《關于全面推進“智慧消防”建設的指導意見》。文件要求應綜合使用大數據、云計算、移動互聯網、物聯網等新的信息技術,要加快“智慧消防”的建設,全面推動信息化同消防工作的深度融合,構建全覆蓋的社會防火災管理體制,實現從“傳統消防”到“現代消防”的轉型。因此,智慧消防應運而生,而無線火災報警器可以為安全提供保障,能夠快速地將火情信息警報發出,減少損失。
該系統采用單片機作為主控,各模塊協同工作,由單片機協同完成整個系統的功能設計。本設計的重點是對微處理器進行控制,以完成微處理器的數據采集、運算、輸出、控制,所以對單片機的了解與掌握尤為重要。單片機的實質為對單片機的IO 管腳的應用[1]。根據項目的情況將單片機的IO 管腳設置為輸入或者輸出引腳,通過單片機的引腳輔以外圍電路設計與C 語言程序的配合,完成煙霧采集的功能設計。
以單片機為核心的火災報警系統,采用單片機來完成最小系統的建立,保證設備可以正常運行。通過輔助的電路來實現對傳感器數據信息的采集,采集的數據經過單片機整理后顯示輸出,或者作為邏輯的控制輸出。
單片機系統主要由晶振電路與復位電路組成,主要負責外圍數據的采集與數據運算,最后進行數據輸出與邏輯控制功能;煙霧探測用MQ-2 型煙霧傳感器探測煙塵體積分數,MQ-2 型煙霧傳感器通過單片機的數據采集進行煙霧體積分數的測量;按鍵電路模塊主要由按鍵構成,其主要作用是執行信息的輸入,并通過按鍵與設備的控制進行交互;顯示模塊主要實現數據的顯示,單片機通過顯示程序驅動顯示屏顯示數據,從而讓系統的運行狀態清晰可見,方便進行觀察;報警模塊通過驅動報警裝置,當遇到限值超標情況時,方便人員快速處理突發狀況;Wi-Fi 通訊模塊通過單片機的UART(異步收發傳輸器)接口實現數據的交互,實現設備之間的信息傳遞與遠程交互;輸出模塊中單片機通過采集的狀態判斷輸出指示,通過控制輸出狀態與外圍輔助電路實現輸出的狀態與輸出控制功能。
單片機是具有智能化的中央控制單元,核心部分由無數的微晶管組成,眾多的微晶管構成與非門電路系統,通過程序的運行控制與非門通斷,可以對邏輯進行輸入和輸出的控制,并根據不同的控制邏輯來實現相應的功能。由于單片機本身無法獨立工作,因此必須與外部電路協同工作,構成最小系統,以達到智能控制目的,能在單片機工作狀態下達到最低限度的部件就是MCU(Microcontroller Unit)最小系統[2]。本次設計采用STC 系列單片機STC89C52 作為項目的控制器,主要是8 位的CPU(Central Processing Unit),具有64 kb 的尋址空間,一共具有4 組32 個輸入與輸出的IO 管腳,具有2 個優先級與5~6 個的中斷,并且具有1 個UART 串行通訊接口[3]。
LCD1602 是一種較為常用的液晶顯示屏,它的主要功能是用來顯示數字或字符信息。LCD1602 的組成主要包括了液晶部分的LCD(Liquid Crystal Display)器件、控制與驅動電路部分、電容電阻等元器件集成在一塊電板上做成的一種液晶顯示器件。液晶顯示屏幕主要具有功耗較低、顯示內容靈活、信息較多、驅動方便、顯示刷新頻率快的特點。液晶屏幕只需要5 V的供電電壓就可以實現液晶的正常工作與驅動。LCD液晶顯示是由“.”分布組成,液晶主要結構是M×N個的單元模塊。根據字庫或者取模實現“.”組成不同的數字與字符,驅動芯片內部的RAM(Random Access Memory)的寄存器地址分別對應相應的字符組成結構。
按鍵是一個機械結構,當觸發時兩端的按鍵管腳會接通,當彈開時候按鍵兩端管腳斷開。單片機檢測到低電平說明外部按鍵觸發,從而執行按鍵操作程序。按鍵是一個接卸結構,當按下時可能看不出振動,但是單片機檢測時候會存在一個振蕩過程,所以就需要一些處理手段來實現防抖動,否則按鍵就會多次檢測實現誤差或者按鍵不靈敏。采用程序實現防抖動,在檢測按鍵時候加入5~10 ms 的延時就可以實現按鍵防抖。
采用氣體檢測模塊實現對空氣中氣體體積分數的檢測,氣體檢測模塊是通過化學反應來實現的,也可以稱之為電化學反應。隨著空氣中氣體體積分數的改變,氣體檢測傳感器的內部會發生不同的化學反應,這樣就間接導致了傳感器的輸出模擬電壓會發生變化。單片機可以通過采集AD 數據將這個模擬的變化量采集出來,從而會得到氣體體積分數的變化量。
本設計使用MQ-2 型傳感器對大氣中的煙霧體積分數進行探測,MCU 探測到傳感器的引腳電平變化就可以實現對外部煙霧體積分數的判斷。當要實時監測煙霧的體積分數數值時候就需要接入ADC(Analog-to-Digital Converter)芯片實現模擬量到數字量的轉換,也就是煙霧體積分數到電壓的變化,單片機通過采集的數字量實現了對體積分數的檢測。由于MQ-2 的傳感器特性,當剛接上電的時候,需要預熱MQ-2 傳感器才可以正常工作,一般上電幾分鐘就可以完成預熱得到準確的測量數據。
報警模塊可以發出聲音或發光,利用聲響來警告異常狀況,從而實現警示作用。該設計的報警功能是通過蜂鳴器來實現的,在系統出現故障時,會有聲音的提醒。蜂鳴器的報警采用三極管9012 作為一個開關器件,控制蜂鳴器是否發出聲音。電源電壓為5V 驅動蜂鳴器發出聲音,單片機的P2.0 引腳連接到9012 三極管的基極。當單片機的P2.0 引腳輸出一個低電平時,Q1 三極管導通,蜂鳴器發出報警聲音;當單片機的引腳輸出一個高電平時,Q1 三極管截止,蜂鳴器停止發生。單片機通過控制IO 引腳實現對蜂鳴器報警的間接控制,起到了系統聲音預警的作用。
氣體探測模塊是利用化學方法實現對大氣中氣體體積分數的監測,也可以稱之為電化學反應。當氣體體積分數發生變化時,傳感器內部會產生不同的化學反應,這樣就間接地導致了傳感器輸出的模擬電壓有一定的改變。單片機可以利用采集的AD 數據把這個模擬的變化量采集出來,從而會得到氣體體積分數的變化量。采集氣體體積分數是將模擬量轉化為數字量然后給單片機使用,從而得到氣體體積分數變化以便設備做出反應。一般來說氣體傳感器想要正常進入工作狀態需要預熱幾分鐘,等待傳感器中的化學反應初始化完成,這個時候測量的氣體體積分數就會相對準確。鐵網部分為氣體檢測傳感器,傳感器只需要接入電壓5V 電源正常供電即可,氣體傳感器的輸出引腳為第3 個引腳,根據檢測需求連接到單片機中即可檢測氣體體積分數。
設備連接網絡中實現物聯網的通訊功能,采用Wi-Fi 模塊的型號是USR-WIFI232 模塊與手機之間進行連接。USR-WIFI232 模塊采用終端模式設置,手機搜索到模塊信號進行連接,即可接入到網絡實現Wi-Fi之間的無線數據交互。USR-WIFI232 模塊采用的供電電壓是3.3 V 供電,超過電壓可能導致Wi-Fi 模塊燒毀,使用時候采用降壓芯片可以實現穩定的電源供給。USR-WIFI232 模塊內部集成了以太網協議,用戶不需關心網絡數據協議,只需要完成數據的傳輸即可。模塊與單片機之間采用串口來進行數據的傳輸,通過透傳模式將數據發送到以太網端,用戶也不必關心網絡協議,只需要直接解析數據即可。將Wi-Fi 模塊的第3個引腳連接到單片機的RXD(接收數據的引腳),將Wi-Fi 模塊的第4 個引腳連接到單片機的TXD(發送數據的引腳),這樣就可以實現數據的傳輸。根據模塊使用說明需要在Wi-Fi 模塊的第10 個引腳加入上拉電阻,這樣模塊就可以進入到正常工作狀態。
繼電器是常用的一種電子開關設備,單片機可利用IO 引腳實現控制,最常見的應用為弱電壓控制強電壓的一種手段。繼電器的開啟或關閉是根據電磁現象來實現的,當繼電器沒有通電,繼電器的觸點在彈簧的作用下處于分開狀態,當電流通過控制端子的線圈時,會形成一個磁場,通過磁場來吸引觸頭,繼電器就處于開啟狀態,從而完成開關的基本功能。本設計采用一個三極管9012 作為電路的控制開關,增強線圈中的導通電流。該控制器與P2.4 管腳相連接,當P2.4管腳的輸出為低電平時,三極管處于導通狀態,電流通過繼電器線圈,形成一個磁力吸收觸點,從而使繼電器能夠接通。三極管在P2.4 是高電平時斷開,繼電器不動作。采用二極管4148 實現反向擊穿保護,防止線圈中斷電之后產生電壓而燒毀器件。
采用STC89C52 單片機控制連接硬件設備,對紅煙霧傳感器采集的煙霧體積分數進行分析,對單片機相連的輸出設備進行相應的操作[4]。此系統當中與STC89C52 設備相連的是MQ-2 煙霧傳感器。火災傳感器把采集到的數據信息上傳到單片機中并進行顯示,通過Wi-Fi 模塊連接到手機的APP 中,實現數據的遠程查看。
單片機程序運行時,必須要啟動主函數main,會首先從主函數的第一個程序開始,然后依次執行[5]。主程序主要包含了數據的定義部分、循環部分和調用子函數部分。程序最先進行的是各個傳感器的初始化程序,等傳感器都進入到正常的運行狀態之后進入循環程序,循環程序會一直執行,從第一條開始調用對應的子程序,然后依次執行到最后,接著再次返回到循環程序的第一條開始反復地運行。
傳感器檢測程序主要是利用MQ-2 檢測煙霧的體積分數,MQ-2 把檢測的模擬量通過ADC 轉化為數字量。當ADC 讀取數據,采集完成后會輸出一個數字量,這個數字量就是MQ-2 傳感器采集的體積分數數據,單片機通過傳感器采集的體積分數與設置的體積分數進行比較,實現傳感器的檢測數據與煙霧的體積分數報警。
傳感程序主要是對外界的各種信號進行檢測,并進行采集,再由單片機對數據進行計算和處理,并完成相對的邏輯功能。在傳感器通電后,由微處理器初始化傳感器設置,再進行數據的采集,判斷是否正確。如果采集成功,則對采集的數據進行處理;如果失敗,則再次進行采樣,最后根據采集的數據結果實現對相應程序的處理。
登錄界面設計步驟如下:①聲明用戶名編輯框、密碼編輯框,登錄按鈕,設置登錄按鈕的事件監聽器;②點擊登錄按鈕后,獲取用戶名編輯框和密碼編輯框的文字,然后和用戶名、密碼比對,若比對成功,則跳轉到主界面,否則彈出一個Toast 提示登錄錯誤。
主界面設計步驟如下:①定義控件,綁定控件,設置連接按鈕和發送按鈕的事件監聽器;②實例化一個Handler 對象,Handler 用于Android 子線程和UI線程的線程間通信;③點擊連接按鈕后,開啟一個線程進行Socket 的連接,并在連接成功后通過Handler對象發送“連接成功(msg.what=1)”消息到UI 線程;④Handler 處理“連接成功”消息,開啟一個線程死循環一直讀取服務器消息;⑤點擊發送按鈕后,開啟一個線程通過輸出流發送數據。