基于ZigBee技術(shù)的門(mén)鈴及老人求助系統
系統硬件框架設計圖如圖2所示。本文引用地址:http://dyxdggzs.com/article/155033.htm
3 軟件設計
由上面可知本系統按功能分為3大模塊。
(1)中控端
在軟件部分,定義了UART0_Getchar()這個(gè)函數,負責接收字符,ZigBee將接收到的字符傳給此函數。本項目又定義了一個(gè)字符變量m,將UART0_Getchar()的值賦給變量m,通過(guò)if((m=UART0_Getchar())=‘s’)語(yǔ)句來(lái)判斷是否有人來(lái)按門(mén)鈴。其中,值‘s’是作者自行設置的值,只有當m=‘s’時(shí)才能讓室內門(mén)鈴終端上的喇叭輸出鈴聲。
同時(shí),中控端還定義UARTGetchar()函數,負責接收老人終端發(fā)送過(guò)來(lái)的字符,本項目也定義一個(gè)變量1,與上面介紹的類(lèi)似。最后通過(guò)if((1=UARTGelchar())=‘c’)這條語(yǔ)句來(lái)判斷老人是否發(fā)送了請求。同樣,值‘c’也是作者自行設置的。只有當條件滿(mǎn)足后,才會(huì )執行函數led invert()從而控制中控端上LED警示燈閃爍。
而對于室外的門(mén)鈴按鍵,通過(guò)有線(xiàn)方式將按鍵延伸至門(mén)外。在LPC1769開(kāi)發(fā)板上,本項目需要將上面的P0.0口改為GPIO口:
LPC_PINCON->PINSEL0&=0xFFFFFFFC //把P0.0口改為GPIO口
通過(guò)LPC_GPIO0->FIODIR&=0xFFFFFFFE這條語(yǔ)句設置LPC GPIO0為輸出,然后定義state變量用來(lái)讀取P0.0引腳狀態(tài):state=LPC_GPIO0->FIOPIN。接著(zhù)通過(guò)if(state&0x01)來(lái)判斷按鍵是否被按下。若為真,則可通過(guò)中控端定義好的發(fā)送函數傳給ZigBee,由ZigBee發(fā)送出去即可。
(2)室內門(mén)鈴終端
該模塊的軟件設計想也同上面的類(lèi)似。也在LPC1769開(kāi)發(fā)板上通過(guò)控制引腳狀態(tài)來(lái)判斷主人是否按下LCD控制按鈕。同樣定義了UARTGetchar()和UARTGetsend()函數用來(lái)接收和發(fā)送字符。
(3)室內老人求助終端
由于EasyARM1138開(kāi)發(fā)板本身就設計了3個(gè)按鍵供用戶(hù)需要,任選一個(gè)按鍵,定義key_get()這個(gè)函數,用來(lái)判斷按鍵是否被按下,若按下了,則通過(guò)uart_puts()函數把設定好的字符‘c’通過(guò)UART口傳給ZigBee發(fā)送出去。與此同時(shí),執行BuzzerSound()這個(gè)求助警鈴函數,通過(guò)定時(shí)器來(lái)控制聲音。
結語(yǔ)
老人求助終端不僅儀適用于家里的老人,對于行動(dòng)不便的殘疾人士甚至小孩也可使用該功能,價(jià)格相對便宜,有較廣闊的市場(chǎng)應用前景;在ZigBee傳輸上面,已實(shí)現通過(guò)一對ZigBee進(jìn)行信息傳輸,今后的研究中將進(jìn)一步通過(guò)組網(wǎng)的形式將多個(gè)模塊聯(lián)合起來(lái),以豐富其他功能,最終在生活中給人們帶來(lái)更多便捷。
評論