引言
傳統汽車安防系統以在汽車上安裝嗚叫報警器為主,但由于外界因素的干攏,報警器往往會產生誤報而發出巨大噪聲,給小區居民生活帶來負面影響,并且報警距離有限,當車主不在小區內時,該報警方式就達不到預期的效果。近年來,隨著通信技術的發展,GSM/GPRS等技術已經逐漸運用到汽車防盜系統中,通過發送短信的方式來達到報警的目的。但這種方式通常只是實現了汽車與車主之間的信息交互,并沒有將報警信息傳遞給小區物業,因此在車主收到報警信息趕往停車現場的途中,很可能汽車已經失竊。為了更好地保護小區居民的財產安全,通過物業對小區汽車進行綜合管理顯得尤為重要。基于上述原因,設計實現了基于ZigBee的小區汽車安防系統。
1 系統組成及工作流程
1.1 系統各部分組成
本系統可分為ZigBee網絡、網關及上位機三部分。系統結構如圖1所示。
ZigBee網絡由終端、路由器和協調器三部分組成,為了滿足系統功能需求,分別定制了兩種類型的終端和路由器。終端包括傳感器節點(安裝在汽車車門上,用來監控車門)和遙控節點(車主用于開啟/關閉安防系統)。路由器包括路由節點(安裝在小區內,用來路由信息)和錨節點(安裝在停車場上方,用來路由信息和區域定位)。網關由協調器和串口通信軟件組成。上位機包括Web服務和數據庫服務。
1.2 系統工作流程
在該系統中,停車場管理員可以通過上位機實時監控小區內汽車的安防狀態(在庫、異常及離庫),并且可以查看汽車的區域定位信息(汽車所在車庫及當前狀態)和車主的個人信息(車主通過互聯網錄入)。車主則可以隨時登錄系統上位機,查看自己汽車的安防狀態以及更改個人信息。下面分別就汽車入庫、異常、離庫三個過程作詳細說明。
當ZigBee網絡組建成功,車主在小區內停好車后,車主可以通過手中的遙控節點發送“開啟命令”至汽車車門上的傳感器節點。傳感器節點收到“開啟命令”后,會向父節點(錨節點)請求ParentID(用于區域定位,詳見第4小節),請求到ParentID后,傳感器節點會打開其上的紅外對射傳感器,并分別向服務器和車主手中的遙控節點發送帶有ParentID的“開啟成功”信息。服務器收到信息后會將該汽車的狀態改為“在庫”,停車場管理員就可以通過上位機得知該汽車已經入庫,車主收到成功信息后便知道汽車已經處于安防狀態。
在安防狀態下,若車門被異常打開,紅外接收端將不能收到由紅外發送端發送的38 kHz紅外信號,此時傳感器節點會自動向遙控節點和服務器發送報警信號。服務器收到報警信號后會將該汽車的狀態改為“異常”,管理員通過上位機的監控界面查看到異常汽車信息(如車牌號等)和區域定位信息(如汽車所在車庫的編號等)后會迅速通知小區保安趕往異常汽車現場,并嚴禁異常汽車出入小區。同時傳感器節點收到報警信號后會驅動聲光報警來提醒車主,車主知道自己的汽車存在異常后,便會及時查看自己的汽車狀況。若異常汽車的車主不在小區內,管理員可以通過上位機中的車主信息通知車主或其家人,以便快速作出相應的處理。
若車主自己要開車,則可以通過遙控節點向車門上的傳感器節點發送“關閉命令”,傳感器節點收到命令后會關閉紅外對射傳感器,并向服務器和車主發送“關閉成功”信息,服務器收到信息后會將汽車的狀態改為“離庫”,車主收到信息后就可以打開車門將車開走。
2 系統硬件設計及功能
本系統的硬件設計主要包括遙控節點、傳感器節點、錨節點、路由節點和協調器5部分。
遙控節點負責開啟、關閉對應汽車上的安防系統,并接收、顯示安防信息。硬件部分主要包括CC2530芯片、電源管理單元、天線、晶振、蜂鳴器、開關按鍵以及液晶等外圍電路。其中,蜂鳴器用來報警,開關按鍵用來控制紅外模塊的開啟和關閉,液晶用來顯示安防信息。
傳感器節點負責紅外模塊的開啟、關閉以及對車門的監控。傳感器節點硬件部分主要包括CC2530芯片、電源管理單元、天線、晶振、蜂鳴器以及紅外對射模塊等外圍電路。其中,紅外模塊用來監控汽車車門,包括發送和接收兩部分,分別安裝在車門和門框上。發送端利用HEF 40106BT芯片組成的諧振電路在紅外信號上加載了38 kHz的載波,如圖2(a)所示;接收端與CC2530的P05口相連,如圖2(b)所示,采用HS0038接收器接收紅外調制信號,不但增強了模塊的抗干擾能力,而且可以及時檢測車門任何形式的異常開啟情況。
路由節點和錨節點主要負責信息的路由,錨節點是經過改進的路由節點,但路由節點和錨節點的硬件部分完全相同,都是由CC2530芯片、電源管理單元以及天線、晶振等電路組成。
協調器是ZigBee網絡的匯聚節點,負責開啟ZigBee網絡,給新入網節點分配網絡地址,匯聚和處理網絡數據,與PC機進行串口通信等。硬件部分由CC2530芯片、電源管理單元、串口模塊以及天線、晶振等電路組成,串口模塊用來與PC機上的串口通信軟件進行通信。
3 系統軟件設計
本系統的軟件設計主要包括遙控節點、傳感器節點、網關、WEB服務器和數據庫服務器等部分。
3.1 遙控節點
遙控節點的軟件部分主要實現液晶的驅動和顯示、按鍵的處理、LED的控制以及與傳感器節點的通信。
3.2 傳感器節點程序設計
傳感器節點的軟件部分主要實現紅外模塊的驅動和控制、報警電路的控制以及與遙控節點、父節點、協調器之間的通信。
3.3 網關程序設計
網關是連接ZigBee網絡和Internet的橋梁,其軟件部分包含協調器軟件和串口通信軟件兩部分。
當協調器收到傳感器節點傳來的“開啟/關閉成功”、“報警”等信息時,協調器會解析信息并以相應的格式通過串口傳給串口通信軟件。串口通信軟件會根據串口數據幀格式解析串口數據,并根據數據內容設置數據庫中對應表格相應元素的值。另外,串口通信軟件能監控串口的狀態,并能實時顯示解析的信息,值得注意的是,在打開串口前必須先設置好串口通信的參數。
3.4 上位機軟件設計
為方便管理,系統使用Java Web等技術開發了基于MVC(ModelViewController)模型的B/S(Browser/Server)架構的上位機管理軟件。
作為B/S架構軟件的支撐,Web服務器和數據庫服務器必不可少。考慮到成本和小區用戶量等因素,Web服務器使用了免費的輕量級應用服務器Tomcat,數據庫服務器則使用了體積小、速度快、成本低的MySQL。另外,為了方便開發,系統使用了Apache Jakarta項目組開發的應用框架Struts2配合Web網頁的開發,并且使用功能強大的對象/關系映射(Object Relational Mapping)框架Hibernate配合數據庫的開發,保證了源碼的簡練和完全面向對象的風格。
上位機管理軟件分停車場管理員和普通用戶兩部分開發。停車場管理員部分主要實現查看所有用戶信息、查看汽車狀態、監控車庫狀態、刪除用戶、添加新用戶、修改密碼等功能,普通用戶部分主要實現查看汽車狀態、查看和修改個人信息等功能。
4 區域定位的實現
ZigBee短距離通信技術標準有一個顯著的特點:每個新加入的節點必須通過一個在其通信范圍內的路由器(系統中為錨節點)才能入網。根據這一特點,系統實現了區域定位的功能。
系統在每個錨節點中設ZigBee網絡唯一的RouterID作為子節點的ParentID,并且錨節點所管轄的范圍(用車庫號表示,即圖1中錨節點定位區域)與RouterID建立一一對應關系存儲,在數據庫中的MatchAddress數據表中。因此,當傳感器節點請求到錨節點的ParentID,并通過ZigBee網絡、網關轉發到服務器時,服務器就能找到對應的車庫號,得知汽車目前所在的位置。
系統提供了以車庫為單位的區域定位監控界面,如圖7所示。車庫為黃色表示該車庫內的汽車一切正常,車庫為紅色則表示該車庫內存在異常汽車,停車場管理員點擊進入紅色車庫就可以看到異常汽車及車主的詳細信息,方便管理員通知小區保安進行查看。
這種定位方法只是一種粗略的定位,會受節點通信距離的影響,目的是方便管理員通知保安人員迅速找到異常汽車。在實際測試中,受到汽車車門等障礙物的干擾,傳感器節點的通信距離大概在10~20 m左右。
結語
系統為實時監控小區內汽車安防狀態而設計,很好地利用了ZigBee網絡和Internet的優良性能,克服了傳統汽車安防系統噪聲擾民、反應慢、監控范圍小等缺點,提高了物業公司保護居民財產安全的能力。并且系統具有很強的擴展能力,在傳感器節點上可以添加其他類型傳感器以實現更多功能,如添加溫度或煙霧傳感器可以及時預警和監測火災等。實際運行測試顯示,系統能夠正常實現上述功能。