智能家居系统.docx

上传人:b****8 文档编号:29876098 上传时间:2023-08-03 格式:DOCX 页数:12 大小:22.20KB
下载 相关 举报
智能家居系统.docx_第1页
第1页 / 共12页
智能家居系统.docx_第2页
第2页 / 共12页
智能家居系统.docx_第3页
第3页 / 共12页
智能家居系统.docx_第4页
第4页 / 共12页
智能家居系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

智能家居系统.docx

《智能家居系统.docx》由会员分享,可在线阅读,更多相关《智能家居系统.docx(12页珍藏版)》请在冰豆网上搜索。

智能家居系统.docx

智能家居系统

智能家居系统

1绪论

1.1研究背景

家居的智能化在最近几年越来越受到人们的重视。

在这个信息化的社会中,智能化的设备不停的冲击着人们的眼球,从iPhone到PC,从VR到AR,从GoogleGlass到AppleWatch[1-2],网络,计算机,智能手机,智能手表,带给我们无限的惊喜。

在这种智能化的洪流之下,几乎所有的人都不由自主的在想,可不可以,或者说有没有可能,把我们生活中息息相关的一些家具,也变成智能化。

抓住消费者的这个心理,很多厂商开始了自己的智能化尝试。

比如海尔的全自动智能洗衣机,美的的智能空调,以及其他智能产品。

这些产品的问世都标志着人们对未来智能家居行业的期望与探索的决心[3-7]。

在传统的设备中,几乎所有的电器都是需要人工打开或者关闭,这样就导致一个问题,比如有人下班以后,非常热,想要快速的享受到凉爽的环境,但是空调的工作条件,工作方式不能让房间迅速的冷却下来。

以至于人们开始思考如何让空调在主人到家之前预先运转呢?

传统电器的解决方案是——定时开关。

诚然,这是一个相当有效的解决方案,甚至在某些层面上已经完全解决了预先运行的问题。

但是,假设主人加班或者提前下班,空调的预先运行时间却不会改变。

这就导致了要么预先设定的时间没有什么卵用,要么空调白白运转了很久浪费了让这个月的电费账单爆炸[9-12]。

由于信息技术,网络技术的发展,“远程控制”成为了现代新一代的智能家居设备的主旋律。

但是由于这是一块非常新的市场,并且是一个交叉市场,传统的家居厂商和新兴的互联网设备厂商、软件商,纷纷涌进这个全新的额领域,企图在这个市场饱和之前分一杯羹。

由于缺乏有效的领导和标准规范,导致现在的智能设备良莠不齐,各自为政[13-15]。

这就导致用户不能像想象中的那样自如的使用着智能化的果实,反而被层出不穷的各种协议和接口弄得筋疲力尽。

所以本文拟提出一个一体化的解决方案,使用一站式的服务,解决主要的智能家居的问题。

1.2发展的历程

据考证,智能家居的概念已经发展了很久,虽然近些年来才刚刚进入大众的

视线,但是相关的论文资料,研发工作早在几十年前就已经有了起步。

虽然经历了许多失败,但是在1984年,美国的联合科技公司用智能化的概念,对一栋已经废弃了的大楼进行了改造。

他们使用计算机对这栋楼的空调,电梯,灯饰以及其他设备进行监视和控制。

除此以外,他们还给这个大楼提供了网络信息服务。

这是人类历史上第一次成功的智能家居案列,四年以后,也就是1988年,当时的美国电子工业协会EIA制定了第一个关于家庭住宅的电气标准——《家庭自动化与通讯标准》,也就是人们常说的家庭总线标准。

自1997年起,我国也颁布了相关的标准——《小康住宅电气设计标准》。

到现在为止,中国的智能家居还仅仅是起步阶段,但是从上世纪90年代以来,我们的智能家居技术也每天都向着成熟的方向发展。

即使在几年以前,智能化的家庭对大部分的中国人来说还是一个全新的陌生的概念,但是现在来看,随着iPhone等智能设备的普及,越来越多的人开始有了更多的追求智能化的体现。

不仅仅是个人数字产品,更是日常使用的器物上。

这一股智能化的风潮更是激起了更多企业的热情,他们不惜耗费大量的人力,物力,财力,时间去研究这个领域的内容,想要获得更大的利益。

这也造成了中国智能家居行业百家争鸣的现象,前景无比广阔。

