(上海工程技術大學 電子電氣工程學院,上海 201620)
2008年11月14日上海商學院、2011年11月03日清華大學的宿舍失火以及2015年8月12日天津倉庫爆炸等事件造成了嚴重的生命傷害和的財產損失。為提高安全管理水平,有效監測環境安全,避免火災發生,本文研發一款基于ZigBee的環境安全監測系統。該系統可對人群、物品比較集中,容易引發危險的宿舍以及倉庫等類似的空間進行溫度、濕度、可燃性氣體濃度、用電功率等一系列監測。
該系統采用多種傳感器模塊來采集監測地點的環境數據,利用單片機控制器將采集到的環境數據進行處理與整合,并通過ZigBee傳輸協議將數據發送給上位機,上位機的“智能監控”客戶端基于Visual Basic 6.0 編寫,其采用的數據庫技術能直觀、方便地對環境數據進行管理與分析。
該系統經實驗可以對預期的監測地點的溫度、濕度、可燃性氣體濃度和用電功率等參數進行監測,若環境處在危險情況下,該系統可報警通知管理人員且具有自動排除危險的功能。
該系統由三大部分組成:下位機系統、上位機系統和通信轉接板,系統總體結構框圖如圖1所示。下位機系統主要負責檢測環境數據和OLED液晶顯示,并通過ZigBee無線傳輸技術經由通信轉接板與上位機通信。上位機系統主要負責接收下位機系統傳輸的數據、數據分析以及環境監測數據的遠程顯示和圖表展示。該系統對監測地點分有人管理和無人管理兩種情況進行不同的報警模式。在有人管理的模式下僅觸發語音報警,不觸發宿管處的蜂鳴器報警;而在無人管理的情況下語音和蜂鳴器兩種報警模式同時觸發,并且會以短信形式通知管理人員。系統在必要時還可以實現對危險因素的自動排除功能,例如自動切斷回路的總電源。

圖1 監控系統總體設計框圖
在下位機主控芯片的選型上,本系統采用了STC(宏晶科技)公司的1T增強系列8051單片機STC12LE5A60S2作為主控芯片,速度較傳統8051快8~12倍,但完全兼容8051傳統單片機的匯編指令代碼;采用了新型的哈佛結構,將輸入的程序和存儲的數據分開來增加數據的吞吐和運行的效率,使得數據吞吐率較以前增加了一倍左右。STC12LE5A60S2還具有足夠大的片上內存,包括FLASHROM(60 KB)、RAM(1280 B)[1],足夠容納供OLED顯示用的常用字庫以及圖片取模字庫;還擁有充足的I/O口引腳,能夠對各種環境監測傳感器進行擴展連接。
在自主設計硬件PCB板時為其預留了較多的I/O接口,不僅很大程度上展現出了STC12LE5A60S2的多I/O口綜合控制能力,同時還為使用者進行二次研發提供了很大的拓展空間。
系統采用ZigBee技術,其是一種近距離、低功耗、低數據速率的雙向無線通信技術,主要基于IEEE 802.15.4標準,支持最高3300 B/s的數據傳輸速率,使用2.4 GHz的頻段進行通信,可以快速組建局域網絡。
該系統使用了“深聯創新”所研發的無線ZigBee模塊DL-20,其無需學習復雜的Zigbee協議棧[2],也無需ZigBee協調器和路由節點,終端節點就可以完成組網和轉發。其采用CC2530作為系統芯片,集成了工業級的增強型8051控制器,在提高性能的基礎上,也滿足了以ZigBee為基礎的2.4 GHz ISM波段[3]。該模塊功率約為100 mW,PCB板內置天線,有效傳輸距離在無干擾情況下可達約200 m。
環境數據的采樣和存儲在環境監測過程中是非常重要的部分。該系統可對可燃性氣體、溫度、濕度、用電功率和有/無人狀態進行實時采集。DHT22溫濕度傳感器負責溫度和濕度的檢測、HC-SR501紅外傳感器負責對有/無人狀態的檢測,二者通過單片機普通I/O口傳遞環境參數。MQ-2煙霧傳感器負責可燃性氣體濃度的檢測,HBC05PS3.3霍爾傳感器負責用電功率的檢測,二者通過單片機A/D轉換口傳遞環境參數。
系統設定單片機定時器每10 s進入1次中斷,并發出輪詢事件,周期性地更新各個傳感器所采集的實時環境數據,由此完成整個環境數據采集和處理任務。
報警子系統能播報環境異常語音廣播。語音播報電路采用語音解碼芯片QJ004-16S,其集成了MP3、WMV的硬解碼能力,其原理圖如圖2所示。

