一種基于ZigBee技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
由于終端節(jié)點(diǎn)有多個(gè),故而采用順序綁定的方法,即先設(shè)置綁定節(jié)點(diǎn)1,成功之后設(shè)置綁定節(jié)點(diǎn)2,依此類推直到綁定所有終端節(jié)點(diǎn)。在函數(shù)void zb_BindConfirm(uint16 commandId,uint8 status)中,標(biāo)志位count每完成一次協(xié)調(diào)器到終端節(jié)點(diǎn)的綁定,其值增一,以此記錄該綁定哪個(gè)終端節(jié)點(diǎn)。再利用if語句實(shí)現(xiàn)對(duì)終端節(jié)點(diǎn)的設(shè)置綁定事件,進(jìn)而完成綁定工作。
本文引用地址:http://www.ex-cimer.com/article/256594.htm在正常工作狀態(tài)下的協(xié)調(diào)器,當(dāng)有按鍵按下時(shí),會(huì)進(jìn)入應(yīng)用層進(jìn)行處理。調(diào)用函數(shù)zb_SendDataRequest(uint16 destination,uint16 commandId,uint8 len,uint8*pData,uint8 handle,uint8 txOptions,uint8 radius)向終端節(jié)點(diǎn)發(fā)送數(shù)據(jù),由于不同終端節(jié)點(diǎn)的comma ndId不同,因此協(xié)調(diào)器只向commandId相匹配的終端節(jié)點(diǎn)發(fā)送數(shù)據(jù)。終端節(jié)點(diǎn)根據(jù)接收到的數(shù)據(jù)去做相應(yīng)處理。
3.2 ZigBee終端節(jié)點(diǎn)
終端節(jié)點(diǎn)上電后,進(jìn)行初始化,然后去發(fā)現(xiàn)網(wǎng)絡(luò)并加入網(wǎng)絡(luò)、進(jìn)行綁定等操作。之后進(jìn)入正常丁作狀態(tài),終端節(jié)點(diǎn)每隔10S采集一次傳感器數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)在數(shù)組pData中,然后調(diào)用發(fā)送函數(shù)zb_SendDataRequest(OxFFFE,SENSOR_REPORT_CMD_ID,12,pData,0,AF_ACK_ REQUEST,0),將所有數(shù)據(jù)一次性發(fā)送給協(xié)調(diào)器節(jié)點(diǎn)。圖5是終端節(jié)點(diǎn)程序流程圖。
4 嵌入式web服務(wù)器
嵌入式Web服務(wù)器以linux為操作系統(tǒng),通過搭建BOA服務(wù)器,實(shí)現(xiàn)對(duì)瀏覽器頁面訪問請(qǐng)求響應(yīng)以及數(shù)據(jù)的發(fā)送等功能。此外,結(jié)合CCI技術(shù)編寫HTML靜態(tài)網(wǎng)頁和CGI程序,移植了嵌入式數(shù)據(jù)庫SQlite,用以存儲(chǔ)合法用戶的用戶名和密碼,實(shí)現(xiàn)對(duì)登錄用戶的客戶驗(yàn)證功能;并且還能存儲(chǔ)由串口傳送來的傳感器數(shù)據(jù),通過CGI程序調(diào)用數(shù)據(jù)庫的最新數(shù)據(jù),由BOA服務(wù)器返回給瀏覽器實(shí)現(xiàn)對(duì)家庭傳感器數(shù)據(jù)的實(shí)時(shí)顯示。
ARM9除了BOA服務(wù)器一直在運(yùn)行,還有串口應(yīng)用程序也在不斷監(jiān)聽是否有數(shù)據(jù)需要接收或者發(fā)送。設(shè)計(jì)所用ARM9開發(fā)板有3個(gè)UART,選用串口1,主要寄存器設(shè)置如下:
CPHCON=0xa00;
ULCON1=0x03;//數(shù)據(jù)格式為8位,一停止位,無校驗(yàn)位
UCON1=0x05;//時(shí)鐘源為pclk,查詢方式
UBRDIV1=(PCLK/(115200 x 16)-1);//設(shè)置波特率115200
5 系統(tǒng)測(cè)試
本設(shè)計(jì)以一個(gè)協(xié)調(diào)器和5個(gè)終端節(jié)點(diǎn)為例進(jìn)行測(cè)試,5個(gè)終端節(jié)點(diǎn)分別放在5個(gè)房間-客廳、主臥室、次臥室、衛(wèi)生間、廚房?jī)?nèi),協(xié)調(diào)器節(jié)點(diǎn)和嵌入式Web服務(wù)器放在主臥室。在PC機(jī)上打開瀏覽器,輸入http://192.168.1.230,即出現(xiàn)登陸頁面,輸入用戶名、密碼認(rèn)證成功后,即出現(xiàn)主頁面,如圖6,是本系統(tǒng)默認(rèn)主頁面,顯示內(nèi)容為房間名稱、電池電量、溫濕度、是否有人活動(dòng)等情況,默認(rèn)情況下空調(diào)、加濕器都是關(guān)閉的。
如圖7所示,通過選擇頁面上空調(diào)的開啟選項(xiàng),瀏覽器將命令傳給CGI程序,CGI程序調(diào)用應(yīng)用程序,使ARM9經(jīng)由串口發(fā)送2個(gè)字節(jié)控制命令給ZigBee網(wǎng)絡(luò)協(xié)調(diào)器,1個(gè)字節(jié)裝載的是房間編號(hào)信息,即ZigBee終端節(jié)點(diǎn)的網(wǎng)絡(luò)地址,另一個(gè)字節(jié)裝載的是控制命令數(shù)據(jù)。網(wǎng)絡(luò)協(xié)調(diào)器將命令下發(fā)給客廳中的ZigBee終端節(jié)點(diǎn),ZigBee終端節(jié)點(diǎn)將控制命令數(shù)據(jù)譯成對(duì)P2.1口輸出低電平,相當(dāng)于空調(diào)遙控器開關(guān)按鍵按下,空調(diào)相應(yīng)打開。再在頁面上選擇空調(diào)調(diào)節(jié)溫度選項(xiàng)“降溫”,然后點(diǎn)擊“提交”按鈕,經(jīng)由相似過程,ZigBee終端節(jié)點(diǎn)控制P1.2輸出低電平,相當(dāng)于空調(diào)遙控器降溫按鍵按下,客廳溫度降低,在網(wǎng)頁上點(diǎn)擊3次按鈕“提交”,客廳溫度降至25℃。
通過實(shí)驗(yàn),可以知道本系統(tǒng)能能實(shí)現(xiàn)以下功能:對(duì)家庭各個(gè)房間的溫度和濕度實(shí)時(shí)顯示,能遠(yuǎn)程調(diào)節(jié)溫度和濕度,遠(yuǎn)程打開熱水器開關(guān)對(duì)其加熱,當(dāng)房間有人活動(dòng)時(shí)能在監(jiān)控頁面顯示出來,廚房煙霧濃度是否超標(biāo)也能在頁面顯示。
6 結(jié)束語
文中所述的遠(yuǎn)程監(jiān)控系統(tǒng)應(yīng)用在家庭環(huán)境中,既能實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)家中各個(gè)房間的溫濕度狀況,也能控制家中空調(diào)、加濕器的打開或者關(guān)閉狀態(tài)從而調(diào)節(jié)溫濕度,營造一個(gè)舒適宜人的環(huán)境。煙霧傳感器能實(shí)現(xiàn)煙霧濃度超標(biāo)檢測(cè),使用人體紅外模塊可實(shí)現(xiàn)家庭安防功能。電池電量檢測(cè)能即時(shí)提醒更換電池。若對(duì)本設(shè)計(jì)做微小改動(dòng),添加房間數(shù)量或減少數(shù)量,或者改變傳感器類別實(shí)現(xiàn)其他功能,可擴(kuò)展性較強(qiáng)。
紅外遙控器相關(guān)文章:紅外遙控器原理萬能遙控器相關(guān)文章:萬能遙控器代碼
路由器相關(guān)文章:路由器工作原理
路由器相關(guān)文章:路由器工作原理
超聲波清洗機(jī)相關(guān)文章:超聲波清洗機(jī)原理
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理 溫濕度控制器相關(guān)文章:溫濕度控制器原理
評(píng)論