基于ZigBee與ARM的遠程監控系統設計與實現
摘要:針對有線組網方式布線復雜、維護困難的問題,提出了一種基于ZigBee無線組網技術和嵌入式Web服務器,對家庭環境進行遠程監控的實現方法。采用厥度傳感器DHT11實現溫濕度的采集,煙霧傳感器MQ2監測廚房煙霧濃度是否超標,人體紅外感應模塊實現家庭安防。并且通過紅外技術控制空調和加濕器或熱水器的打開或關閉,從而實現對囟群褪度的調節,對熱水器的遠程控制。實驗結果表明,該系統體積小、功耗低、運行穩定,具有一定的實際意義。
本文引用地址:http://www.j9360.com/article/201610/308144.htm在炎熱的夏季,下班回家后才把空調打開,卻還是很熱;想洗熱水澡,發現熱水器還沒有加熱;有急事需要出門,結果忘記關閉空調。為了解決上述問題,急需要一套對家電的遠程控制系統。于是,本文將ZigBee技術結合嵌入式Web服務器,實現了一種對家庭溫濕度等環境因素的遠程監控,讓人們的生活更加方便、舒適。
1 系統概述
本設計需要在家庭內部建立網路,將各種電器、傳感器納入其中,以實現集中管理。家用電器位置容易改變,數量也容易變化,相對距離較短;ZigBee技術是一種符合國際標準的新型短距離無線通信技術,具有低功耗、低成本、容量大、安全性高、抗干擾性強等優點;文中應用ZigBee技術組建家庭無線網絡,接線簡單,性能穩定可靠,功耗低,實時性好。
嵌入式Web服務器實現家庭網絡與外部網絡的連接。由于HTML語言的標準統一性,只要該嵌入式Web服務器接入Internet,就可以使用任意一種接入Internet的Web瀏覽器接收和發送信息,實現對家庭網絡中傳感器數據的顯示,對家用電器的控制。
本設計的總體框架如圖1所示,ZigBee網絡包括網絡協調器和終端節點。協調器和搭建了Web服務器的ARM9芯片通過串口接在一起,而ARM9又通過網口以網線連接路由器,進而接入Internet。遠程客戶端是連網的個人電腦,電腦上安裝有普通瀏覽器程序,通過普通瀏覽器登陸服務器,然后實現對ZigBee終端節點的傳感器數據的顯示和對執行電器的控制。

根據系統功能應用,選用星型網絡拓撲結構。此網絡結構中有唯一的協調器,它是整個網絡的核心,負責網絡的建立和維護。協調器將終端節點上傳的傳感器數據通過串口發送給嵌入式web服務器,將嵌入式web服務器傳過來的指令解析,并將控制命令下發給終端節點。
終端節點定期采集傳感器數據,并上傳給網絡協調器;當協調器下發控制命令時,根據命令激勵紅外二極管發射紅外遙控信號。執行電器的紅外接收端接收到紅外信號后,執行相應的操作。
2 硬件電路
嵌入式Web服務器以ARM9為硬件平臺,采用S3C2440芯片作為主處理器,主頻400 MHz,最高533 MHz,SDRAM作為內存,Flash作為內核和文件系統存儲芯片。
ZigBee模塊主芯片采用CC2430,它是Chipcon公司推出的用來實現嵌入式ZigBee應用的片上系統。它結合一個高性能2.4GHzDSSS射頻收發器核心和一顆工業級小巧高效的8051控制器。該芯片采用0.18μmCMOS工藝,工作電流損耗為27 mA,在接收和發射模式下,電流損耗分別低于27 mA或25mA。
監控系統的主要參數要視具體應用場合而定,此系統的應用針對的是家庭,而人們對家庭環境的要求,最基本的就是溫度、濕度要合適,此外要防火防盜。家庭室內環境溫度的范圍一般為0~35℃之間,相對濕度范圍在20~80%RH之間;當環境溫度在18~25℃,相對濕度在40%~70%,時,人體感覺最舒適。基于此,選用數字溫濕度傳感器DHT11,它是一款含有已校準數字信號輸出的溫濕度復合傳感器。測量范圍是:相對濕度20~90%RH,溫度0~50℃;測量濕度的精度為±5%RH,測量溫度的精度為±2℃,均能滿足要求,并且抗干擾能力強、性價比較高。其它傳感器選擇煙霧傳感器MQ2、HR-SR501人體紅外感應模塊。
傳感器MQ2保證正常工作的電壓為5 ±0.2 V,而CC2430的供電電壓為2~3.6 V,因此采用升壓模塊對其升壓后再給MQ2供電。圖2為Zig Bee終端節點的部分電路連接圖,如圖所示電源VCC經過升壓后再連接到傳感器模塊MQ2的電源端,然后MQ2的數字輸出端連接ZigBee終端節點的通用I/O口P0.1。升壓電路功耗低,提供的電流也能滿足MQ2正常工作的要求。

為了降低成本,結合紅外技術來實現對家用電器的控制。這樣,每個房間只需一個ZigBee終端節點,其I/O端口除了連接傳感器外其余的還作為控制信號輸出端口使用。空調遙控器按鍵是開關量,又多是兩節干電池供電,因此ZigBee終端節點的I/O端口可以和空調遙控器上的幾個按鍵直接相連,這樣既能遠程控制,又可以在本地通過遙控器控制空調的開關、溫度的調節。而電熱水器和加濕器沒有配套的遙控,因此在ZigBee終端節點連接5 mm紅外發射管,采用軟件調制技術,激勵紅外二極管發射紅外遙控信號來實現對電熱水器和加濕器的遠程控制,原理圖如圖3所示。