圖2 解碼芯片與TF卡相連原理圖
該語音解碼芯片與TF卡直接相連接,并通過SPI串口協議傳輸,獲取到預置在SD卡中的語音報警音頻文件,解碼后的數據流會通過LM4890音頻功放芯片進行功率放大,通過外接揚聲器播放輸出[4],電路原理圖如圖3所示。

圖3 功放芯片外圍電路原理圖
其中DACL和DACR分別為經過QJ004-16S音頻解碼后的左聲道數據流和右聲道數據流,引腳8輸出的ROUT與引腳5輸出的LOUT即可外接揚聲器。報警時硬件實物圖如圖4所示。

圖4 下位機硬件報警實物圖
該報警子系統能夠智能識別導致當前環境異常的原因,自選擇儲存在SD卡中相應的音頻文件進行播放,提升系統的智能性。相關代碼如下。
//將各報警標志位移位后或運算,賦給一個報警變量
tempmode=(u8)((Temp_Mode<<3)|(Humi_Mode<<2)|
(Gas_Mode<<1)|Pow_Mode);
switch(tempmode){
case 0x08:
//語音播報子程序,播放溫度異常語音
Music_Pointplay(Temp_Alarm); break;
case 0x04:
//語音播報子程序,播放溫度異常語音
關羽的忠義一直以來被人們傳誦。他去世以后,老百姓就在各地建廟供奉,稱他為“商界保護神”“醫藥神”“戰神”。歷代朝廷也都對他進行褒封,如“關圣帝君”“武圣”等,與“文圣”的孔子齊名。千年以來,關帝廟香火不斷,表現了人們對關羽的敬仰和崇拜之情。
Music_Pointplay(Humi_Alarm); break;
case 0x02:
//檢測到可燃性氣體超過20秒自動斷電
if(Gas_Offpow_Delay==2){
Music_Pointplay(Gas_Offpower_Alarm);
Power_Off();//切斷回路電源子程序
Gas_Offpow_Delay=0;//時間標志位清零
}else Music_Pointplay(Gas_Alarm);
break;
case 0x01:
//檢測到功率異常超過60秒自動斷電
if(Cur_Offpow_Delay==6){
Music_Pointplay(Cur_Offpower_Alarm);
Power_Off();//切斷回路電源子程序
Cur_Offpow_Delay=0;//時間標志位清零
}else Music_Pointplay(Power_Alarm); break;
default://若存在多個環境異常
Mul_Mode();//多異常處理子程序
//播報多異常語音
Music_Pointplay(Mul_Alarm);
}
本系統的軟件部分由下位機STC單片機程序、上位機VB6.0客戶端程序和數據庫存儲3部分組成。
該系統使用Keil C軟件對STC單片機進行開發。Keil C51是一款軟件開發系統,其為51系列并兼容單片機C語言,由美國Keil Software公司出品[5]。
程序設計思路如下:當系統上電后,首先檢查硬件系統的完整性和對相關事件進行初始化,當與上位機ZigBee網絡建立成功后,開始采集并展示環境數據,保證系統有條不紊地運行。若監測過程中遇到環境危險的情況,則調用相應的事件處理函數并進行報警。過程中時刻保持與樓層ZigBee管理器的通信暢通。
位于各個寢室的ZigBee終端將采集到的室內環境數據周期性地發送至每層的樓層ZigBee管理器,樓層ZigBee管理器按樓層由高向低匯總至1樓ZigBee管理器,1樓ZigBee管理器負責將所有寢室的環境數據傳輸給上位機。ZigBee數據通信協議如表1所示。

