引言
早期門鈴的作用只是單純地提醒主人有客來(lái)訪,而且它的功能是通過(guò)有線方式來(lái)實(shí)現(xiàn),,這樣的設(shè)計(jì)在現(xiàn)實(shí)生活中的局限性早已暴露出來(lái),。隨著科技的發(fā)展,門鈴的類型與功能更是多種多樣,,但基于ZigBee無(wú)線網(wǎng)絡(luò)傳輸?shù)拈T鈴目前市場(chǎng)上卻并未出現(xiàn),。
本項(xiàng)目通過(guò)ZigBee傳輸實(shí)現(xiàn)無(wú)線控制門鈴的功能。在功能設(shè)計(jì)上產(chǎn)品相對(duì)于普通有線門鈴更人性化,,增添了門外LCD顯示文字提醒,,有效簡(jiǎn)單地避免主人因有事遲來(lái)開(kāi)門迎接而產(chǎn)生不必要的尷尬。此外,,考慮到老年人存行動(dòng)上不便,,有時(shí)需要家人的幫助,而對(duì)于這種現(xiàn)象,,市面上卻沒(méi)有比較合適解決此類問(wèn)題的產(chǎn)品,,功能較全的產(chǎn)品價(jià)格又比較貴,而且一些功能在家里的應(yīng)用可有可無(wú),。針對(duì)此類問(wèn)題,,作者設(shè)計(jì)了老人求助功能,求助鈴聲由連接其終端的揚(yáng)聲器發(fā)出,,不僅如此還可以遠(yuǎn)程控制警示燈閃亮,。當(dāng)家人聽(tīng)到警鈴或看到警示燈便知老人需要幫忙,,可以第一時(shí)間前往救助。
1 方案詳細(xì)設(shè)計(jì)
方案詳細(xì)設(shè)計(jì)圖如圖1所示,。本項(xiàng)目是通過(guò)ZigBee無(wú)線網(wǎng)絡(luò)傳輸技術(shù)來(lái)實(shí)現(xiàn)的,,除了有普通無(wú)線門鈴控制功能之外,在室內(nèi)可移動(dòng)門鈴終端還可以通過(guò)按鍵控制與室內(nèi)中控端相連的門外LCD液品顯示,。當(dāng)客人拜訪來(lái)按門鈴時(shí),,主人剛好在家但有事不便,這時(shí),,主人就可以通過(guò)門鈴終端上的按鍵控制門外液晶器顯示"請(qǐng)稍候"字樣,;若家中有行動(dòng)不便的老人,當(dāng)他自己需要?jiǎng)e人幫助時(shí),,可以通過(guò)手持終端上的按鍵讓警示鈴工作,,同時(shí)室內(nèi)中控端上的警示燈LED會(huì)同時(shí)閃亮。當(dāng)家人看到燈閃或聽(tīng)到聲音就明白老人需要幫助,,會(huì)立刻過(guò)去,。這樣家人也不用時(shí)刻看住老人,可以有效地利用時(shí)間做其他的事情,。
圖1 方案詳細(xì)設(shè)計(jì)圖
2 硬件設(shè)計(jì)
根據(jù)以上方案設(shè)計(jì),,本系統(tǒng)可分為3個(gè)模塊。
(1)中控端
本系統(tǒng)的中控模塊包括NXP公司的LPC1769開(kāi)發(fā)板,,CC2430芯片ZigBec-RS232接口設(shè)備一個(gè),,用來(lái)提示的LED警示燈、帶ST7565p芯片的LCD液晶顯示器和門鈴按鍵各一個(gè),,以及若干杜邦線,。LPC1769本身就有UART口,可通過(guò)TTL轉(zhuǎn)串口與ZigBee連接,。LED警示燈,、LCD液品顯示器和門外按鍵設(shè)計(jì)也可從開(kāi)發(fā)板豐富的外設(shè)引腳得以實(shí)現(xiàn)。
(2)室內(nèi)門鈴終端
LPC1769開(kāi)發(fā)板一塊,,CC2430芯片ZigBee-RS232接口設(shè)備一個(gè),、喇叭一個(gè)、按鍵一個(gè),,若干杜邦線,。同理,LPC1769可與ZigBee連接,,喇叭與控制門外LCD的按鍵設(shè)計(jì)可從開(kāi)發(fā)板的外設(shè)引腳得到實(shí)現(xiàn),。
(3)室內(nèi)老人求助終端
本模塊需要EasyARM1138開(kāi)發(fā)板一塊,其本身就可通過(guò)UART口與ZigBee相連,。另外,,EasyARM1138開(kāi)發(fā)板本身帶有蜂鳴器,,警鈴聲只需在軟件層次實(shí)現(xiàn)即可。另外,,開(kāi)發(fā)板本身就有按鍵,,這樣通過(guò)ZigBee控制中控端上的警鈴也是可實(shí)現(xiàn)的。
系統(tǒng)硬件框架設(shè)計(jì)圖如圖2所示,。
圖2 系統(tǒng)硬件框架設(shè)計(jì)圖
3 軟件設(shè)計(jì)
由上面可知本系統(tǒng)按功能分為3大模塊,。
(1)中控端
在軟件部分,定義了UART0_Getchar()這個(gè)函數(shù),,負(fù)責(zé)接收字符,,ZigBee將接收到的字符傳給此函數(shù)。本項(xiàng)目又定義了一個(gè)字符變量m,將UART0_Getchar()的值賦給變量m,通過(guò)if((m=UART0_Getchar())='s')語(yǔ)句來(lái)判斷是否有人來(lái)按門鈴,。其中,,值's'是作者自行設(shè)置的值,,只有當(dāng)m='s'時(shí)才能讓室內(nèi)門鈴終端上的喇叭輸出鈴聲,。
同時(shí),中控端還定義UARTGetchar()函數(shù),,負(fù)責(zé)接收老人終端發(fā)送過(guò)來(lái)的字符,,本項(xiàng)目也定義一個(gè)變量1,與上面介紹的類似。最后通過(guò)if((1=UARTGelchar())='c')這條語(yǔ)句來(lái)判斷老人是否發(fā)送了請(qǐng)求,。同樣,,值'c'也是作者自行設(shè)置的。只有當(dāng)條件滿足后,,才會(huì)執(zhí)行函數(shù)led invert()從而控制中控端上LED警示燈閃爍,。
而對(duì)于室外的門鈴按鍵,通過(guò)有線方式將按鍵延伸至門外,。在LPC1769開(kāi)發(fā)板上,,本項(xiàng)目需要將上面的P0.0口改為GPIO口:
LPC_PINCON->PINSEL0&=0xFFFFFFFC //把P0.0口改為GPIO口
通過(guò)LPC_GPIO0->FIODIR&=0xFFFFFFFE這條語(yǔ)句設(shè)置LPC GPIO0為輸出,然后定義state變量用來(lái)讀取P0.0引腳狀態(tài):state=LPC_GPIO0->FIOPIN.接著通過(guò)if(state&0x01)來(lái)判斷按鍵是否被按下,。若為真,,則可通過(guò)中控端定義好的發(fā)送函數(shù)傳給ZigBee,由ZigBee發(fā)送出去即可。
(2)室內(nèi)門鈴終端
該模塊的軟件設(shè)計(jì)想也同上面的類似,。也在LPC1769開(kāi)發(fā)板上通過(guò)控制引腳狀態(tài)來(lái)判斷主人是否按下LCD控制按鈕,。同樣定義了UARTGetchar()和UARTGetsend()函數(shù)用來(lái)接收和發(fā)送字符。
(3)室內(nèi)老人求助終端
由于EasyARM1138開(kāi)發(fā)板本身就設(shè)計(jì)了3個(gè)按鍵供用戶需要,,任選一個(gè)按鍵,,定義key_get()這個(gè)函數(shù),用來(lái)判斷按鍵是否被按下,,若按下了,,則通過(guò)uart_puts()函數(shù)把設(shè)定好的字符'c'通過(guò)UART口傳給ZigBee發(fā)送出去,。與此同時(shí),執(zhí)行BuzzerSound()這個(gè)求助警鈴函數(shù),,通過(guò)定時(shí)器來(lái)控制聲音,。
結(jié)語(yǔ)
老人求助終端不僅儀適用于家里的老人,對(duì)于行動(dòng)不便的殘疾人士甚至小孩也可使用該功能,,價(jià)格相對(duì)便宜,,有較廣闊的市場(chǎng)應(yīng)用前景;在ZigBee傳輸上面,,已實(shí)現(xiàn)通過(guò)一對(duì)ZigBee進(jìn)行信息傳輸,,今后的研究中將進(jìn)一步通過(guò)組網(wǎng)的形式將多個(gè)模塊聯(lián)合起來(lái),以豐富其他功能,,最終在生活中給人們帶來(lái)更多便捷,。