相比之下,国外的智能家居就有更加长足的发展。

早在1998年,新加坡就有了所谓“新加坡式的智能家居”,并且在当年的“亚洲家用电器和电子消费产品国际展览会”上进行了展出,这一套系统包含了主要功能有:

三表抄送,安防报警,监控中心,家电控制,三网接入,住户信息留言,系统软件配置……到现在为止,发达国家已经大量应用了智能家居系统。

2003年,Samsung公司推出了一个一体化的解决方案,他们通过机顶盒和网络,将家居控制,信息家电,安防设备,娱乐信息四大模块集中了起来,变成了一个全面的、面向互联网的控制网络。

在看见了如此广阔的前景,许多公司都开始了进行智能家居的研究,他们有竞争有合作,为这个全新的市场带来了新鲜的活力和无限的希望。

1.3本文的研究内容

本文拟设计的智能家居系统包含安防报警,自动调节,远程控制三大模块。

采用中央集中处理的方式进行智能家居系统的设计。

纵观最近的智能化的设备,

有以下4个趋势[8-20]:

①从分散式到总线式。

智能化设备的最开始的开发和研究是由各个公司单独

开发完成的,这就导致相互之间的不兼容,无法完成有效的信息交换。

让人觉得家居很“笨”,很无聊,现在总线式的控制,为家庭提供了一站式的解决方案,有效提高了相互协作的效率。

②从通用机到专用机。

在智能设备最开始起步的时候,大部分的控制器都使

用了PC,这就导致了大量的资源的浪费,好比杀猪用了宰牛刀,成本又高,又不划算。

而现在使用的MCU,更加具有针对性,稳定性也有了可观的提高。

③通讯协议由自主定义到行业规范。

就好比USB接口,在很多年前,USB

接口多种多样,谁都不愿意使用别人的接口,直到有了行业规范,大大方便了用户的使用。

④主要企业由零星的小企业到规模宏大的大集团。

比如在处理器行业中,几

十年前百家争鸣,到现在的规模宏大的Intel和AMD独领风骚。

这是一个行业的发展必然趋势。

根据以上的几个趋势。

本次毕业设计我采用了一个C52单片机做为中央控

制站,其余3台单片机做为从站点,负责信息的收集与基础工作。

采用nRF2401+模块做为通信工具,连接所有站点,组成完整的智能家居网络。

分为中央控制模块,远程控制模块,烟雾报警模块以及防盗控光模块。

基本系统框图如下:

单片机STC89C*****GSM报警

显示

键盘

图1中央控制模块

光敏传感

器震动传感

单片机

*****2

窗帘控制2401

图2防盗控光模块

单片机*****2

烟雾传感器

2401

图3烟雾报警模块

单片机*****2远程控制

2401

图4远程控制模块

2智能家居的总体设计

2.1中央控制模块

2.1.1nRF2401+模块

(1)概述

nRF2401+模块做为一近距离传输模块,是一个工作在2.4GHz这个世界通用的ISM频段的单片式的无线收发芯片。

其中包含的内容为频率发生器、增强型ShockBurstTM模式控制器、功率放大器、晶振、调制解调器。

在这些参数中,输出功率、频道选择和协议的设置均可以通过SPI接口设置。

nRF2401+芯片具有极低的消耗,当工作在发送模式时(-6dBm),电流仅仅只有9mA,接收模式时,电流12.3mA。

掉电模式和待机模式电流更低,仅有

1mA-4mA。

主要工作模式有以下几种:

表1nRF2401+模块的基本工作模式

模式PWR_UPCSNCE接收模式101

发送模式101

待机模式1-0

关机模式0--

(2)引脚介绍

nRF2401+芯片共有20个引脚,但是加上外围电路之后,需要人工使用的只有8个引脚,其功能如下:

表2nRF2401+模块的引脚说明

引脚名称描述功能

CE输入控制2401+的收发状态

CSN输入片选使能低电平使能

SCK输入输入/输出数据时的时序信号

MOSI输入串行输入数据

MISO输出串行输出数据

IRQ输出引发单片机中断,低电平使能(3)nRF2401+模块的基本使用

2401+模块的配置字共有15个字节,其中最高位是系统保留的TEST位,119-104为数据长度位,103-24位是本机的地址位,23-18位是接收频道地址位数,17-1位是CRC选择,通信方式使用,发射速率,晶振频率等设置所保留的位。