電熱水器和加濕器的開關處要增加一紅外接收電路。紅外接收電路由低成本低功耗的PIC單片機PIC12F629、紅外一體化接收頭、繼電器組成。
3 軟件設計與實現
3.1 ZigBee網絡協調器節點
采用TI公司半開源的Zstack協議棧-ZigBee2006,具體版本號為ZStack-1.4.3-1.2.1,既縮短了研發周期又能增強系統的穩定性。
協調器節點的程序設計主要包括協議棧的配置和應用層軟件的開發。圖4是協調器的程序流程圖。

本文采用的是雙向綁定的方法,因為綁定表只建立在發起綁定的一方,對于被綁定方是不知道綁定方的綁定地址的。故而采取雙向綁定的方法,來實現協調器和終端節點的雙向通信。
由于終端節點有多個,故而采用順序綁定的方法,即先設置綁定節點1,成功之后設置綁定節點2,依此類推直到綁定所有終端節點。在函數void zb_BindConfirm(uint16 commandId,uint8 status)中,標志位count每完成一次協調器到終端節點的綁定,其值增一,以此記錄該綁定哪個終端節點。再利用if語句實現對終端節點的設置綁定事件,進而完成綁定工作。
在正常工作狀態下的協調器,當有按鍵按下時,會進入應用層進行處理。調用函數zb_SendDataRequest(uint16 destination,uint16 commandId,uint8 len,uint8*pData,uint8 handle,uint8 txOptions,uint8 radius)向終端節點發送數據,由于不同終端節點的comma ndId不同,因此協調器只向commandId相匹配的終端節點發送數據。終端節點根據接收到的數據去做相應處理。
3.2 ZigBee終端節點
終端節點上電后,進行初始化,然后去發現網絡并加入網絡、進行綁定等操作。之后進入正常丁作狀態,終端節點每隔10S采集一次傳感器數據,將數據存儲在數組pData中,然后調用發送函數zb_SendDataRequest(OxFFFE,SENSOR_REPORT_CMD_ID,12,pData,0,AF_ACK_ REQUEST,0),將所有數據一次性發送給協調器節點。圖5是終端節點程序流程圖。

4 嵌入式web服務器
嵌入式Web服務器以linux為操作系統,通過搭建BOA服務器,實現對瀏覽器頁面訪問請求響應以及數據的發送等功能。此外,結合CCI技術編寫HTML靜態網頁和CGI程序,移植了嵌入式數據庫SQlite,用以存儲合法用戶的用戶名和密碼,實現對登錄用戶的客戶驗證功能;并且還能存儲由串口傳送來的傳感器數據,通過CGI程序調用數據庫的最新數據,由BOA服務器返回給瀏覽器實現對家庭傳感器數據的實時顯示。
ARM9除了BOA服務器一直在運行,還有串口應用程序也在不斷監聽是否有數據需要接收或者發送。設計所用ARM9開發板有3個UART,選用串口1,主要寄存器設置如下:
CPHCON=0xa00;
ULCON1=0x03;//數據格式為8位,一停止位,無校驗位
UCON1=0x05;//時鐘源為pclk,查詢方式
UBRDIV1=(PCLK/(115200 x 16)-1);//設置波特率115200
5 系統測試
本設計以一個協調器和5個終端節點為例進行測試,5個終端節點分別放在5個房間-客廳、主臥室、次臥室、衛生間、廚房內,協調器節點和嵌入式Web服務器放在主臥室。在PC機上打開瀏覽器,輸入http://192.168.1.230,即出現登陸頁面,輸入用戶名、密碼認證成功后,即出現主頁面,如圖6,是本系統默認主頁面,顯示內容為房間名稱、電池電量、溫濕度、是否有人活動等情況,默認情況下空調、加濕器都是關閉的。

如圖7所示,通過選擇頁面上空調的開啟選項,瀏覽器將命令傳給CGI程序,CGI程序調用應用程序,使ARM9經由串口發送2個字節控制命令給ZigBee網絡協調器,1個字節裝載的是房間編號信息,即ZigBee終端節點的網絡地址,另一個字節裝載的是控制命令數據。網絡協調器將命令下發給客廳中的ZigBee終端節點,ZigBee終端節點將控制命令數據譯成對P2.1口輸出低電平,相當于空調遙控器開關按鍵按下,空調相應打開。再在頁面上選擇空調調節溫度選項“降溫”,然后點擊“提交”按鈕,經由相似過程,ZigBee終端節點控制P1.2輸出低電平,相當于空調遙控器降溫按鍵按下,客廳溫度降低,在網頁上點擊3次按鈕“提交”,客廳溫度降至25℃。

通過實驗,可以知道本系統能能實現以下功能:對家庭各個房間的溫度和濕度實時顯示,能遠程調節溫度和濕度,遠程打開熱水器開關對其加熱,當房間有人活動時能在監控頁面顯示出來,廚房煙霧濃度是否超標也能在頁面顯示。
6 結束語
文中所述的遠程監控系統應用在家庭環境中,既能實現遠程監測家中各個房間的溫濕度狀況,也能控制家中空調、加濕器的打開或者關閉狀態從而調節溫濕度,營造一個舒適宜人的環境。煙霧傳感器能實現煙霧濃度超標檢測,使用人體紅外模塊可實現家庭安防功能。電池電量檢測能即時提醒更換電池。若對本設計做微小改動,添加房間數量或減少數量,或者改變傳感器類別實現其他功能,可擴展性較強。
評論