基于wifi的智能家居系统.docx
《基于wifi的智能家居系统.docx》由会员分享,可在线阅读,更多相关《基于wifi的智能家居系统.docx(16页珍藏版)》请在冰豆网上搜索。
![基于wifi的智能家居系统.docx](https://file1.bdocx.com/fileroot1/2023-1/24/e86c523d-ba13-45d6-a3be-f93f1f91f01a/e86c523d-ba13-45d6-a3be-f93f1f91f01a1.gif)
基于wifi的智能家居系统
基于wifi的智能家居系统
设
计
报
告
组员:
组号:
指导教师:
1.智能家居系统简介
随着社会的发展,人民生活水平的提高,越来越多的人感受到智能家居系统方便,智能家居(英文:
smarthome,homeautomation)是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术
将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。
智能家居的概念起源很早,但一直未有具体的建筑案例出现,直到1984年
美国联合科技公司(UnitedTechnologiesBuildingSystem)将建筑设备信息
化、整合化概念应用于美国康涅狄格州(Connecticut)哈特佛市(Hartford)的CityPlaceBuilding时,才出现了首栋的“智能型建筑”,从此揭开了全世界争
相建造智能家居派的序幕。
智能家居系统的功能如下所示:
(1)始终在线的网络服务,与互联网随时相连,为在家办公提供了方便条件。
(2)安全防范:
智能安防可以实时监控非法闯入、火灾、煤气泄露、紧急呼救的发生。
一旦出现警情,系统会自动向中心发出报警信息,同时启动相关电器进入应急联动状态,从而实现主动防范。
(3)家电的智能控制和远程控制,如对灯光照明进行场景设置和远程控制、电器的自动控制和远程控制等。
(4)交互式智能控制:
可以通过语音识别技术实现智能家电的声控功能;通过各种主动式传感器(如温度、声音、动作等)实现智能家居的主动性动作响应。
(5)环境自动控制。
如家庭中央空调系统。
(6)提供全方位家庭娱乐。
如家庭影院系统和家庭中央背景音乐系统。
(7)现代化的厨卫环境。
主要指整体厨房和整体卫浴。
(8)家庭信息服务:
管理家庭信息及与小区物业管理公司联系。
(9)家庭理财服务。
通过网络完成理财和消费服务。
(10)自动维护功能:
智能信息家电可以通过服务器直接从制造商的服务网
站上自动下载、更新驱动程序和诊断程序,实现智能化的故障自诊断、新功能自动扩展。
图1智能家居系统原理图
2.WiFi技术简介
Wi-Fi是一种可以将个人电脑、手持设备(如pad、手机)等终端以无线方
式互相连接的技术,事实上它是一个高频无线电信号。
[1]无线保真是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。
目的是改善基于IEEE标准的无线网路产品之间的互通性。
有人把使用IEEE系列协议的局域网就称为无线保真。
甚至把无线保真等同于无线网际网路(Wi-Fi是WLAN勺重要组成部分)
一般架设无线网络的基本配备就是无线网卡及一台AP,如此便能以无线的模
式,配合既有的有线架构来分享网络资源,架设费用和复杂程度远远低于传统的有线网络。
如果只是几台电脑的对等网,也可不要AP,只需要每台电脑配备无
线网卡。
AP为AccessPoint简称,一般翻译为“无线访问接入点”,或“桥接器”。
它主要在媒体存取控制层MAC中扮演无线工作站及有线局域网络的桥梁。
有了AP,就像一般有线网络的Hub—般,无线工作站可以快速且轻易地与网络相连。
特别是对于宽带的使用,无线保真更显优势,有线宽带网络(ADSL小区
LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可。
普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。
图2WiFi连接结构图
3.系统硬件组成
本系统由核心控制板、WiFi联网模块、路由器、服务器(PC)、四路继电器电路、DS18B20温度传感器等组成一个简化的智能家居模型,动手实现基于WiFi技术的智能家居的模型,体验科技带来的便利,感受电子世界的美丽。
硬件结构框图如图3所示。
图3硬件结构框图
核心控制板
(1)核心实训板如图4所示。
图4核心控制板图
⑵STC89C52
STC89C5是STC公司生产的一种低功耗、高性能CMOS位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
标准功能:
8k字节Flash,512字节RAM32位I/O口线,看门狗定时器,内置4KBEEPRO,MMAX81(复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz6T/12T可选。
主要特性:
a)8K字节程序存储空间;
b)512字节数据存储空间;
c)内带4K字节EEPR0存储空间;
d)可直接使用串口下载。
(3)UART接口
通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作,是一种异步收发传输器,是电脑硬件的一部分。
将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,通常集成于其他通讯接口的连结上。
计算机内部采用并行数据,不能直接把数据发到Modem必须经过UART整
理才能进行异步传输,其过程为:
CPU先把准备写入串行设备的数据放到UART
的寄存器(临时内存块)中,再通过FIFO(FirstInputFirstOutput,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传
送到Modem
它是用于控制计算机与串行设备的芯片。
作为接口的一部分,UART还提供
以下功能:
将由计算机内部传送过来的并行数据转换为输出的串行数据流。
将计
算机外部来的串行数据转换为字节,供计算机内部并行数据的器件使用。
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。
可以处理计算机与外部串行设备的同步管理问题。
以WiFi模块为核心的无线网络
一般架设无线网络的基本配备就是无线网卡及一台AP,如此便能以无线的模式,配合既有的有线架构来分享网络资源,架设费用和复杂程度远远低于传统的有线网络。
如果只是几台电脑的对等网,也可不要AP,只需要每台电脑配备
无线网卡。
AP为AccessPoint简称,一般翻译为“无线访问接入点”,或“桥接器”。
它主要在媒体存取控制层MAC中扮演无线工作站及有线局域网络的桥梁。
有了AP,就像一般有线网络的Hub—般,无线工作站可以快速且轻易地与网络相连。
特别是对于宽带的使用,无线保真更显优势,有线宽带网络(ADSL、小区
LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可。
普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。
如图4所示为以WiFi为核心的无线网络。
图5以WiFi为核心的无线网络
(1)服务器
本文是一台PC机,作为一个开放的教学模型,也能使用其他嵌入式核心系统板来代替和扩展,仅要将其设置为服务器即可。
(2)路由器
路由器(Router),又称网关设备(Gateway)是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
其是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。
当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。
因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。
路由器如图5所示。
图6路由器
(3)WiFi模块
a)WiFi模块引脚分步
WiFi模块引脚分步图如图6所示。
各个引脚的功能描述详情如图7所示
图7WiFi模块引脚分步图
图8WiFi模块引脚功能详情
b)电平转换模块
电平转换模块如图8所示。
图9电平转换模块
由于WiFi模块的所需电平电压为,而核心板的供给电压为TTL的高电平电压5V。
因而借助电平转换模块将5V电压转换为电压。
其中接线方式为接线如图9所示。
具体如下:
1实训板电源连接电平转换模块的输入端
实训板+5V-电平转换模块VIN
实训板GN—电平转换模块GND
2Wifi模块连接电平转换模块的输出端
电平转换模块VOUT—Wifi模块第2脚
电平转换模块GND—Wifi模块第1脚
3Wifi模块连接到PC串口(通过实训板的串口转USB电路)
Wifi模块第5脚—实训板
Wifi模块第6脚—实训板
给系统供电(打开实训板电源),等待大约3-6秒,wifi模块启动完成。
图10接线方式
(4)相关AT命令
AT+UART=9600,8,1,None,NFC面如图12所示。
图12USR-WIFI232-Setup.界面
b)手机WiFi控制单片机
1Wifi模块连接到单片机串口,启动模块。
Wifi模块第5脚—实训板TXD
Wifi模块第6脚—实训板RXD
2安装手机软件“USR-TCP-Test(有人网络助手)”
3手机WLAN搜索WiFi设备AP,连接WiFi模块。
4打开手机软件“USRTCP-Test(有人网络助手)”,以客户端形式连接wifi模块IP(默认为)。
5手机与单片机通过wifi模块进行无线通讯,即发生一些数据指令。
c)模块设置为APSTA+TCPServer方式
1给WiFi模块供电(借助电平转换模块和实训板),启动WiFi模块。
2电脑连接wifi模块AP(需要PC具有wifi连接功能)。
I.搜索WiFi热点名为USR-WIFI232-T08即是模块的默认网络名称(SSID)。
II.加入网络,PCI动获取IP(WIFI模块支持DHCPServer功能并默认开启)。
查看PC获得的IP,“开始>运行>输入‘cmd>输入‘ipconfig
+回车”。
川.在浏览器输入默认IP:
用户名和密码都是admin。
IV.进入网页页面后,即可以查看或者设置参数。
设置完成后点击重启栏中的确认按钮。
得到如图13
图13系统信息设置
(4)手机或平板电脑控制端
用手机或者电脑打开WLANS接,搜索名为USR-WIFI232-T08的WiFi热点,进行连接如图所示。
打开有人网络助手软件,点击tcpclilent栏,增加连接,再进行连接,如图所示。
再通过有人手机助手发送数据到电脑串口,如图所示。
基于单片机的智能控制模块
⑴四路继电器
继电器(relay)是一种电控制器件,是当输入量(激励量)的变化达到规定
要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。
它具有控
制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。
通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自
动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
自动装置上的继电器与其他电器一起,可以组成程序控制线路,从而实现自动化运行。
单片机开发板4路继电器扩展板支持AVR_51_PIC四路继电器输出模块,继电器输出触点最大250V10A。
输入IN1、IN2、IN3、IN4信号线低电平有效。
VCCGND电源输入端,可以继电器单独供电。
继电器电源输入端JD-VCC
图15四路继电器电路原理图
(2)继电器硬件连线
图16继电器硬件连线
基于单片机的采集模块
(1)DS18B20温度传感器简介
DS18B2C数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877LTM8874等
等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B2C可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20的元件图如图17所示。
技术性能描述:
1独特的单线接口方式,DS18B2C在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
2测温范围—55E〜+125C,固有测温误差(注意,不是分辨率,这里之前是错误的)1°C
3支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定
4工作电源:
~DC(可以数据线寄生电源)
5在使用中不需要任何外围元件
6测量结果以9~12位数字量方式串行传送
7不锈钢保护管直径①6图17
8适用于DN15~25,DN40~DN25各种介质工业管道和狭小空间设备测温
9标准安装螺纹M10X1,,G1/2”任选
10PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
工作原理:
DS18B20勺读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms高温度系数
晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55C所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄
存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于
补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
(2)硬件连线
图18DS18B20硬件连线
4.系统软件及仿真
基于单片机的智能控制程序设计
继电器控制流程图如图19所示。
通过传感器接收的电信号经过处理放大以
后为我们所用,经过与阈值进行比较后,即设置标志位,当满足预定要求,比如温度达到一定值时,继电器闭合,控制电风扇进行运作,当温度不满足此要求时,继电器断开,电风扇运作停止。
其他电子元器件也可以用类似的方式进行智能控制。
如图20所示为继电器仿真图,其中LED表示电子元器件。
开始
结束
图19智能控制程序流程图
图20继电器仿真图
基于单片机的采集模块程序设计
进行DS18B20的初始化,通过DS18B2C进行数据采集温度数据,然后进行数据的传输与处理,将其显示在显示屏上。
图21温度采集模块程序流程图
5.系统集成与测试结果
系统由以WiFi模块为核心的无线网络、基于单片机的智能控制模块、基于单片机的采集模块三部分组成,通过物联网技术将家中的各种设备连接到一起,提供家电控制、室内外遥控、防盗报警、环境监测以及可编程定时控制等多种功能和手段。
包装的系统图如图23所示。
图23包装的系统图
附录:
源代码:
#include""
sbitDQ=P3A7;〃DS18b20数据端
//继电器控制
sbitSW1=P2A4;
sbitSW2=P2A5;
sbitSW3=P2A6;
sbitSW4=P2A7;
//数码管控制
sbitLED1=P2A0;
sbitLED2=P2A1;
sbitLED3=P2A2;
sbitLED4=P2A3;
//数据接收标准及变量unsignedcharmyReg;
bitread_flag;
//蜂鸣器
sbitBT=P3A6;
unsignedchartx[10]={0,0,0x2E,0,0,0,0,0xDF,0x43,0x0A};unsignedcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
/************************************************************************voidDelay(intnum)//延时函数
{while(num--);
}
/************************************************************************voidDelaynms(unsignedintdi)//延时
{unsignedintda,db;for(da=0;dafor(db=0;db<100;db++);
}
*********************************************************************
//串口发送函数
voidTX(unsignedcharTX_char){
SBUF=TX_char;
while(!
TI);
TI=0;
}
//串口接收中断函数
voidserial()interrupt4using3{
if(RI)
myReg=SBUF;
RI=0;read_flag=1;
}
}
//232初始化
voidInt_232(void)
{TMOD=0x20;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
IE|=0x90;
TR1=1;
TI=1;
}/*************************************************************************/voidInit_DS18B20(void)//初始化ds1820
{
unsignedcharx=0;
DQ=1;//DQ复位
Delay(8);//稍做延时
DQ=0;//单片机将DQ拉低
Delay(80);//精确延时大于480us
DQ=1;//拉高总线
Delay(14);
x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败
Delay(20);
}/************************************************************************/unsignedcharReadOneChar(void)//读一个字节
{
unsignedchari=0;unsignedchardat=0;
for(i=8;i>0;i--)
{
DQ=0;//给脉冲信号
dat>>=1;
DQ=1;//给脉冲信号
if(DQ)dat|=0x80;
}return(dat);
}
*********************************************************************
voidWriteOneChar(unsignedchardat)//写一个字节{
unsignedchari=0;
for(i=8;i>0;i--)
{
DQ=0;
DQ=dat&0x01;
Delay
(2);
DQ=1;dat>>=1;
}}
/***********************************************************************voidReadTemperature(void)//读取温度{
unsignedchara=0;
unsignedcharb=0;
//Delay(5000);a=ReadOneChar();//读低8位b=ReadOneChar();//读高8位tx[0]=(a/16+b*16)/10;//整数部分
tx[1]=(a/16+b*16)%10;Data_L=a&0X0F;for(num=3;num<7;num++){
Data_L=Data_L*10;
tx[num]=Data_L/16;
Data_L=Data_L%16;
/************************************************************************
//显示温度
voidDisplay_SMG(void)
{
unsignedchara;
for(a=0;a<=50;a++)
{
P0=table[tx[0]];
LED1=0;
Delaynms(5);
LED1=1;
P0=(table[tx[1]])&0x7f;
LED2=0;
Delaynms(5);
LED2=1;
P0=table[tx[3]];
LED3=0;
Delaynms(5);
LED3=1;
P0=table[tx[4]];
LED4=0;
Delaynms(5);
LED4=1;
}
}
/************************************************************************
//接收到的命令执行函数
voidcommunication(unsignedcharmyReg)
{
switch(myReg)
{
case0x31:
SW1=0;
break;
case0x32:
SW2=0;
break;
case0x33:
SW3=0;break;
case0x34:
SW4=0;break;
case0x61:
SW1=1;break;
case0x62:
SW2=1;break;
case0x63:
SW3=1;break;
case0x64:
SW4=1;break;
}
}
voidmain(void)
{
Int_232();
P1=0xff;
P2=0xff;
read_flag=0;
BT=1;
while
(1)
{
ReadTemperature();//读取温度
TX(tx[0]+0x30);
TX(tx[1]+0x30);
TX(tx[2]);//点