《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于無線傳感器技術(shù)的實驗室監(jiān)控系統(tǒng)設(shè)計
基于無線傳感器技術(shù)的實驗室監(jiān)控系統(tǒng)設(shè)計
2015年微型機(jī)與應(yīng)用第3期
黃小天,吳曉紅,吳小強,卿粼波
(四川大學(xué) 電子信息學(xué)院 圖像信息研究所,四川 成都 610064)
摘要: 設(shè)計了一種基于ZigBee無線傳感器技術(shù)與嵌入式Linux平臺的實驗室監(jiān)控系統(tǒng)。系統(tǒng)通過多種傳感器獲取實驗室的環(huán)境信息,并將信息通過ZigBee構(gòu)建的無線網(wǎng)絡(luò)發(fā)送到嵌入式Linux平臺。嵌入式Linux平臺作為Web服務(wù)器將數(shù)據(jù)共享給局域網(wǎng)中的用戶計算機(jī),達(dá)到監(jiān)控的目的。該系統(tǒng)具有結(jié)構(gòu)靈活、運行穩(wěn)定、易于擴(kuò)展等優(yōu)點。
Abstract:
Key words :

  摘  要: 設(shè)計了一種基于ZigBee無線傳感器技術(shù)與嵌入式Linux平臺的實驗室監(jiān)控系統(tǒng)。系統(tǒng)通過多種傳感器獲取實驗室的環(huán)境信息,并將信息通過ZigBee構(gòu)建的無線網(wǎng)絡(luò)發(fā)送到嵌入式Linux平臺。嵌入式Linux平臺作為Web服務(wù)器將數(shù)據(jù)共享給局域網(wǎng)中的用戶計算機(jī),達(dá)到監(jiān)控的目的。該系統(tǒng)具有結(jié)構(gòu)靈活、運行穩(wěn)定、易于擴(kuò)展等優(yōu)點。

  關(guān)鍵詞: 無線傳感器技術(shù);嵌入式平臺;Linux;安全監(jiān)控

0 引言

  傳統(tǒng)的實驗室安全監(jiān)控系統(tǒng)一般是基于有線專用網(wǎng)絡(luò)來設(shè)計的,需要安裝專用的固定線路,這使得系統(tǒng)移動性差,不易擴(kuò)展,同時系統(tǒng)的維護(hù)與更新也很不方便。無線傳感器技術(shù)恰好能夠解決這些問題。無線傳感器技術(shù)具有較低的系統(tǒng)成本、可靠的數(shù)據(jù)傳輸、極強的可擴(kuò)展性等特點,這些特點均符合實驗室安全監(jiān)控網(wǎng)絡(luò)的設(shè)計要求,而且無線傳感器技術(shù)具備靈活的網(wǎng)絡(luò)結(jié)構(gòu),可以根據(jù)不同的應(yīng)用場合調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)。ZigBee是一種新興的基于IEEE 802.15.4的無線網(wǎng)絡(luò)技術(shù),具備網(wǎng)絡(luò)容量大、功耗低等優(yōu)點[1]。本文設(shè)計的實驗室監(jiān)控系統(tǒng)是以ZigBee技術(shù)和嵌入式Linux技術(shù)為基礎(chǔ),實現(xiàn)對實驗室的安全監(jiān)控。該系統(tǒng)首先通過傳感器實時獲取實驗室的溫度、煙霧等環(huán)境數(shù)據(jù),然后將這些信息經(jīng)由ZigBee構(gòu)建的無線網(wǎng)絡(luò)發(fā)送到嵌入式Linux平臺,用戶計算機(jī)可以通過B/S模式對嵌入式Linux平臺進(jìn)行訪問,從而獲取監(jiān)控信息。系統(tǒng)結(jié)構(gòu)如圖1所示。

001.jpg

1 ZigBee無線傳感器網(wǎng)絡(luò)

  1.1 ZigBee網(wǎng)絡(luò)結(jié)構(gòu)

  ZigBee網(wǎng)絡(luò)是以單獨的節(jié)點為基礎(chǔ),通過無線通信構(gòu)成一個協(xié)同工作的網(wǎng)絡(luò)。ZigBee網(wǎng)絡(luò)中定義了三種功能不同的節(jié)點設(shè)備類型:協(xié)調(diào)器(Coordinator)、路由器(Router)和終端設(shè)備(End Device)[2]。一個ZigBee網(wǎng)絡(luò)中必須有一個協(xié)調(diào)器,它的功能是建立和管理整個網(wǎng)絡(luò);路由器的主要功能是在其通信范圍內(nèi)允許其他終端設(shè)備或者其他路由器加入網(wǎng)絡(luò)并轉(zhuǎn)發(fā)數(shù)據(jù);終端設(shè)備與監(jiān)控傳感器連接,實現(xiàn)數(shù)據(jù)的采集和傳送。ZigBee網(wǎng)絡(luò)可以根據(jù)不同的情況構(gòu)成三種不同的拓?fù)浣Y(jié)構(gòu):星型、簇狀、網(wǎng)狀,如圖2所示。根據(jù)本系統(tǒng)具體的應(yīng)用環(huán)境,簇狀網(wǎng)絡(luò)是最合適的選擇。

