任麗棉
(唐山學院 信息工程系,河北 唐山063000)
隨著科技進步和生活水平的提高,人們越來越注意自身和財產安全的防護。火災是危害人類生存的大敵,一直受到人們的重視。現在常使用的火災報警系統,大多數采用的是有線技術形成的火災傳感器網絡,這種基于明線的火災報警系統的設計技術已經趨于成熟,但是此報警系統其通信方式的擴展性能較差,而且布線十分繁瑣,因為明線連接既不美觀,線路又容易老化,易被腐蝕、磨損或者遭到老鼠啃咬等損壞,因此明線報警系統故障發生率和誤報警率很高[1-2]。為了避免類似的問題,可以采用無線傳輸方式構建無線火災報警網絡。本設計將ZigBee技術應用到火災報警系統中,從基于系統的設計要求、工作原理著手[3-4],給出系統的硬件設計和軟件設計。
本次設計主要目的是實現一個基于ZigBee技術的無線火災報警系統,該系統具有如下功能:
(1)傳感器節點的自動組網與信息登記。傳感器所在節點即終端節點在進入到協調器節點的組網范圍內時能夠加入到協調器網絡,在人機友好交互界面上,能夠實時顯示該終端節點所處的位置以及該位置的溫度。
(2)人機友好交互界面。為了能更方便地操控該系統,需設計交互界面。交互界面中包含以下內容:每個節點實時的溫度監控,以方便看到所有節點的實時溫度;每個節點的位置登記,在發生火災時能夠迅速確定火災位置;報警顯示,當溫度大于警戒值時,能夠提醒操控者發生了火災。
(3)火災報警及控制。在無線火災覆蓋網絡中發生災情時,無線火災網絡的傳感器節點能夠迅速地將火災報警信號傳送給協調器節點,而協調器節點將信息傳送到上位機,并在上位機友好界面上實時顯示,提醒操控者進行必要的控制。
要實現以上功能,系統需包含中心協調器、終端傳感器節點,以及上位機控制界面。終端傳感器節點采用火災報警最常用的溫感傳感器,因為溫感傳感器具有性能穩定、采集實時的特點;中心協調器負責整個無線火災報警網絡的控制,即負責與各個終端節點的通信,采集終端節點的信息,并發送給上位機;上位機對接收的信息進行加工處理,從而實現報警功能。系統總體框圖如圖1所示。

圖1 系統總體框圖
各網絡節點包括,無線收發模塊通過無線組網方式實現各傳感器節點的連接,傳感器模塊進行數據采集,以及微處理器模塊進行整個信息的綜合和處理。本設計的微處理器模塊采用CC2430芯片,傳感器模塊則使用溫濕度傳感器SHT10,并使用多功能仿真器進行控制程序的下載,以及使用UART串行接口進行協調器與上位機間的通信。
協調器節點由無線收發模塊、CC2430芯片以及串行接口組成,主要功能是組網,并且能夠接收所有節點的溫度信息,隨后將接收到的溫度值上傳至上位機進行處理。硬件框圖如圖2所示。

圖2 網絡協調器硬件框圖
傳感器終端節點負責采集各個節點的溫度,并將數據實時地傳送給協調器節點。該節點主要由收發模塊、CC2430主控芯片以及SHT10溫濕度傳感器組成,硬件框圖如圖3所示。

圖3 傳感器終端節點硬件框圖
上位機操控界面實現對各個節點所采集溫度的實時監控、發生火災時發出警報以及撲滅火災時能夠解除警報等功能。
控制程序是在IAR Embedded Workbench開發環境中編寫的,使用燒寫軟件Smartrf flash programmer進行仿真和下載,程序分為協調器程序和終端節點程序。
上位機操控界面是基于Lab VIEW 8.6編寫的[5],如圖4所示。在發生火災時,傳感器節點溫度升高,達到警報溫度,報警燈變亮,與此同時“發生火災的地址”欄會顯示出發生火災的位置(本設計以房間號為例),以此提醒人們要采取必要措施去撲滅火災。當火災撲滅時,按下“解除警報”,則警報解除。

