新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于ZigBee技术的门铃及老人求助系统

基于ZigBee技术的门铃及老人求助系统

作者:时间:2012-05-04来源:网络收藏

硬件框架设计图如图2所示。

本文引用地址:http://www.eepw.com.cn/article/155033.htm

b.JPG



3 软件设计
由上面可知本按功能分为3大模块。
(1)中控端
在软件部分,定义了UART0_Getchar()这个函数,负责接收字符,将接收到的字符传给此函数。本项目又定义了一个字符变量m,将UART0_Getchar()的值赋给变量m,通过if((m=UART0_Getchar())=‘s’)语句来判断是否有人来按。其中,值‘s’是作者自行设置的值,只有当m=‘s’时才能让室内终端上的喇叭输出铃声。
同时,中控端还定义UARTGetchar()函数,负责接收终端发送过来的字符,本项目也定义一个变量1,与上面介绍的类似。最后通过if((1=UARTGelchar())=‘c’)这条语句来判断是否发送了请求。同样,值‘c’也是作者自行设置的。只有当条件满足后,才会执行函数led invert()从而控制中控端上LED警示灯闪烁。
而对于室外的按键,通过有线方式将按键延伸至门外。在LPC1769开发板上,本项目需要将上面的P0.0口改为GPIO口:
LPC_PINCON->PINSEL0&=0xFFFFFFFC //把P0.0口改为GPIO口
通过LPC_GPIO0->FIODIR&=0xFFFFFFFE这条语句设置LPC GPIO0为输出,然后定义state变量用来读取P0.0引脚状态:state=LPC_GPIO0->FIOPIN。接着通过if(state&0x01)来判断按键是否被按下。若为真,则可通过中控端定义好的发送函数传给,由发送出去即可。
(2)室内门铃终端
该模块的软件设计想也同上面的类似。也在LPC1769开发板上通过控制引脚状态来判断主人是否按下LCD控制按钮。同样定义了UARTGetchar()和UARTGetsend()函数用来接收和发送字符。
(3)室内终端
由于EasyARM1138开发板本身就设计了3个按键供用户需要,任选一个按键,定义key_get()这个函数,用来判断按键是否被按下,若按下了,则通过uart_puts()函数把设定好的字符‘c’通过UART口传给ZigBee发送出去。与此同时,执行BuzzerSound()这个警铃函数,通过定时器来控制声音。

结语
老人终端不仅仪适用于家里的老人,对于行动不便的残疾人士甚至小孩也可使用该功能,价格相对便宜,有较广阔的市场应用前景;在ZigBee传输上面,已实现通过一对ZigBee进行信息传输,今后的研究中将进一步通过组网的形式将多个模块联合起来,以丰富其他功能,最终在生活中给人们带来更多便捷。

蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