002.jpg

  1.2 傳感器

  傳感器位于整個系統(tǒng)的最末端,用于獲取實驗室的環(huán)境信息。系統(tǒng)選用溫度、紅外和煙霧三種傳感器。

  溫度傳感器用于獲取實驗室的溫度信息,選用DS18B20[3],其內(nèi)部已經(jīng)集成了傳感器元件及轉(zhuǎn)換電路,其溫度測量范圍是-55℃~+125℃,滿足實驗室溫度監(jiān)控的要求。

  紅外傳感器用于實驗室空閑無人的情況下監(jiān)測是否有人員非法闖入。當(dāng)檢測到有人員位置移動時,紅外傳感器節(jié)點將向協(xié)調(diào)器發(fā)送觸發(fā)信號并由監(jiān)控終端發(fā)出報警信息。紅外傳感器由BISS0001[4]熱釋電紅外開關(guān)和LHI-778熱釋電紅外傳感器組合構(gòu)成。LHI-778檢測到紅外輻射時會將其轉(zhuǎn)換為電信號送入BISS0001,BISS0001對輸入信號進(jìn)行處理后會向終端節(jié)點輸出一個數(shù)字信號。

  采用MQ-7氣敏傳感器作為本系統(tǒng)的煙霧傳感器,該傳感器對一氧化碳的檢測靈敏度較高。一氧化碳的濃度在一般情況下很低,但在火災(zāi)發(fā)生時其濃度會迅速上升,因此煙霧傳感器可以作為檢測火災(zāi)的傳感器。

  1.3 節(jié)點硬件設(shè)計

  ZigBee網(wǎng)絡(luò)中的協(xié)調(diào)器、路由器、終端三種設(shè)備的核心電路相同,均由MCU模塊、無線通信模塊和電源模塊構(gòu)成其最小系統(tǒng)。本文采用TI公司開發(fā)的滿足一體化ZigBee解決方案的CC2430芯片,它結(jié)合了一個高性能的射頻收發(fā)核心和一顆工業(yè)級的8051內(nèi)核。CC2430功耗低,工作時電流損耗為27 mA,電壓范圍較寬(2.0~3.6 V),工作頻帶范圍為2.400~2.483 5 GHz,具有較高的靈敏度和較強的抗干擾性能[5]。

  CC2430是無線SoC設(shè)計,內(nèi)部已經(jīng)集成了大量電路,添加較少的外圍電路便可以實現(xiàn)無線收發(fā)功能[5]。根據(jù)功能的不同,協(xié)調(diào)器需增加與嵌入式平臺通信的串行通信電路,終端傳感器節(jié)點需增加傳感器模塊。節(jié)點硬件結(jié)構(gòu)如圖3所示。

003.jpg

  1.4 節(jié)點軟件設(shè)計

  ZigBee網(wǎng)絡(luò)中節(jié)點之間通信遵循ZigBee協(xié)議棧。ZigBee協(xié)議棧的基礎(chǔ)是IEEE802.15.4,具體由物理層(PHY)、媒體接入控制層(MAC)、網(wǎng)絡(luò)層(NWK)和應(yīng)用層(APL)4個子層構(gòu)成。本系統(tǒng)中網(wǎng)絡(luò)節(jié)點的程序均是基于TI公司的Z-Stack協(xié)議棧開發(fā)的,為了實現(xiàn)各節(jié)點的功能,需要在ZigBee協(xié)議棧中添加特定的任務(wù)事件處理函數(shù)。

  協(xié)調(diào)器一方面組建和管理ZigBee網(wǎng)絡(luò),并與ZigBee網(wǎng)絡(luò)中其他路由器和終端節(jié)點通信,接收其發(fā)來的數(shù)據(jù);另一方面通過串行通信接口與嵌入式Linux平臺通信。

004.jpg