圖4 上位機操控界面
終端節點實現的功能是進行節點所在位置的實時溫度采集,并將采集到的溫度通過無線發送模塊實時地發送到協調器節點上,以便傳到上位機進行處理。因此在本系統中,終端節點由CC2430芯片集成塊和SHT10溫濕度傳感器集成塊組成。CC2430通過二排線數字串行接口和SHT10傳感器進行通信。終端節點被打開時,首先進行初始化,然后嘗試加入網絡,當收到外部中斷即接收到采集的溫度時會給SHT10發送查詢指令,等待SHT10數據進行模數轉換,而后進行并行數據發送,當發送完畢后繼續進入休眠狀態,同時等待外部中斷,有請求時會再次被激活。
網絡協調器是整個網絡中的核心,主要功能是控制指令的發送和執行,信息的接收、匯總、處理以及網絡的建立。當協調器完成初始化后,首先掃描選擇一個空閑信道,并設定一個隨機的PAN標識符,然后對外發布廣播幀,同時接收其他子節點的加入,從而建立起一個新網絡。在無線網絡建成后,就可以開始進行各種操作指令的執行和數據的收發工作。
3.3.1 建立網絡
網絡協調器通過aplForm Network()函數建立網絡,在完成組網后進入有限狀態機,同時通過調用apsFSM()函數運行協議棧。當協調器在完成函數apl Form Network()的調用后,可以通過調用aplGetStatus()函數來確認當前的調用能不能完美實現,如果調用成功,則返回顯示字符串LRWPAN_STATUS_SUCCESS;如果操作不當導致調用失敗,就會出現錯誤代碼,所有的錯誤代碼都可以在stack/src/lrwpan_common_types.h文件中找到。主要程序代碼如下:
main(){
halInit(); //初始化 HAL層
evbInit(); //初始化評估板
aplInit(); //初始化協議棧中的其他部分
ENABLE_GLOBAL_INTERRURT(); //開啟所有中斷的使能端
aplForm Network(); //組建網絡
while(apsBusy()){apsFSM();}//等待,網絡建立后apsBusy()返回false
while(1){apsFSM();} //有限狀態機運行堆棧
}
3.3.2 傳送數據
當網絡協調器收到數據包后,首先進行分析處理,然后通過串行接口傳送給上位機。其部分程序代碼如下:
LRWPAN _STATUS_ENUM usrRxPacketCallback(void){
byte*tem;
byte payload_up[25];
byte len,i;
if(aplGetRx DstEp()== 203){//check dst endpoint
tem =aplGetRx MsgData();
len=aplGetRx Msg Len();
if(tem[0]==0xff)
{
conPrintDec(tem[1]);
}
}
return(LRWPAN_STATUS_SUCCESS);
本系統將ZigBee無線傳感網絡和Lab VIEW結合,實現了無線火災報警系統的設計。系統成本低、功耗小,省去了布線的困擾,而且具有很強的可擴展性,適用于如高校宿舍、商場等多種場所的火災防控。火災發生時,由于系統能夠發出警報,提供發生火災的準確地點,因此,有助于及時發現火災,使相關人員及時準確地趕到火災現場進行滅火。
[1] 劉長安.火災報警通信系統設計與實現[D].沈陽:東北大學,2007.
[2] 張翔.基于物聯網技術的火災自動報警系統研究[J].防災科技學院學報,2011,13(1):51-54.
[3] 董朋濤.基于ZigBee的無線網絡組網及可靠性研究[D].武漢:華中師范大學,2013.
[4] 李明亮,蒙洋,康輝英.例說ZigBee[M].北京:北京航空航天大學出版社,2013:15-20.
[5] 章佳榮,王璨,趙國宇.精通Lab VIEW虛擬儀器程序設計與案例實現[M].北京:人民郵電出版社,2013:18-35.