表1 數據通信協議
注:校驗位根據程序算法得出
本系統上位機客戶端基于Visual Basic 6.0 平臺建立,其主要用于將各項環境數據通過圖形化界面展示,方便宿管及時了解各個寢室的環境問題。其工作流程圖如圖5所示。

圖5 “智能監控”工作流程圖
上位機監控軟件通過MSComm串口控件的comEvReceive事件接收到轉接板發送的環境數據后根據通信協議對數據進行校驗和提取[6],若校驗通過則將各項環境數據展示在客戶端界面上并存入數據庫。若檢測到環境數據異常,則會彈出如圖6所示的報警提示框并驅動USB轉接板上的蜂鳴器來提醒宿管。

圖6 客戶端報警界面
MySQL數據庫技術的引用方便了對環境數據的存儲和讀取。上位機VB客戶端通過引用Microsoft Activex Data Objects 2.0 Library具備連接到MySQL數據庫并對數據庫內存儲的環境數據進行讀取和寫入的能力。數據庫共有6個字段,分別是時間(TIME)、寢室號(DORM)、溫度(TEMPERATURE)、濕度(HUMID)、是否有人狀態(PEOPLE)以及異常標志位(STATUS)。當每次上位機客戶端獲取到環境數據并解碼完成后,無論數據是否在安全閾值內,都會在第一時間將當前的環境數據以ADODB.Recordset.AddNew語句存入MySQL數據庫[7]。具體數據儲存如圖7所示。

圖7 環境歷史數據
上述環境安全監測系統在上海松江大學城某宿舍區以及上海松江大學城某校實訓樓兩個地點分別進行了實驗,分別于2017年9月23日和2017年9月29日對上述兩個區域做了環境監測的測試工作。
在測試中,系統能夠準確地對環境參數進行采集,并無誤地將收集到的數據存入數據庫。在宿舍樓區,下位機硬件系統安裝在一樓和二樓各宿舍的天花板上,各樓層的ZigBee終端信號能夠順利穿過水泥墻和門板傳輸到各樓層的ZigBee管理器,宿管處的上位機ZigBee能順利地接收到各個寢室的環境數據,宿管能夠非常及時地通過電腦上的“智能監控”客戶端了解當前寢室的有/無人狀態和溫濕度等情況,使得管理效率提高;在實訓樓的測試中,將下位機硬件平臺安置在一實驗室中,采用了瓦斯模擬了可燃性氣體,該系統能夠在瓦斯濃度較低的情況下及時報警并主動切斷電源回路,以防用電器電火花引爆可燃性氣體,同時無延時地通知了位于辦公室的實驗室管理員前來處理,防止危害繼續擴大。
通過上述測試,該監控系統能夠有效地檢測到環境異常并通過報警功能及時通知相關人員進行處理,相關電路設計和傳感器選型能夠勝任環境安全監測的需求。
基于ZigBee的校園宿舍環境安全監測系統是一種先進的環境監測系統,在同類產品中具有高智能性、成本低、低功耗、低誤報警率、報警及時、數據準確等特點,其監測地點不僅限于宿舍,可以運用在任何對環境監測具有高安全要求的地方,如倉庫等。本監控系統操作簡單,用戶幾乎不需要專業知識即可使用。
環境監測是一項長期工程,該系統只考慮了部分的指標,在后期的改造和再設計過程中,可考慮加入更多因素,比如大氣壓強、PM2.5監測等,為用戶帶來更加全面的環境監測。