基于wifi的智能家居系统设计.docx
《基于wifi的智能家居系统设计.docx》由会员分享,可在线阅读,更多相关《基于wifi的智能家居系统设计.docx(25页珍藏版)》请在冰豆网上搜索。
基于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联盟所持有。
目的是改善基于IEEE802.11标准的无线网路产品之间的互通性。
有人把使用IEEE802.11系列协议的局域网就称为无线保真。
甚至把无线保真等同于无线网际网路(Wi-Fi是WLAN的重要组成部分)
一般架设无线网络的基本配备就是无线网卡及一台AP,如此便能以无线的模式,配合既有的有线架构来分享网络资源,架设费用和复杂程度远远低于传统的有线网络。
如果只是几台电脑的对等网,也可不要AP,只需要每台电脑配备无线网卡。
AP为AccessPoint简称,一般翻译为“无线访问接入点”,或“桥接器”。
它主要在媒体存取控制层MAC中扮演无线工作站及有线局域网络的桥梁。
有了AP,就像一般有线网络的Hub一般,无线工作站可以快速且轻易地与网络相连。
特别是对于宽带的使用,无线保真更显优势,有线宽带网络(ADSL、小区LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可。
普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。
图2WiFi连接结构图
3.系统硬件组成
本系统由核心控制板、WiFi联网模块、路由器、服务器(PC)、四路继电器电路、DS18B20温度传感器等组成一个简化的智能家居模型,动手实现基于WiFi技术的智能家居的模型,体验科技带来的便利,感受电子世界的美丽。
硬件结构框图如图3所示。
图3硬件结构框图
3.1核心控制板
(1)核心实训板如图4所示。
图4核心控制板图
(2)STC89C52
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
主要特性:
a)8K字节程序存储空间;
b)512字节数据存储空间;
c)带4K字节EEPROM存储空间;
d)可直接使用串口下载。
(3)UART接口
通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作,是一种异步收发传输器,是电脑硬件的一部分。
将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,通常集成于其他通讯接口的连结上。
计算机部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:
CPU先把准备写入串行设备的数据放到UART的寄存器(临时存块)中,再通过FIFO(FirstInputFirstOutput,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。
它是用于控制计算机与串行设备的芯片。
作为接口的一部分,UART还提供以下功能:
将由计算机部传送过来的并行数据转换为输出的串行数据流。
将计算机外部来的串行数据转换为字节,供计算机部并行数据的器件使用。
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。
可以处理计算机与外部串行设备的同步管理问题。
3.2以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模块的所需电平电压为3.3V,而核心板的供给电压为TTL的高电平电压5V。
因而借助电平转换模块将5V电压转换为3.3V电压。
其中接线方式为接线如图9所示。
具体如下:
①实训板电源连接电平转换模块的输入端
实训板+5V—电平转换模块VIN
实训板GND—电平转换模块GND
②Wifi模块连接电平转换模块的输出端
电平转换模块VOUT—Wifi模块第2脚
电平转换模块GND—Wifi模块第1脚
③Wifi模块连接到PC串口(通过实训板的串口转USB电路)
Wifi模块第5脚—实训板P3.0
Wifi模块第6脚—实训板P3.1
给系统供电(打开实训板电源),等待大约3-6秒,wifi模块启动完成。
图10接线方式
(4)相关AT命令
AT+UART=9600,8,1,None,NFC//设置/查询串口通信参数
AT+MID//查询模块ID(默认USR-WIFI232-T)
AT+WRMID=USR-WIFI232-TYX//设置模块ID
AP+TCPserver通信模式
AT+LANN=10.10.100.254,255.255.255.0//设置/查询AP模式下的网络参数
AT+WAP=11BGN,USR-WIFI232-TXY,CH1//设置/查询AP的WIFI参数
STA+TCPClient通信模式
AT+WSSSID=Tenda_YX//设置/查询关联AP的SSID
AT+WSKEY=WPA2PSK,AES,12345678//设置/查询STA的加密参数
AT+WANN=static,192.168.0.XX,255.255.255.0,192.168.0.1//设置/查询STA的网络参数设置
AT+NETP=TCP,Client,8899,192.168.0.100//设置/查询SockedA连接的服务器的端口和IP
AT+WMODE=APSTA最后将通信模式修改为AP+STA模式TCP
(5)测试软件
USR-WIFI232-SetupV1.2.0,串口调试助手,有人网络助手。
其中串口调试助手的界面如图11所示。
图11
(6)测试过程
a)AT命令修改模块参数
打开USR-WIFI232-SetupV1.2.0,设置实际的串口号,波特率设置为115200,单击“打开串口”按钮。
①发送“AT+MID”,查询当前模块名称。
②发送“AT+WRMID=USR-WIFI232-TXX”修改模块名为USR-WIFI232-T08
③发送“AT+UART”,查询当前串口参数(出厂默认为AT+UART=115200,8,1,None,NFC)。
④发送“AT+UART=9600,8,1,None,NFC”,修改串口波特率位9600。
⑤模块重启,点击Alt+Z。
USR-WIFI232-SetupV1.2.界面如图12所示。
图12USR-WIFI232-SetupV1.2.界面
b)手机WiFi控制单片机
①Wifi模块连接到单片机串口,启动模块。
Wifi模块第5脚—实训板P3.1/TXD
Wifi模块第6脚—实训板P3.0/RXD
②安装手机软件“USR-TCP-Test(有人网络助手)”
③手机WLAN搜索WiFi设备AP,连接WiFi模块。
④打开手机软件“USR-TCP-Test(有人网络助手)”,以客户端形式连接wifi模块IP(默认为10.10.100.254)。
⑤手机与单片机通过wifi模块进行无线通讯,即发生一些数据指令。
c)模块设置为APSTA+TCPServer方式
①给WiFi模块供电(借助电平转换模块和实训板),启动WiFi模块。
②电脑连接wifi模块AP(需要PC具有wifi连接功能)。
Ⅰ.搜索WiFi热点名为USR-WIFI232-T08即是模块的默认网络名称(SSID)。
Ⅱ.加入网络,PC自动获取IP(WIFI模块支持DHCPServer功能并默认开启)。
查看PC获得的IP,“开始——>运行——>输入‘cmd’——>输入‘ipconfig’+回车”。
Ⅲ.在浏览器输入默认IP:
10.10.100.254.用户名和密码都是admin。
Ⅳ.进入网页页面后,即可以查看或者设置参数。
设置完成后点击重启栏中的确认按钮。
得到如图13
图13系统信息设置
(4)手机或平板电脑控制端
用手机或者电脑打开WLAN连接,搜索名为USR-WIFI232-T08的WiFi热点,进行连接如图14.1所示。
打开有人网络助手软件,点击tcpclilent栏,增加连接,再进行连接,如图14.2所示。
再通过有人手机助手发送数据到电脑串口,如图14.3所示。
图14.1连接WLAN图14.2tcp增加连接图14.3tcp发送数据
3.3基于单片机的智能控制模块
(1)四路继电器
继电器(relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。
它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。
通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
自动装置上的继电器与其他电器一起,可以组成程序控制线路,从而实现自动化运行。
单片机开发板4路继电器扩展板支持AVR_51_PIC,四路继电器输出模块,继电器输出触点最大250V10A。
输入IN1、IN2、IN3、IN4信号线低电平有效。
VCC,GND电源输入端,可以继电器单独供电。
继电器电源输入端JD-VCC。
图15四路继电器电路原理图
(2)继电器硬件连线
图16继电器硬件连线
3.4基于单片机的采集模块
(1)DS18B20温度传感器简介
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20的元件图如图17所示。
技术性能描述:
①独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
②测温围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)1℃
③支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定
④工作电源:
3.0~5.5V/DC(可以数据线寄生电源)
⑤在使用中不需要任何外围元件
⑥测量结果以9~12位数字量方式串行传送
⑦不锈钢保护管直径Φ6图17
⑧适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温
⑨标准安装螺纹M10X1,M12X1.5,G1/2”任选
⑩PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
工作原理:
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
(2)硬件连线
图18DS18B20硬件连线
4.系统软件及仿真
4.1基于单片机的智能控制程序设计
继电器控制流程图如图19所示。
通过传感器接收的电信号经过处理放大以后为我们所用,经过与阈值进行比较后,即设置标志位,当满足预定要求,比如温度达到一定值时,继电器闭合,控制电风扇进行运作,当温度不满足此要求时,继电器断开,电风扇运作停止。
其他电子元器件也可以用类似的方式进行智能控制。
如图20所示为继电器仿真图,其中LED表示电子元器件。
图19智能控制程序流程图
图20继电器仿真图
4.2基于单片机的采集模块程序设计
进行DS18B20的初始化,通过DS18B20进行数据采集温度数据,然后进行数据的传输与处理,将其显示在显示屏上。
图21温度采集模块程序流程图
5.系统集成与测试结果
系统由以WiFi模块为核心的无线网络、基于单片机的智能控制模块、基于单片机的采集模块三部分组成,通过物联网技术将家中的各种设备连接到一起,提供家电控制、室外遥控、防盗报警、环境监测以及可编程定时控制等多种功能和手段。
包装的系统图如图23所示。
图23包装的系统图
附录:
源代码:
#include"reg51.h"
sbitDQ=P3^7;//DS18b20数据端
//继电器控制
sbitSW1=P2^4;
sbitSW2=P2^5;
sbitSW3=P2^6;
sbitSW4=P2^7;
//数码管控制
sbitLED1=P2^0;
sbitLED2=P2^1;
sbitLED3=P2^2;
sbitLED4=P2^3;
//数据接收标准及变量
unsignedcharmyReg;
bitread_flag;
//蜂鸣器
sbitBT=P3^6;
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;
Delay(4);
}
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;
unsignedcharData_L=0;
unsignedcharnum=0;
Init_DS18B20();
WriteOneChar(0xCC);//跳过读序号列号的操作
WriteOneChar(0x44);//启动温度转换