楊建衛, 任曉莉
(寶雞文理學院 計算機學院,寶雞 721016)
隨著人們物質需求的不斷增長和電子商務的廣泛推廣及應用,物品的流動量越來越大,帶動了物流行業的蓬勃發展,然而大物流量使倉庫存儲數量和種類也隨之增多,倉庫普遍存在集中存儲的現象,不能滿足各類物品倉儲的環境要求,也存在嚴重的安全隱患[1]。現有的倉庫環境檢測方法比較低效,主要靠人力去現場巡查或監測一些簡易檢測裝置,不能實現全方位環境數據實時采集,缺少全局性和實時性。高效的倉庫環境檢測系統對保障倉庫環境安全至為重要,因此開發了基于Zigbee倉庫環境檢測系統。
在倉庫環境檢測系統中,倉庫子網構建是系統數據傳輸的可靠保障,所以,組網是非常重要的。倉庫組網一般遵循以下原則:首先,必須要能夠滿足系統設計功能的基本需求;其次,對性能的要求很高,比如要對采集到的數據可靠傳輸、網絡的穩定性也必須良好、網絡組建成本必須要相對較低、連接網絡的速度也要很快等。
ZigBee無線數據傳輸技術,相較于其它無線網絡技術,最突出的特點有:低速率,高容量,低功耗和價格低,很適合無線遠程檢測和自動化控制領域[2]。ZigBee無線數據傳輸技術中,協調器(Coordinator)主要負責網絡的建立和相關參數配置,如果這些任務完成,協調器就退化成一個路由器甚至消失。由于Zigbee網絡本身的特性,所以接下來不再依賴協調器。ZigBee 路由器(Router)允許其他設備加入網絡,操作網絡報文的路由信息并負責轉發報文。ZigBee 終端設備(End-Device)可以加入、退出網絡,只是用來接收和發送網絡報文,沒有維持網絡的責任,所以耗能特別少,通常只要接入一節干電池便可[3]。
本倉庫環境檢測系統是以Zigbee無線通訊技術為基礎,結合Internet網絡通信技術建立。為了實時對倉儲的環境信息進行檢測,需要在倉庫中安裝不同功能的節點模塊,這些模塊包括傳感器模塊、通信模塊和執行器模塊[4]。通過檢測中心匯聚后對各種信號進行協調處理,實現傳統倉庫管理的網絡化、自動化和智能化,以達到全方位自動化的檢測控制,保證倉庫環境的安全,爭取利益最大化。
倉庫環境檢測系統從層次來分,一般由設備節點模塊、電器主節點、網關等組成。本系統的總體框架,如圖1所示。

圖1 系統總體結構設計圖
設備節點模塊主要包括3部分:射頻收發模塊、運算和控制單元模塊、傳感和執行模塊。本系統中設備節點是基于CC2530的ZigBee無線收發模塊[5],節點終端的傳感和執行模塊,負責對可燃性氣體、溫濕度情況的探測、數據的采集,通過運算控制單元操作完成各種控制。
系統子網絡中全功能設備(FFD)作為網絡協調器,主要負責網絡的建立與正常運行,完成網絡的初始化、數據采集和設備控制等功能。而精簡功能設備(RFD)在子網中扮演倉庫設備節點,主要負責完成信息采集和命令響應等功能,倉庫設備節點只能與FFD主節點進行通信。FFD主節點通過串口通訊,將采集的數據傳輸到網關中,以實現信息的交換和共享,并且完成和外部網絡之間的數據交換,網關一般還負責倉庫設備的控制管理。
2.2.1 協議棧運行基本流程
程序在啟動后從main函數開始執行,本協議棧中的main函數主要流程包括如下部分,如圖2所示。
系統硬件初始化完成之后,就開始進入操作系統的入口程序,此后的操作權都將由操作系統所有。
OSAL初始化工作主要包括對內存管理的初始化、消息隊列的初始化、電源初始化、時鐘初始化和任務系統初始化。任務系統初始化主要進行任務列表和各項任務添加的初始化工作。任務系統也是整個協議棧的核心部分,主要負責各個任務模塊之間和用戶應用的協調運行,是整個系統最重要的部分。

圖2 main函數處理流程圖
最后啟動操作系統函數,此函數有一個循環體,進行循環HAL查詢操作來檢測串口數據和定時器等任務,并按照任務的優先級進行檢查是否有事件發生,進而調去相應的應用程序函數進行響應處理。任務系統初始化時將HAL、MT、MAC、NWK、APS、ZDO模塊,添加到操作系統中完成初始化工作,并且在操作系統中都是以一個獨立的任務來運行的,操作系統進行相應的任務調度。操作系統會專門為任務事件分配任務數組,一個任務的所有事件存放在一個任務單元,操作系統輪詢查看每個任務單元中是否有事件發生,若有則調度相應的事件函數,若是沒有繼續輪詢查看下一個任務單元。
2.2.2 系統的工作流程
本系統主要是通過不同種類的多個感知節點的配合,實現全方位不同方面的數據信息采集,以Zigbee無線網絡技術支持,采用網絡拓撲結構,將采集到的信息實現可靠的傳遞,再由主控界面根據采集信息發出指令,實現倉庫環境的監控和危險情況的應對。具體過程為:在易燃物品附近安裝MQ-2煙霧傳感器,如果檢測到可燃性氣體超過一定的濃度,煙霧傳感器會將火情信息通過Zigbee協調器節點發送給報警器,觸發報警器報警,使安全員可以第一時間到達現場,進行易燃氣體的疏散或者對火情加以控制,實現火災的預防和第一時間的控制。在遠離通風口的地方安裝DHT11溫濕度傳感器,對倉庫的空氣溫度和濕度進行實時的數據采集,并且實時地顯示在上位機窗口,由倉庫管理人員進行判斷,如果溫度過高或濕度過高,點擊換氣按鈕,就可以遠程打開換氣扇。在倉庫的一些敏感和危險區域安裝一些HC-SR501人體紅外傳感器,當有人靠近時,警示燈會閃爍,警告不能靠近并且觸發報警器報警。
本設計有效地降低了倉庫安全方面的損失,同時也一定程度上節約了人力成本,主體工作流程,如圖3所示。