最后一位第0位是控制2401+模块处于发送还是接收模式的配置位,当它为1时,2401+处于接收模式,当它为0时处于发送模式。

首先是配置2401+模块的收发地址,选用相同的0xFF,0xFF,0xFF,0xFF,0xFF做为收发地址,此处程序如下:

constu8TX_*****[TX_ADR_WIDTH]={0xFF,0xFF,0xFF,0xFF,0xFF};//发送地址

constu8RX_*****[RX_ADR_WIDTH]={0xFF,0xFF,0xFF,0xFF,0xFF};//接收地址

此处的地址采用宏定义的方式,用几个容易记住的字母来代替枯燥的数字,在以后编写的时候可以重复使用,不用担心输入错误而导致的程序出错。

在宏定义了2401+的地址之后,就是引脚声明,将物理链接的引脚在程序中

写出来,目的是告诉单片机在执行程序的时候应该使用哪几个引脚可以达到目的效果。

接下来的程序是2401+模块的基础子程序,包含写寄存器(单字节)、读寄存器(单字节)、写寄存器(多字节)、读寄存器(多字节)、2401+的发送配置初始化程序、接收配置初始化程序。

其中发送初始化程序和接收初始化的程序就是写入2401+的配置字,这两个配置字的区别仅仅在最低位一位不同。

此处写入配置字的例程如下:

n*****_CE=0;//开始写入配置字

2401_Write_Reg(write_register+RX_PW_P0,RX_PLOAD_WIDTH);//选择数据有效宽度

2401_Write_Reg(FLUSH_RX,0xff);//清除RXFIFO寄存器

2401_Write_Buf(write_register+TX_ADDR,(u8*)TX_*****,TX_ADR_WIDTH);//写本机地址

2401_Write_Buf(write_register+RX_ADDR_P0,(u8*)RX_*****,RX_ADR_WIDTH);//设置发送地址

2401_Write_Reg(write_register+EN_AA,0x01);//使能自动应答

2401_Write_Reg(write_register+EN_RXADDR,0x01);//使能接收地址

2401_Write_Reg(write_register+SETUP_RETR,0x1a);//设置自动重发时间(500+86us);最大重发10次,确保能够发送成功。

2401_Write_Reg(write_register+RF_CH,0);//设置nRF2401+的发送频率为2.4GHz2401_Write_Reg(write_register+RF_SETUP,0x0F);//设置基本发射参数0dB增益,2Mbps,低噪声增益开启

2401_Write_Reg(write_register+CONFIG,0x0f);//设置基本工作模式其中最后一位控制接收模式

2401_CE=1;//配置字写入结束

写完2401+的配置程序之后就是检测2401+模块是否存在的子程序。

在写完这个程序之后,就是发送数据包的程序,例程如下:

voidSEND_BUF(u8*buf)

{

n*****_CE=0;

2401_Write_Reg(write_register+CONFIG,0x0e);

n*****_CE=1;

delay_us(15);

2401_TxPacket(buf);

n*****_CE=0;

2401_Write_Reg(write_register+CONFIG,0x0f);

n*****_CE=1;

}

在将CE置低之后,2401+处于写入配置字状态,这个时候写入发送的配置字,即最后一位为0,再将CE置高,驱动2401+模块处于发送状态,这个时候用子函数写入buf中的内容,发送完毕后将CE置低,写入接收的配置字,再将CE置高,驱动2401+模块处于接收状态。

为下一次接收通信信号做好准备。

2.1.2GSM模块

(1)概述

本次毕业设计的GSM模块采用芯讯通(SIMCOM)公司生产的*****模块,该模块采用的通讯频率是GSM900/1800MHz。

可以基本实现语音通话、短信彩信收发、GPRS数据上网。

通过同一公司生产的指定硬件还可以获得更强大的功能升级。

该模块的最大发射功率可以达到2W,瞬时最高功率8W,所以采用5V2A电源进行供电。

SIM卡接口采用的是MICROSIM卡,所以一般的大卡需要剪卡才能使用。

支持TTL及232接口,支持3.3V/5V系统。

(2)引脚介绍

本模块由于高度的集成,所以需要使用的引脚只有6个。

引脚功能如下表所示:

表3GSM的引脚介绍

引脚名称描述功能

VCC/独立电源的正极接口

GND1接地独立电源的负极接口

