ESP8266智能家居.docx
《ESP8266智能家居.docx》由会员分享,可在线阅读,更多相关《ESP8266智能家居.docx(27页珍藏版)》请在冰豆网上搜索。
![ESP8266智能家居.docx](https://file1.bdocx.com/fileroot1/2023-2/6/ea23f802-e761-44d2-bbee-96d8b293ff09/ea23f802-e761-44d2-bbee-96d8b293ff091.gif)
ESP8266智能家居
1绪论
1.1课题的背景及其意义
随着科学技术的快速发展,人们对生活品质的要求也不断提高,开始追求更好的生活方式。
因此,为了适应物质生活的需求,网络家电控制系统应运而生。
对于出门在外或者行动不便的残疾人,可以通过信息技术对家里的电器进行简单的控制。
达到无人在家,有人看守。
将给人们的生活带来极大的便利。
利用网络家电控制系统,用户可以通过电脑或者手机控制家里的电器设备。
例如:
回到家时,饭已煮好,房间温度合适,热水器中的水也已经加热,既舒服又方便。
另外,用户还能随时改变家用电器的工作状态,既节能又安全。
所以,本文通过网络来设计达到控制家用电器的目的。
智能家居是利用先进的计算机技术、嵌入式系统和网络通讯技术,将家庭中的各种设备(如照明系统、环境控制、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984真正的智能建筑出现以来,国外已经有将近30年的研究历史,而国内在这方面的研究相对较晚,从2003年才逐步应用于高端市场,而且标准不统一,如海信、海尔、清华大学等大家各自为营。
由于智能家居系统具有安全、方便、高效、快捷、智能化和个性化的独特魅力,使得智能家居的开发与建设成为21世纪科技发展的必然趋势。
随着全球对能源和环境的要求越来越高,而智能家居在节能方面的效果优势非常明显,因此具有非常广阔的市场前景。
随着社会发展,生产力水平提高。
传统建筑已经无法满足现代人的生活需求。
智能化家居已经逐步进入了现代人的生活中,本文将讨论现代智能化建筑发展现状,针对人们的真实需求,设计合理方案,让人与建筑之间有效互动,感受更加舒适更加人性化的现代生活。
*********************************************************************
*********************************************************************
*专抠专欢迎*
*业抠为您的*
*代群大加入*
*做2学*
*毕4生*
*设6服*
*3务*
*8解*
*2决*
*2问*
*3题*
**
***********************************************************************
***********************************************************************
1.2课题研究的内容及要求
本设计是基于51单片机的智能家居控制系统,经过大量查阅资料和研究,最终决定采STC89C52RC单片机作为主控芯片,ESP8266WIFI模块作为无线接收和发射模块,利用手机APP对家用电器进行控制。
即主要划分为三个模块,以STC89C52RC单片机的控制模块,WIFI作为无线接收和发射模块,手机APP作为终端。
研究的主要途径就是从这三个模块入手,手机终端作为信号的发出源,通过连接WIFI信号,利用相应的控制软件以WIFI网络信号为载体发送相关数据信号,WiFi模块主要的任务就是作为一个载体,将终端发送来的信号传递给单片机,以单片机为中心的控制模块就实时完成数据的处理,CPU处理之后将会输出相应的电平来实现台灯的亮灭和风扇的启动和停止等一系列智能家居的功能。
*********************************************************************
*********************************************************************
*专抠专欢迎*
*业抠为您的*
*代群大加入*
*做2学*
*毕4生*
*设6服*
*3务*
*8解*
*2决*
*2问*
*3题*
**
***********************************************************************
***********************************************************************
2元器件介绍
*********************************************************************
*********************************************************************
*专抠专欢迎*
*业抠为您的*
*代群大加入*
*做2学*
*毕4生*
*设6服*
*3务*
*8解*
*2决*
*2问*
*3题*
**
***********************************************************************
***********************************************************************
2.1单片机
单片机,是单片微型计算机它的简称,它主要是根据人们的实际需求来设计的。
单片机广泛的应用于工业控制领域,从当初刚起步的4位机一直到如今的高速单片机,已经发生了天翻地覆。
单片机主要的特点有,系统的结构比较简单,使用也是比较方便,实现了模块化,可靠性能高,可以工作一百万到一千万小时且不会有故障发生。
它的处理功能比较强大,同时也保证了速度。
使用的时候电压和功耗比较低,在一些便携式产品中大受喜爱,且控制能力特别强,具有强大的环境适应能力。
单片机根据目前的发展情况来看,大致可以分为以下几类:
通用、专用型,总线、非总线型,工控、家电型。
第一类是按照单片机使用的范围分类的。
通用型单片机指的是,它不是为了某种专用的途径而设计出来的,而专用型单片机则是有针对的,对于一类产品或者一个产品设计出来的。
第二类是按照单片机提不提供总线分类的。
总线型单片机一般来说设置的时候就有地址、数据、控制总线,并行的外围设备都是可以通过这样的一个串行口和它相连的。
非总线型单片机一般来说把所需要的外围设备还有外设的接口都已经集成在了一片,所以并不需要并行扩展总线,减少了封装的成本和芯片的体积。
不过很显然的,这些分类也并不是特别的严格,有些单片机则拥有上述好几项功能。
2.1.1单片机的引脚简介
ATC89C52单片机有4个并行的I/O口,P0,P1,P2,P3,包含有32个I/O引脚,每个引脚都可以单独编程控制。
如图2-1所示,即为ATC89C52的引脚图。
图2-1AT89C52的引脚图
ATC89C52单片机有4个并行的I/O口,P0,P1,P2,P3,包含有32个I/O引脚,每个引脚都可以单独编程控制,具体引脚如下:
P0口:
8位双向I/O口,引脚名称为P0.0至P0.7,
P1口:
8位双向I/O口,引脚名称为P1.0至P1.7,
P2口:
8位双向I/O口,引脚名称为P2.0至P2.7,
P3口:
8位双向I/O口,引脚名称为P3.0至P3.7。
主电源引脚GND接地和VCC正5V电源
单片机的时钟主要有两个晶振引脚负责,XTAL1和XTAL2,
复位脚是RST引脚,给予两个机器周期的高电平,就可以使得单片机复位。
存储器访问控制引脚EA非/VPP(31脚)为复用引脚。
EA非,正常工作的时候,该引脚为内外ROM选择端。
用户编写的程序可以存放在单片机的内部程序存储器中,也可以放在单片机的外部程序存储器,到底是使用内部程序存储器还是外部程序存储器由EA非/VPP引脚的电平决定。
当EA非/VPP引脚接的是正5V电压时,CPU可以访问内部程序存储器,反之则只是访问外部程序存储器。
VPP功能,在FalshROM编程期间,连接编程电源。
外部存储器控制信号引脚ALE/PROG(30脚)、PSEN非(29脚)。
ALE功能为地址锁存功能。
在单片机访问片外扩展的存储器的时候,因为P0口传送的是地址信号还是数据信号就由ALE引脚的信号来决定的,那么区分P0口传送的是地址信号还是数据信号就是由ALE引脚的信号来决定的。
在平时不访问片外扩展的存储器时,也就是不执行MOVX、MOVC类指令的时候,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它也可用作对于外部输出的脉冲或者是用于定时目的。
PROG非,在FlashROM编程期间,链接编程脉冲。
PSEN非引脚,外部ROM的读选通引脚。
用以产生访问外部ROM时的读选通信号。
当对于外部ROM取指令的时候,会自动在该脚输出一个负的脉冲,其他的情况下均为高电平。
PSEN非在每个机器周期有效两次。
不过这两个引脚只在系统扩展的时候使用。
2.1.2ATC89C52单片机最小系统
ATC89C52单片机最小硬件系统主要包含四个组成部分,分别是晶振电路、复位电路、电源电路以及EA非电路。
晶振电路也叫做时钟电路,主要给单片机提供时钟信号。
单片机的工作过程无非是取指令、译码交给寄存器,然后再指令与其发生交换。
各指令的微操作在时间上有着严格的次序,这种微操作的时间次序称为时序。
因此,单片机的时序就是CPU在执行指令的时候所需控制信号的时间顺序。
单片机的时钟信号是用来为芯片内部各种微操作提供时间基准。
电源电路莫过两块,第一模块是VDD,提供电压源;第二模块为GND,接地。
EA非脚电路,不用外部ROM时,EA非脚接高电平,要用到外部ROM的时候接低电平。
接高电平的时候,先读内部ROM然后再读ROM,接低电平时,读外部ROM
2.1.3单片机的中断系统
中断,它指的是一台计算机在执行某一段程序的时候,在此过程中,由于一些系统内在或者外在的原因,需要暂停手头上正在执行的任务,去处理其他更加重要的任务,然后在处理完毕之后再回去执行刚才没有执行完的任务这样的一个过程。
中断系统指的是能够实现中断这个功能的硬件电路还有软件程序。
所谓中断源,指的是引起中断的某个事件,在单片机中,一般是引起中断的设备、事件,或者说是发出了中断请求信号的来源。
中断源的中断分为内中断和外中断。
外部中断有外中断0和外中断1两种,分别是INT0非和INT1非,外部中断的触发方式有两种,分别是电平方式和脉冲方式,我们可以通过对定时/计数器的控制寄存器—TCON中IT0和IT1的状态设定,来选取自己需要的方式。
内部中断有定时器溢出中断源和串行口中断源两种,定时器溢出中断源是由内部的定时/计数器产生的。
通过对单片机内部的定时/计数器对内部的定时脉冲或者是T0、T1这两个引脚输入的外部脉冲进行技术,以此来实现定时或者是计数的功能。
2.2ESP8266EX芯片
ESP8266是⼀一个完整且自成体系的WiFi网络解决方案,能够搭载软件应用,或通过另⼀一个应用处理器卸载所有WiFi网络功能。
ESP8266在搭载应用并作为设备中唯⼀一的应用处理器时,能够直接从外接闪存中启动。
内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。
另外一种情况是,无线上网接入承担WiFi适配器的任务时,可以将其添加到任何基于微控制器的设计中,连接简单易行,只需通过SPI/SDIO接口或中央处理器AHB桥接口即可。
ESP8266强大的⽚片上处理和存储能力,使其可通过GPIO口集成传感器及其他应用的特定设备,实现了最低前期的开发和运行中最少地占用系统资源。
ESP8266高度片内集成,包括天线开关balun、电源管理转换器,因此仅需极少的外部电路,且包括前端模块在内的整个解决方案在设计时将所占PCB空间降到最低。
装有ESP8266的系统表现出来的领先特征有:
节能VoIP在睡眠/唤醒模式之间的快速切换、配合低功率操作的自适应无线电偏置、前端信号的处理功能、故障排除和无线电系统共存特性为消除蜂窝/蓝牙/DDR/LVDS/LCD干扰。
2.3继电器
继电器(Relay),也称电驿,是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
继电器线圈在电路中用一个长方框符号表示,如果继电器有两个线圈,就画两个并列的长方框。
同时在长方框内或长方框旁标上继电器的文字符号“J”。
继电器的触点有两种表示方法:
一种是把它们直接画在长方框一侧,这种表示法较为直观。
继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一。
继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、温度、压力、速度、光等)的感应机构(输入部分);有能对被控电路实现“通”、“断”控制的执行机构(输出部分);在继电器的输入部分和输出部分之间,还有对输入量进行耦合隔离,功能处理和对输出部分进行驱动的中间机构(驱动部分)。
作为控制元件,概括起来,继电器有如下几种作用:
1) 扩大控制范围:
例如,多触点继电器控制信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。
2) 放大:
例如,灵敏型继电器、中间继电器等,用一个很微小的控制量,可以控制很大功率的电路。
3)综合信号:
例如,当多个控制信号按规定的形式输入多绕组继电器时,经过比较综合,达到预定的控制效果。
4) 自动、遥控、监测:
例如,自动装置上的继电器与其他电器一起,可以组成程序控制线路,从而实现自动化运行。
2.4AMS1117稳压芯片
AMS1117系列稳压器有可调版与多种固定电压版,设计用于提供1A输出电流且工作压差可低至1V。
在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。
AMS1117的片上微调把基准电压调整到1.5%的误差以内,而且电流限制也得到了调整,以尽量减少因稳压器和电源电路超载而造成的压力。
AMS1117器件引脚上兼容其他三端SCSI稳压器,提供适用贴片安装的SOT-223,8引脚SOIC,和TO-252(DPAK)塑料封装。
AMS1117参数AMS1117基本参数输出电流(A)1输出电压(V)Adj,1.2,1.5,1.8,2.5,
2.85,3.3,5.0,*AMS1117其他特性初始误差(%)±1.5压差(V)1.3AMS1117封装类型SOT-223TO-252SO-8
三端口可调节或固定输出电压
1.2V,1.5V,1.8V,2.5V,2.85V,3.3V和5.0V输出电流1A工作压差低至1V线荷载调节:
0.2%Max.负载调节:
0.4%Max.可选SOT-223,TO-252和SOT-89封装。
3硬件电路设计
*********************************************************************
*********************************************************************
*专抠专欢迎*
*业抠为您的*
*代群大加入*
*做2学*
*毕4生*
*设6服*
*3务*
*8解*
*2决*
*2问*
*3题*
**
***********************************************************************
***********************************************************************
3.1系统总体设计
本设计是基于51单片机的智能家具控制系统,经过大量查阅资料和研究,最终决定采STC89C52RC单片机作为主控芯片,ESP8266WIFI模块作为无线接收和发射模块,利用手机APP对家用电器进行控制。
即主要划分为三个模块,以STC89C52RC单片机的控制模块,WIFI作为无线接收和发射模块,手机APP作为终端。
研究的主要途径就是从这三个模块入手,手机终端作为信号的发出源,通过连接WIFI信号,利用相应的控制软件以WIFI网络信号为载体发送相关数据信号,WiFi模块主要的任务就是作为一个载体,将终端发送来的信号传递给单片机,以单片机为中心的控制模块就实时完成数据的处理,CPU处理之后将会输出相应的电平来实现台灯的亮灭以及亮灭的时间以及风扇的开启和停止等一系列智能家居的功能。
其系统原理图如图3-1所示
图3-1系统原理图
3.2单片机控制模块设计
本设计的主控是STC89C52RC单片机,它的主要任务就是接受WIFI模块实时传递过来的信号,然后对数据进行处理的功能,主控的P0口无上拉电阻,因此自接上拉为10K电阻,晶振电路采用常规方法串联两个10pF的电容,晶振则是选用12MHz,串行口P1.4外接LED,串行口P1.4外接继电器1,用于驱动风扇,串行口P1.4外接继电器2,用于外接其他家用工具。
如图3-2所示,即为主控电路图
图3-2主控电路图
3.3WIFI模块电路设计
WIFI模块又名串口WIFI模块,属于物联网传输层,功能是将串口或TTL电平转为符合WIFI无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议以及TCP/IP协议。
传统的硬件设备嵌入WIFI模块可以直接利用WIFI联入互联网,是实现无线智能家居、M2M等物联网应用的重要组成部分。
下图是ESP8266WIFI模块的正反面图,如图3-4,3-5所示。
图3-4ESP8266WIFI模块正面图图3-5ESP8266WIFI模块反面图
ESP8266是一款超低功耗的模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和互联网的应用设计,可将用户的物理设备连接到WIFI无线网络上,进行互联网或局域网通信,实现联网功能。
ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。
3.2.1ESP8266WIFI模块引脚功能
下图是ESP8266WIFI模块的引脚图,如图3-6所示。
图3-6ESP8266WIFI模块引脚图
下表是ESP8266WIFI模块引脚说明,如表1所示。
表1ESP8266WIFI模块引脚表
PIN
Function
Description
1
URXD
1)UART_RXD,接收;
2)GeneralPurposeInput/Output:
GPIO3;
2
UTXD
1)UART_TXD,发送;
2)GeneralPurposeInput/Output:
GPIO1;
3)开机时禁止下拉;
3
RESET(GPIO16)
外部Reset信号,低电平复位,高电平工作(默认高);
4
GND
GND
5
VCC
3.3V,模块供电;
6
GPIO0
1)默认WIFIStatus:
WIFI工作状态指示灯控制信号;
2)工作模式选择:
悬空:
FlashBoot,工作模式;
下拉:
UARTDownload,下载模式;
7
CH_PD
1)高电平工作;
2)低电平模块供电关掉;
8
GPIO2
3)开机上电时必须为高电平,禁止硬件下拉;
4)内部默认已拉高
ESP8266WiFi模块电路原理图如图3-7所示
图3-7ESP8266WiFi模块电路原理图
4系统程序设计
*********************************************************************
*********************************************************************
*专抠专欢迎*
*业抠为您的*
*代群大加入*
*做2学*
*毕4生*
*设6服*
*3务*
*8解*
*2决*
*2问*
*3题*
**
***********************************************************************
***********************************************************************
4.1系统程序简介
本系统作为一个整体,功能是由软硬件共同完成的,不可分割。
硬件结构一旦确定,软件需要在硬件基础上构筑。
软件是整个设计的灵魂核心,硬件是整个设计的肉体。
为了易于编程调试我们采取模块化的程序设计减少了设计的故障率。
应用的软件及其介绍如下:
1、eclipse
Eclipse是一个多功能的集成开发环境,可以安装各种插件,主要用于java语言开发[8]。
2、KEIL软件
KEIL是一个C语言开发编译的系统[5]。
可以用于实现单片机应用的各类编程实现,具有很强的可读和结构性,方便编程人员的使用和学习。
3、MicrosoftVisualStudio
VS是一个相对完善的开发工具集,包含许多开发工具,C#只是其中之一。
5、STC下载软件
STC单片机串口可以仅使用在线烧写程序,非常方便完成
a、安装STC-ISP软件。
b、启动软件。
c、STC89C52RC单片机的选型(还有其他型号,这取决于你的选择,你可以仔细看看型芯片上的模型)
d、选择要烧写的文件,点击打开程序文件
e、点击下载/编译,等待下载完成。
本设计是通过单片机串口不断接收wifi模块传过来的命令,通过手机终端来实现控制。
因此在程序中我们需要涉及到串口、定时器、I/O口的控制使用。
4.2单片机程序流程图
4.2.1主程序流程图
系统主程序首先是初始化程序,主要是串口的初始化。
然后在主程序中不断扫描和执行智能终端发送过来的指令,等待串口中断执行命令。
单片机程序总设计流程如下图4-1所示。
4.2.2串口中断子函数
单片机和WiFi模块之间通过串口来进行通讯。
初始化程序初始化串口之后,打开串口中断。
当有数据传输过来之后进入串口中断。
进入中断后关掉中断,避免数据信号重复干扰,读取数据。
在主函数中不断的扫描接收到的数据并执行。
具体流程图如下图4-2所示。
4.3Andriod软件设计
4.3.1Socket通信简介
Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。
两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。
而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。
那么,什么是socket?
Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信。
通过建立socket连接,可为通信双方的数据传输传提供通道。