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