智能家居作品.docx
《智能家居作品.docx》由会员分享,可在线阅读,更多相关《智能家居作品.docx(39页珍藏版)》请在冰豆网上搜索。
![智能家居作品.docx](https://file1.bdocx.com/fileroot1/2023-1/24/3e942abb-2e00-4484-bcb3-0f7b380669a2/3e942abb-2e00-4484-bcb3-0f7b380669a21.gif)
智能家居作品
序号:
编码:
湖北省第九届“挑战杯”大学生课外学术科技
作品竞赛
参赛作品
作品名称:
基于手机WIFI安卓平台操纵的远程网络智能家居系统
类不:
□自然科学类学术论文
√
□哲学社会科学类社会调查报告和学术论文
□科技发明制作A类
□科技发明制作B类
1作品概述
21世纪是信息化进展最快的世纪,各种电子技术和网络技术不断快速进展,推动了人类文明的巨大进步。
特不是电子技术的进展,不断体现出人性化的进展趋势。
为了解决人们日常生活中的问题,专门多电子产品都相继生产投入市场,并受到了人们的广泛运用,如手机、U盘等。
我们设计作品的目标,确实是为了方便人们的日常生活,给人们的生活提供方便和快捷。
本系统围绕日常家居系统,突破其传统的生活方式,即一个开关操纵一个用电器的方式,改用无线通信技术对整个家里的用电器进行操纵。
使人们能随时随地的对家里的用电器进行操纵,让人们的家居环境更加人性化,更加快捷。
我们用到的无线通信方式有,红外遥控、手机蓝牙和无线网络WIFI技术,实现了对家居系统由近到远的全范围覆盖操纵。
如:
当你在办公室,能够通过WIFI网络操纵家里空调或暖气的开关,还能够操纵门窗的开关,极大的方便了用户的日常生活。
实现整个系统的操纵核心是51单片机,它接收用户的命令信息,通过算法处理,对室内各用电器进行全方位的操纵。
本系统不但能专门稳定的实现其功能,而且成本低,具有专门好的适用性和专门高的市场价值。
2作品背景
2.1智能家居
智能家居是指利用先进的计算机技术、网络通信技术、综合布线技术,将与家居生活有关的防盗报警系统、家电操纵系统、网络信息服务系统等各种子系统有机地结合在一起,通过统筹治理,让家居生活更加舒适、安全、有效。
与一般家居相比,智能家居能提供全方位的信息交互功能,关心家庭与外部保持信息交流畅通,优化人们的生活方式,增强家居生活的安全性、舒适性。
家庭自动化系指利用微处理电子技术,来集成或操纵家中的电子电器产品或系统,例如:
照明灯、电炊具、电脑设备、安防系统、空调系统、音响系统等。
家庭自动化系统要紧是以一个中央微处理机接收来自相关电子电器产品的信息(外界环境因素的变化,如温/湿度、太阳初升或西落等所造成的光线变化等)后,再以既定的程序发送适当的信息给其他电子电器产品。
中央微处理机必须透过许多界面来操纵家中的电器产品,这些界面能够是键盘,也能够是触摸式荧幕、按钮、电脑、电话机、遥控器等;消费者可发送信号至CPU,或接收来自CPU的信号。
智能家居随着科技的进展和人民生活水平的提高,正以迅猛的态势渗透到平常百姓的生活当中。
“智能小区”、“智能家居”正成为房地产商推崇的热点词汇,科技的进步让家居智能化正在成为现实。
2.2Android系统
安卓(Android)是一种以Linux为基础的开放源码操作系统,谷歌公司在2007年正式推出该系统后,在短短的几年时刻内得到了广泛的应用。
2012年7月美国科技博客网站BusinessInsider评选出二十一世纪十款最重要电子产品,Android操作系统榜上有名。
安卓系统要紧使用于便携设备,广泛应用于智能手机、平板电脑、MID等电器。
作为一款开放式操作系统,随着安卓的快速进展,现在已同意开发者使用多种编程语言来开发安卓应用程序,而不再是往常只能使用Java开发安卓应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开发式操作系统。
安卓系统以Linux系统为核心,使用Java作为要紧编程语言,在NDK(NativeDevelopmentKit)的支持下也可使用c/c++进行编程。
越来越多的用户开始体验到,搭载安卓系统的智能手机就和电脑一样,能够轻松享受移动互联网冲浪,并随意安装软件扩展功能——所有安卓软件差不多上APK(AndroidPackage的缩写,即Android安装包)格式,在Android手机中执行即可安装。
依托于源代码开放,安卓应用进展迅速,据悉,目前免费软件已达到10万级。
由于安卓系统是与Google与其他专门多公司共同开发的,因而在网络方面特不有优势,而且就系统方面来看,安卓系统特不个性化。
随着安卓系统的日渐强大,更多的扩展软件也为使用者带来了更多的乐趣。
此外,其个性界面支持自有定制,多主屏,程序、小部件轻松放置,简单便捷。
2.3无线WIFI
WIFI是一种能够将个人电脑、手持设备(如Pad、手机)等终端以无线方式互相连接的技术。
随着技术的进步和基础设施的改善,WIFI已成为人们日常生活必不可少的有用工具,WIFI信号范围正在不断扩大。
WIFI也逐渐被应用到智能家居中。
WIFI在智能家居中的应用要紧包括一个家庭网关以及若干个无线通讯子节点,在家庭网关上有一个无线发射模块,每个子节点上都包含一个无线网络接收模块,通过这些无线收发模块,数据就在网关和子节点之间进行传送。
其中WIFI智能网关确实是室内机,是家庭的一个智能化枢纽,通过智能网关上的无线射频模块与收集中各子节点进行通信,实现家电的操纵;通过Web网络操纵智能网关,从而实现对家电的远程操纵。
真正实现家电的智能操纵,为人们的生活带来了极大的便利。
3作品设计方案和特点
3.1作品设计方案
本作品以房屋模型来模拟真实的家居环境,实现基于手机WIFI的远程智能操纵和基于Android平台的蓝牙以及红外的智能操纵。
以单片机为核心处理器,通过手机WIFI、红外和基于Android平台的蓝牙发送命令来对用电器进行实时操纵,改善传统的机械开关的操纵,使得操纵更加的智能化。
给用户带来更加安全、方便的体验。
3.2作品特点
(1)此作品旨在于提供一种更为简单、方便、安全、舒适、节能的家居环境。
本作品以STC89C52单片机为基础,通过基于Andriod平台的蓝牙、红外、手机WIFI发送命令来操纵继电器状态继而对用电器进行操纵,实现了与机械开关的双重操纵,并能够直接操纵220V的用电器,符合一般家居环境的使用条件,且该操纵为一种弱电操纵强电的安全操纵方法。
(2)利用手机WIFI来进行远程网络操纵,符合当今网络进展的趋势,充分利用了各种网络资源。
通过手机WIFI进行操纵,改变了家居环境原有通过布线来实现操纵各种家用电器的途径,能够对电器无线操纵,为用户减少了一笔开支,响应了制造节约型社会的口号。
且该操纵方法能够利用网络实现远程操作,用户在外便可对家里的电器进行操纵,真正体现了家居的智能化,给用户的生活带来极大的便利。
(3)本作品开发了基于Android平台的蓝牙软件,该软件的桌面可依照各自家庭用电器等设备的使用情况设定,操作更具有可视性,从而使得操纵更加的方便,增强了系统的推广性。
(4)现在手机使用的普及率极高,本系统通过手机蓝牙与操纵板上的从机进行配对,通过手机可发送各种命令来操纵电器的状态。
充分利用了已有资源,体现了节约、便捷的思想。
(5)该作品亦可通过红外操纵。
红外使用的是一般的电视机遥控,通过程序的处理能够解决因遥控器的不同而无法实现操纵的弊端,消除了系统的特异性,幸免了二次消费,增强了系统的推广性。
红外的操纵距离可达到10米,且其接收头的价格低廉,能够在各个房间都安装红外接收头,幸免因墙壁的阻挡对红外信号的阻碍。
实现了在家庭环境的全方位操纵,使得操纵更加方便。
(6)超声波装置给用户发送了房屋门窗的实时状态,使用户拥有一个更加方便的智能系统来得知房屋状况,增强了房屋的安全性。
(7)通过光敏电阻与继电器相结合,组成了性价比更高的光控开关。
本系统运用此装置实现了依照光照强度来操纵照明灯的智能操纵。
幸免了在光照强度良好、用户忘关灯而灯依旧工作的白费行为,使得系统更加节能。
4作品总体结构设计
本作品以STC89C52单片机为核心,通过接收手机WIFI、红外或蓝牙的操纵命令来分不操纵相应的用电器,从而与机械开关实现对家居用电器的全方位操纵,使用户能对用电器随时随地的操纵,使家居环境更加智能化。
另外本作品运用了超声波模块来实时的检测房屋门窗是否关闭,增加了房屋的安全防盗功能。
通过光敏电阻感应光照的强度,来实现光控开关,增加了房屋的节能环保功能。
如图4.1:
本作品以STC89C52单片机为基础
图4.1总体结构图
图4.2WIFI应用图
5硬件电路设计
5.1硬件总体电路
图5.1电路原理图
图5.2整体电路PCB图
该整体电路包含有STC89C52单片机的最小系统,作为整个系统的操纵核心。
另因单片机的输出功率有限,添加了继电器的操纵电路。
其中的蓝牙操纵模块、红外操纵模块和手机WIFI操纵模块作为接收用户命令的终端。
5.2核心操纵电路:
操纵芯片STC89C52
图5.3芯片核心电路图
图5.4STC89C52单片机
51单片机是目前应用最广泛的8位单片机之一,这款芯片不仅资源丰富,功能强大,而且功耗小,正是基于其功能适合本系统的设计的设计需求,故选用本芯片。
图5.3为STC89C52单片机的最小系统的典型接法,其中11.0592MHz的晶振电路时单片机的片内时钟源,单片机的XTAL1和XTAL2引脚之间接11.0592MHz的晶体振荡器和电容构成内部时钟方式。
他是单片机能准确工作的重要依据。
引脚9所接电路是由微动开关,电解电容和电阻所构成的复位电路。
能够在不掉电的情况系对系统进行复位,使系统回归于初始状态。
5.3继电器操纵电路:
三极管和继电器组成的操纵模块
图5.5继电器驱动电路
图5.6继电器模块实物图
房屋的家居智能化,可通过弱电操纵强电来实现。
在那个地点我们用到的中间器件确实是继电器,实现弱点跟强电的对接。
5.4报警电路:
三极管和蜂鸣器组成的按键提示和报警摸块
图5.7报警电路
图5.8报警电路实物
我们采纳的报警器是最差不多的发声器件—蜂鸣器。
它的要紧功能是用来进行报警,当门窗打开的时候,蜂鸣器会发出响声,提醒主人门窗没有关好。
能够极大的提高房屋的安全性,使人们能全身心的投入到工作、生活和学习中。
那个地点三极管和上面一样起着开关作用,当三极管导通时,蜂鸣器得电,发出响声;三极管失电时,蜂鸣器不响。
5.5电源稳压电路:
稳压芯片LM2940T-5.0
关于一个单片机系统,一个稳定的电源系统是专门重要的。
图5.9电源稳压模块电路
图5.10电源稳压模块实物
每个系统都有自己的电源模块,我们那个地点所采纳的是电源稳压芯片LM2940T-5.0。
如图5.11所示:
图5.11电源稳压芯片LM2940T-5.0
这款芯片内含静态电流降低电路、电流限制、过热爱护、电池反接和反插入爱护电路。
我们利用这款芯片,把系统供电电池输出的12V电压降为5V,为整个系统提供稳定的5V电源。
5.6光敏传感器模块
图5.12光敏传感器模块电路
本模块实现房屋照明的节能操纵。
通过光敏传感器对房屋周围光线的采集,推断其光照强度。
通过调节电阻值的大小来设定光照强度的一个临界值,当光照强度大于那个临界值时,开关打开的情况下,灯泡能够发光,当光照强度小于那个临界值时,开关打开的情况下,灯泡熄灭。
5.7门禁防盗系统:
超声波测距模块
图5.13超声波模块电路
图5.14超声波模块实物
本模块用于检测门窗是否关闭良好,当用户发送命令进入到检测模式时,假如门呈打开状态,则现在系统的蜂鸣器会持续鸣叫,若命令由手机发出,手机上同时会收到“open”提醒字符。
5.8无线通信系统:
红外、蓝牙、WIFI模块
5.8.1红外通信模块
图5.15红外模块电路
图5.16红外接收头
本系统中红外遥控模块能够让用户随时随地的改变房屋内任一用电器的状态,给人们的生活带来了专门大的方便,也更加人性化。
目前每个家庭都有遥控器,我们选择这种操纵方法,能够充分利用现有资源,使本系统应用更加方便。
5.8.2蓝牙通信模块
图5.17蓝牙操纵电路
图5.18蓝牙操纵电路实物
蓝牙无线通信是手机间近距离相互通信的一种通信方式,手机应用的普遍性,使我们作品的应用面更加广泛。
随着智能手机的普及化程度越来越高,特不是安卓系统的开源模式,使得安卓系统的手机市场的占有率不断的提高。
我们也能够通过安卓手机,实现和遥控器同样的无线操纵家电的功能。
我们通过安卓开发平台,做出了相关安卓操纵软件,如图5.19。
图5.19安卓开发界面
5.8.3WIFI通信模块
随着网络技术的不断进展,更加人性化的智能家居操纵系统将会不断向前进展,如操纵界面更加生动、具体、距离更远。
为了进一步增加系统的操纵距离,我们选择了目前市场前景比较宽敞的WIFI技术,通过无线WIFI网络实现对家居系统的超远距离操纵。
图5.20WIFI硬件连接设计图
图5.21WIFI操纵电路
图5.22WIFI操纵流程图
随着WIFI信号覆盖范围不断增加,我们选择WIFI信号连接互联网,对家居系统进行更远距离的操纵。
我们发送命令的平台是android手机,运用基于android开发平台的WIFI通信软件工具,实现智能手机的WIFI网卡的连接。
当用户不在家时,能够通过WIFI连接互联网,对家里的电器实现超远距离操纵,为用户的生活提供了极大的方便。
WIFI网卡接收到手机的操纵信号后,把信号传送给单片机,单片机再通过继电器,实现对用电器的操纵。
6软件程序设计
6.1整体程序设计
软件部分要紧包括:
继电器模块程序设计、红外线接收模块程序设计、蓝牙模块程序设计、手机WIFI操纵模块程序设计、超声波模块程序设计、蜂鸣器模块程序设计。
程序结构如下图:
图6.1程序设计流程图
系统开始运行后,当操纵芯片接收到遥控器、手机的操纵命令信号时,也即中断信号,会执行相应的中断程序,从而实现对家居电器的智能操纵。
6.2模块化程序设计
模块化程序设计即模块化设计,简单地讲确实是程序的编写不是开始就逐条录入计算机语句和命令,而是首先用主程序、子程序、子过程等框架把软件的要紧结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。
逐步求精的结果是得到一系列以功能块为单位的算法描述。
以功能块为单位进行程序设计,实现其求解算法的方法成为模块化。
模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。
下面分不介绍以上各个模块的程序设计。
6.2.1继电器模块程序设计
程序中先定义单片机的P1.x引脚为继电器引脚,在程序代码中直接对P1.x引脚进行取反。
操纵继电器的P1.x口引脚若为低电平,则继电器吸合,若为高电平,则继电器断开。
通过对操纵继电器引脚的值进行取反,来改变相应的继电器的状态。
继电器程序流程图如下图6.2:
图6.2继电器模块程序流程图
6.2.2蜂鸣器模块程序设计
蜂鸣器模块程序设计类似继电器模块的程序设计,程序设计中先定义单片机的P3.6口为fmq,在程序代码中直接对fmq进行赋值,当值为1时,P3.6引脚为高电平,当为0时,P3.6引脚为低电平。
操纵蜂鸣器的P3.6口引脚若为低电平,则蜂鸣器发生,若为高电平,则无声。
蜂鸣器模块程序流程图如图6.3:
图6.3蜂鸣器模块程序流程图
6.2.3红外线接收模块程序设计
通用红外遥控系统由发射和接收两大部分组成。
应用编/解码专用集成电路芯片来进行操纵操作。
发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。
单片机采纳外部中断INT1引脚和红外接收头的信号线相连,当红外发射器发出命令时,引起中断,计算中断的间隔时刻,来区分前导码、二进制的“1”“0”码,并依照操作码来确定所发的数据,将其与操作反码比较,以此来确定数据的有效性。
本程序设计中,利用了红外遥控进行了数据传输,其程序流程图如图6.4:
图6.4红外线接收模块程序流程图
红外解码程序:
bitDeCode(void)
{
unsignedchari,j;
unsignedchartemp;
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
{
temp=temp>>1;
TH1=0;
TL1=0;
TR1=1;
while(IR==0)
;
TR1=0;
LowTime=TH1*256+TL1;
TH1=0;
TL1=0;
TR1=1;
while(IR==1)
;
TR1=0;
HighTime=TH1*256+TL1;
if((LowTime<370)||(LowTime>640))
return0;
if((HighTime>420)&&(HighTime<620))
temp=temp&0x7f;
if((HighTime>1300)&&(HighTime<1800))
temp=temp|0x80;
}
a[i]=temp;
}
if(a[2]==~a[3])
return1;
}
6.2.4蓝牙模块程序设计
蓝牙支持点对点以及点对多点的通信,以无线方式将家庭或办公室中的各种数据和语音设备连成一个微微网(Pico-net),几个微微网还能够进一步实现互联,形成一个分布式网络(scatter-net),从而在这些连接设备之间实现快捷而方便的通信。
在本程序设计中利用了串口通信,来进行数据的传输。
由手机发送数据,进行串口通信,单片机依照手机发送的数据作出响应。
图6.5蓝牙模块程序流程图
蓝牙模块发送数据程序
voidsend_char(unsignedchartxd)//传送一个字符
{
SBUF=txd;
while(!
TI);//等特数据传送
TI=0;//清除数据传送标志
}
6.2.5WIFI模块程序设计
a.WIFI网卡操纵程序设计
图6.6WIFI网卡程序流程图
WIFI发送指令程序段
intAtCmdSend(TATCP_CMD*AtCmd)
{
unsignedcharAtCmdbuf[512];
intret=0;
////AtCmd_Check();///AtCmdCheck
/////
strcpy(AtCmdbuf,"AT+");
strcat(AtCmdbuf,AtCmd->Cmdbuf);
ReciveAtCmdrep=0;
ComSendstr(AtCmdbuf);
AtcmdTimerId=StartTimer(MSG_CMD_TIMEOUT_CFM,TIMER_ATCMD_TIMEOUT);
while(ReciveAtCmdrep!
=1)
{
if(Atcmdtimeout==1)
{
ret=-1;
break;
}
}
StopTimer(AtcmdTimerId);
returnret;
}
WIFI接收中断函数程序段
voidCOMM_INT()interrupt4using3
{
unsignedcharcBuf;
if(RI)//接收数据
{
RI=0;
cBuf=SBUF;
ProcessUARTData(cBuf);
}
elseif(TI)
{
TI=0;
if(iSendCounterSBUF=cpSendBufPtr[iSendCounter++];
}
}
WIFI接收到数据的处理函数
voidProcessUARTData(INunsignedcharUartData)
{
inti=0;
switch(gcWIFICommunState)
{
caseWIFI_WAIT_SYN:
//接收等待
if(UartData==WIFI_SYN)
{
gcWIFICommunState=WIFI_WAIT_RESP;
}
break;
caseWIFI_WAIT_RESP:
AtResp[AtResplen++]=UartData;
if(strcmp(AtResp,"OK")==0)
{
AtRespState=1;////responseok
gcWIFICommunState=WIFI_RECEDATA;
AtResplen=0;
}
elseif(strcmp(AtResp,"ERR")
{
AtRespState=0;////responseERRgcWIFICommunState=WIFI_WAIT_ERRCODE;
AtResplen=0;
}
else
{
printf("Reciveunknownwords\n");
AtRespState=0;////responseERR
gcWIFICommunState=WIFI_WAIT_SYN;
AtResplen=0;
}
break;
caseWIFI_RECEDATA:
caseWIFI_WAIT_OVER:
caseWIFI_WAIT_ERRCODE:
ATReceBuffer[0].gcATReceData[ATReceBuffer[0].gcATReceCount]=UartData;
ATReceBuffer[0].gcATReceCount++;
if(strstr(ATReceBuffer[0].gcATReceData,"\r\n\r\n")!
=NULL)
{
ReciveAtCmdrep=1;
gcWIFICommunState=WIFI_WAIT_SYN;
ATReceBuffer[0].gcATReceCount=0;
}
elseif(ATReceBuffer[0].gcATReceCount==WIFIBUFLEN)
{
printf("Atcmdreciveerror\n");
gcWIFICommunState=WIFI_WAIT_SYN;
}
else
{
printf("Wiatnextbyte\n");
}
break;
default:
gcWIFICommunState=WIFI_WAIT_SYN;
break;}}
b.WIFI模块51核心操纵程序
图6.7手机WIFI模块51操纵程序流程图
手机WIFI模块51操纵程序
voidWIFI_control()
{
if(key1==1)
control_1=~control_1;//一号用电器状态切换
if(key2==1)
control_2=~control_2;//二号用电器状态切换
if(key3==1)
control_3=~control_3;//三号用电器状态切换
if(key4==1)
control_4=~control_4;//