DIY编程器网

标题: ARM智能家居控制器设计与实现 [打印本页]

作者: liyf    时间: 2012-1-16 18:45
标题: ARM智能家居控制器设计与实现

                      随着数字化家用电器的飞速发展,如何对家庭中相对独立的家用电器进行智能化管理和操作?这是人们非常关心的一个问题。智能家居控制器能够将许多相对独立的家用电器构成一个统一的系统,从而方便对家用电器进行本地操作,也可通过互联网或GPRS系统对家用电器实现远程控制等等。本文主要讨论智能家居控制的设计和实现。

1 智能家居控制器的硬件设计

  在设计智能家居控制器时,考虑到系统的稳定性和扩展性,因此将控制器硬件设计成核心板和控制板2部分。核心板主要用来构成一台嵌入式计算机系统,控制板主要是一些外围接口。系统硬件如图1所示。



750){this.width=500;}" border=0>
如图2 应用程序结构框图
  共享数据主要用于存放家电开启和关闭时间,发送短信的电话号和短信内容等信息。共享数据是通过2个设置线程来修改的。家电控制线程主要是根据控制数据、检测短信线程的内容和操作线程的内容来进行操作。发送短信线程主要是根据控制数据、检测传感器线程的内容和操作线程的内容来进行操作。应用程序的具体内容如下。

#include //线程库头文件

int main()
{┅
pthread_creat(&th_a,NULL,send_msg,0); //创建发送短信线程
pthread_creat(&th_b,NULL,control_driver,0); //创建家电控制线程

pthread_join(th_b,&retval); //等待家电控制线程结束
pthread_join(th_a,&retval); //等待发送短信线程结束
┅}
/*发送短信线程*/
int send_msg()
{┅
tty_init(); //初始化串口
gprs_init(); //初始化GPRS模块
tty_writecmd(“at”,strlen(“at”)); //发送AT命令
tty_writecmd(“at+cmgf=1”,strlen(“at+cmgf=1”));//发送修改字符集命令
tty_write(“at+cmgs=”,strlen(“at+cmgs=”)); //发送短信命令
tty_writecmd(msg.send_tel,strlen(msg.send_tel)); //发送电话号码
tty_writecmd(msg.send_text,strlen(msg.send_text)); //发送短信内容
tty_end();

return 0;
}

  其它线程的设计方法有很多相似之处。应用程序设计完成之后,再经过交叉编译就可生成目标文件。

5 结束语

  将移植好的系统、驱动程序和应用程序下载到智能家居控制器上。经过测试,系统具有操作方便、可靠性高和抗干扰能力强等优点。本文的创新点是:通过智能家居控制器将家电、传感器、手机等许多独立的设备连接成为一个系统,从而方便本地和远程控制。
            




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2