圖3 系統的工作流程圖
倉庫環境檢測系統的硬件設計包括以下部分:
(1)倉庫檢測節點
在倉庫中布置Zigbee無線模塊作為通信設備節點組成無線通信網絡,設備節點負責監測倉庫環境變化、收發信號和數據處理。系統終端模塊單元主要包括射頻模塊、傳感器模塊和受控終端模塊,負責采集環境中的各類參數信息,并且對相應模塊進行控制。
系統節點至少包括一個Zigbee網絡和FFD設備,負責整個網絡建立的全部過程,從系統初始化到整個網絡的建立、再到地址分配、成員加入、節點數據更新、數據轉發表和設備關聯表等。系統節點也保證網關和設備節點之間的數據正常流轉。系統主節點的具體的工作過程是:初始化系統、更新網絡拓撲結構、進行節點通訊。
(2)人體紅外感應傳感器設計
對于人體紅外感應模塊,本設計選用了HC-SR501紅外傳感器,D-SUN PIR人體紅外感應模塊是基于紅外線技術的自動控制產品。這種傳感器的靈敏度高、可靠性也很強、功耗特別小,超低電壓也能正常工作[6]。
(3)溫濕度傳感傳感器設計
溫濕度傳感器使用的是DHT11,DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性和卓越的長期穩定性。傳感器包括一個電阻式的感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比高等優點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式存在OTP內存中,傳感器內部在檢測型號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,使其成為日常應用甚至最為苛刻的應用場合的最佳選擇。
(4)氣體傳感器設計
氣體傳感器使用的MQ-2[7],MQ- 2 氣體傳感器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫(SnO2)。當傳感器所處環境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導率的變化轉換為與該氣體濃度相對應的輸出信號。 MQ-2氣體傳感器對液化氣、丙烷、氫氣的靈敏度高,對天然氣和其它可燃蒸汽的檢測也很理想。這種傳感器可檢測多種可燃性氣體,是一款適合多種應用的低成本傳感器。
(5)繼電器設計
使用SRC-05VDC-SL-C繼電器,此繼電器的工作正常電壓是5 V,常閉直流電流最大10 A,最大電壓是28 V,常開直流最大電壓和電流分別是10 A和30 V,常閉交流最大電壓和電流分別是125 V和10 A,常開交流最大電壓和電流分別是250 V和10 A。
(6)蜂鳴器設計
蜂鳴器模塊采用S8550三極管驅動,工作電壓3.3 V到5 V,沒有固定的螺栓孔,方便安裝,采用小板PCB尺寸:3.2 cm*1.3 cm,當I/O口輸入為低電平時,蜂鳴器發聲報警。
初始化系統之后,執行操作系統入口程序函數system_start(),檢測任務數組中是否有事件發生,有則執行相應的功能函數。根據Z-Stack[8]協議棧調度流程,設計了兩個Zigbee工程文件,無線管理接口功能實現工程Neek_wap和Zigbee網絡節點功能實現工程Neek_Device。Z-Stack協議棧已經實現了絕大部分代碼共用,用戶只需要編寫自己的任務處理函數,將程序下載到具體的功能模塊,整個系統的網絡就可以正常運行起來了。
(1)Zigbee協調器節點的程序設計流程
當系統上電初始化完成之后,協調器將建立網絡,網絡建立成功之后,它的網址、簇ID、網絡編號都將確定,此刻協調器進入空閑等待其它節點加入。當其他終端節點申請加入成功,將進入自己相應的應用層處理函數。Zigbee協調器節點的程序流轉過程,如圖4所示。
(2)Zigbee終端節點的程序設計流程
Zigbee終端節點的程序設計是按照各節點的功能需求進行設計,程序流程卻基本都很相似,比如溫濕度感應節點程序流程,如圖5所示。
串行端口將CPU和串行設備有效地連接起來,實現它們之間的串行通信。應用程序要使用串口進行通信,必須申請操作系統打開串口,通信結束必須申請關閉串口。VC++6.0的MSComm控件提供了串行通信端口,實現程序的串行通信。

圖4 Zigbee協調器節點的程序流轉圖

圖5 Zigbee終端節點的程序流轉圖
由于各個終端節點的傳感器信息采集和數據傳輸基本相同,所以各模塊的程序進行了統一的編寫實現。本設計采用事件關聯的綁定思想,同種設備可以和多個采集終端綁定,從而實現靈活地對設備進行控制,實現設備之間的功能聯調。無線管理接口待相關設備加入網絡之后,負責初始化它們的全局變量。檢測上位機發來的事件,是在工程Neek_WAP中定義實現的,在一個列表中循環接受綁定請求響應。無線管理接口的事件,在工程Neek_Device中定義實現。
經測試,系統實現了各功能模塊。系統運行后,倉庫環境檢測與控制界面,如圖6所示。

圖6 倉庫環境檢測與控制
基于Zigbee的倉庫環境監測系統實現了對倉庫環境的采集與控制,經過深入、全面地測試,可以根據采集數據的變化曲線,預測倉庫環境變化趨勢,對倉庫環境進行實地檢測,實現了防火防盜防范預警功能,有效地降低了倉庫安全方面的隱患,方便了倉庫的管理,保護了商家的利益,也節約了一定的人力成本。