EN输入*****的使能高电平接口

GND2输入*****的使能低电平接口

RXD输入TTL电平串行输入接口

TXD输出TTL电平串行输出接口(3)GSM模块的基本使用

本次毕业设计对于GSM模块的使用仅仅使用了它读取短信和发送短信的功能。

所以其他有关功能就不在说明了。

首先在使用GSM模块收发短信的时候需要写入本地的短信中心号以及接收方的手机号码。

由于本次使用的C52单片机没有设置文字输入功能,所以短信的内容也要预先设置好放在程序之中。

此部分的程序内容如下:

staticunsignedchar*SMS_Num=“\"+*************\"";//此处是淮安地区的短信中心号

staticunsignedchar*phone="\"183********\"";//接收方的手机号

staticunsignedchar*content="HELLOFROMGSM";//发送短信的内容此处使用固定的常量来定义这些基本数据,以便以后的程序调用。

在写入了这些基本信息之后就是GSM模块的一些基础程序例如引脚初始化、定时器0的初始化、清除串口缓存、查找字符串、发送指令、等待模块注册成功、设置为发送TEXT文本短信模式、发送短信等子程序。

在使用时需要使用一个发送函数,该发送函数部分如下:

voidSendSM(void)

{

Timer0Init();//初始化定时器

GPIO_config();

EA=1;//开中断

Uart1Init();//初始化串口,使用9600波特率

Wait_CREG();//等待模块注册成功

Set_Text_Mode();//设置短信为TEXT模式

Send_Text_Sms();//发送一条编好的短消息

while

(1)//进入空操作防止重复发送

{

;

}

}

这只是一个发送函数,在实际应用的时候不需要最后的while语句,或者将其替换为其他的内容。

在接收短信时,需要不停查询*****模块中接收到的短信内容,此时查询的子函数如下,并且利用该子函数写的读取的子函数程序如下:

u8Check_*****I_Msg()

{

u8temp=0;

if(strstr(Uart1_Buf,"+CMT")!

=NULL)//若缓存的字符串中包含“+CMT”表示有新短信

{

delay_ms(3);//等待数据全部接收完成

temp=Uart1_Buf;

returntemp;//返回接受到的数据

CLR_Buf1();

}

}

读取短信内容的子函数如下:

voidmain(void)

{

Timer0Init();//初始化定时器0

GPIO_config();

EA=1;//开总中断

Uart1Init();//初始化串口9600

Wait_CREG();//等待模块注册成功

Set_Text_Mode();//设置为TEXT模式

while

(1)

{

strstr(Check_*****I_Msg(),”xxxxx”);//检测其中的内容}

}

其中xxx的内容可以改变为自己想要的内容,strstr函数在检测到字符串2为字符串1的子函数时会返回出现的位置,如果没有检测到则返回NULL,可以使用该特性做短信内容的简单检测。

2.1.3*****显示屏

(1)概述

该显示屏的显示范围是16*02,所以得名1602显示屏。

它是一块工业级的字符显示屏,可以同屏显示32个字符。

每个字符之间有一定的间隔,这就导致

了该显示屏只能显示字符而不能很好的还原图形。

市场能买到的1602显示屏基本都采用的是HD*****液晶芯片,这与其他的液晶芯片基本相同,所以1602的代码能够应用于其他型号的液晶显示屏。

(2)引脚介绍

*****显示屏采用标准的16脚接口,其中引脚的功能如下所示:

表4*****显示屏的引脚介绍

引脚名称描述引脚功能

GND电源5V电源负极

VCC电源5V电源正极

V0输入对比度调整端

RS1选择数据0选择指令寄存器选择

RW1读操作0写操作读写信号线

EN1时读取信息,负跳变执行使能端

D0-D7输入数据/指令输入口

A电源背光电源正极

K电源背光电源负极(3)*****显示屏的基础使用

在使用*****屏的时候首先需要定义RS,RW,EN以及D0-D7的定义,以方便后面编程使用。

在写入了这些定义之后开始写写入命令函数和写入数据函数,这两个函数的程序如下:

voidwrite_com(u8com)

{

RS=0;//选择写入指令

P0=com;//D0-D7数据写入

delay(5);

EN=1;

delay(5);

EN=0;//负跳变执行

}

voidwrite_data(u8date)

{

RS=1;//选择写入数据

P0=date;//写入数据

delay(5);

EN=1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1