Coordinator_ProcessEvent()是協(xié)調(diào)器的任務(wù)事件處理函數(shù),程序流程如圖4所示。協(xié)調(diào)器開始運行后,首先初始化硬件和ZigBee協(xié)議棧并建立網(wǎng)絡(luò),然后運行Coordinator_ProcessEvent()函數(shù)。本系統(tǒng)中協(xié)調(diào)器的任務(wù)事件函數(shù)只需處理網(wǎng)絡(luò)狀態(tài)事件和數(shù)據(jù)接收事件。網(wǎng)絡(luò)構(gòu)建成功后便會觸發(fā)網(wǎng)絡(luò)狀態(tài)事件,指示燈閃爍用以示意網(wǎng)絡(luò)建立成功;如果待處理事件是接收到的數(shù)據(jù),則從數(shù)據(jù)中提取出傳感器的類型、數(shù)值等信息并將這些數(shù)據(jù)打包,然后通過串口將數(shù)據(jù)發(fā)送給嵌入式平臺。

005.jpg

  終端設(shè)備將采集到的傳感器數(shù)據(jù)發(fā)送給路由器,其任務(wù)事件處理函數(shù)為End_ProcessEvent(),程序流程如圖5所示。終端設(shè)備開始運行后,首先初始化硬件和ZigBee協(xié)議棧,然后尋找并加入已經(jīng)建立的網(wǎng)絡(luò),成功加入網(wǎng)絡(luò)后觸發(fā)網(wǎng)絡(luò)狀態(tài)事件,在End_ProcessEvent()中設(shè)置定時器從而周期性地觸發(fā)傳感器采集事件,定時器設(shè)定為1 s。

  Coordinator_ProcessEvent()是路由器的任務(wù)事件處理函數(shù),負(fù)責(zé)將終端設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)給協(xié)調(diào)器,其流程圖與終端設(shè)備相似。

2 嵌入式Linux平臺

  嵌入式Linux平臺在本系統(tǒng)起到信息樞紐的作用,一方面通過串口接收協(xié)調(diào)器設(shè)備發(fā)來的數(shù)據(jù),另一方面通過局域網(wǎng)將數(shù)據(jù)共享給用戶計算機(jī)。

  2.1 嵌入式平臺硬件設(shè)計

  嵌入式平臺主控芯片選用Samsung公司的S3C2440A微處理器,該處理器具有功耗低、性能高等特點。S3C2440A是以ARM920T為核心,具備16 KB的數(shù)據(jù)緩存和16 KB的指令緩存以及MMU[6]。該芯片集成了外部存儲控制器、LCD控制器、4通道DMA、3通道UART等片上資源。本系統(tǒng)構(gòu)建的嵌入式平臺硬件結(jié)構(gòu)如圖6所示。系統(tǒng)主要由處理器、32 MB SDRAM、32 MB Nand Flash、串口、網(wǎng)絡(luò)接口等模塊組成。

006.jpg

  硬件系統(tǒng)搭建完成后,將Bootloader和Linux內(nèi)核燒寫到Flash中,上電后Bootloader完成系統(tǒng)初始化,將Linux拷貝并解壓到SDRAMD中適當(dāng)?shù)奈恢?,然后直接跳到Linux的入口點即可使系統(tǒng)運行起來[7]。

  2.2 Linux應(yīng)用程序設(shè)計

  為了通過B/S模式實現(xiàn)數(shù)據(jù)在局域網(wǎng)中的共享,需要在嵌入式平臺上搭建Web服務(wù)器。Boa是一種小型的Web服務(wù)器,源代碼開放,所需運行空間小,在嵌入式開發(fā)中很常見。Boa是單任務(wù)的Web服務(wù)器,工作時依次完成用戶的請求,但Boa能夠為CGI程序創(chuàng)建新進(jìn)程。Boa處理速度快,占用資源少,符合本系統(tǒng)的需求??梢詮木W(wǎng)站www.boa.org獲取Boa的源碼,然后將其解壓并移植[8]到嵌入式平臺,完成Web服務(wù)器的搭建。

  嵌入式Linux平臺上還需要運行兩個進(jìn)程:串口數(shù)據(jù)接收進(jìn)程和CGI進(jìn)程。這兩個進(jìn)程通過共享內(nèi)存的方式實現(xiàn)通信,使用信號量實現(xiàn)各個進(jìn)程對共享內(nèi)存的互斥訪問。

  串口接收進(jìn)程的程序流程如圖7所示。首先創(chuàng)建鍵值為sem_key的共享內(nèi)存和鍵值為shm_key的信號量,然后進(jìn)程開始監(jiān)聽串口數(shù)據(jù);接收到數(shù)據(jù)后,獲取shm_key信號量,保證進(jìn)程對共享內(nèi)存的互斥訪問,然后將數(shù)據(jù)寫入到共享內(nèi)存中,釋放shm_key信號量,之后繼續(xù)監(jiān)聽串口。

  嵌入式平臺的Web服務(wù)器運行起來后,便開始等待客戶端的請求。服務(wù)器收到請求后,調(diào)用fork()創(chuàng)建一個子進(jìn)程,在子進(jìn)程上下文中調(diào)用execve()運行CGI進(jìn)程。CGI流程如圖8所示,首先將串口接收進(jìn)程創(chuàng)建的共享內(nèi)存映射到自己的地址空間,獲取串口接收進(jìn)程創(chuàng)建的信號量,然后讀取環(huán)境變量QUERY_STRING中的參數(shù),對參數(shù)據(jù)進(jìn)行判斷,若參數(shù)為“Start_Monitoring”,則在獲取到共享內(nèi)存資源后讀出所需信息。如果發(fā)現(xiàn)有任何數(shù)據(jù)超過閾值,則設(shè)置報警信息,接著更新瀏覽器頁面,顯示監(jiān)控數(shù)據(jù)和報警信息。顯示完成之后調(diào)用sleep()函數(shù),將進(jìn)程掛起1 s,然后重復(fù)上述過程。

3 系統(tǒng)測試

  系統(tǒng)測試以三個實驗室為例進(jìn)行,每個實驗室配備溫度、紅外、煙霧三種傳感器終端節(jié)點。系統(tǒng)搭建完成并運行起來后,打開用戶計算機(jī)上的瀏覽器,在URL中輸入嵌入式Linux平臺的IP地址,即可訪問本系統(tǒng)的Web監(jiān)控頁面,如圖9所示。

009.jpg

  瀏覽器頁面中顯示實驗室的狀態(tài)信息,每隔1 s刷新一次數(shù)據(jù)。在各個實驗室中,采用人工干預(yù)的方式依次觸發(fā)溫度、紅外、煙霧傳感器后,監(jiān)控頁面刷新之后便會用紅色字體顯示出異常信息。經(jīng)過大量測試,系統(tǒng)工作正常,滿足設(shè)計需求。

4 結(jié)論

  本文以ZigBee無線傳感器技術(shù)為基礎(chǔ),并結(jié)合嵌入式Linux平臺,設(shè)計了實驗室監(jiān)控系統(tǒng),克服了傳統(tǒng)安全監(jiān)控系統(tǒng)自由度低,不易擴(kuò)展、維護(hù)與更新等缺點。同時,系統(tǒng)還具有網(wǎng)絡(luò)結(jié)構(gòu)靈活、低功耗、易于擴(kuò)展等特點,采用B/S模式使得局域網(wǎng)中的計算機(jī)用戶都能實時掌握傳感器網(wǎng)絡(luò)采集的數(shù)據(jù),從而大大提高了系統(tǒng)的監(jiān)控性能。本系統(tǒng)雖然是以實驗室為背景設(shè)計的,但是同樣適用于其他需要安全監(jiān)控的場合。

參考文獻(xiàn)

  [1] 鐘勇鋒,劉永俊.ZigBee無線傳感器網(wǎng)絡(luò)[M].北京:北京郵電大學(xué)出版社,2011.

  [2] 賀志楠,宋旭文,沈冬冬,等.ZigBee家庭組網(wǎng)技術(shù)研究與實現(xiàn)[J].電子科技,2014,27(8):36-39.

  [3] 湯鍇杰,栗燦,王迪,等.基于DS18B20的數(shù)字式溫度采集報警系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2014,33(3):99-102.

  [4] 陳文星,付繼宗,魏建英.基于BISS0001信號放大電路的人體紅外感應(yīng)開關(guān)設(shè)計[J].電腦開發(fā)與應(yīng)用,2013,26(2):66-68.

  [5] 李文仲,段朝玉.ZigBee2006無線網(wǎng)絡(luò)與無線定位實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2008.

  [6] Samsung Electronics Co., Ltd. S3C2440A 32-bit RISC Microprocessor User′s Manual(Preliminary) Revison 0.12[S]. 2004.

  [7] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.

  [8] 王建敏,魏海波.基于Linux3.0.1和S3C6410的智能家居控制系統(tǒng)的嵌入式Web服務(wù)器的移植和應(yīng)用[J].江西科技師范大學(xué)學(xué)報,2013(6):95-99.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。