APP下载

基于ESP8266的智能家居灯光控制系统

2020-12-10李奕轩李鹏程肖永军夏亚辉周永婕

湖北工程学院学报 2020年6期
关键词:全彩温湿度灯光

李奕轩,李鹏程,肖永军,夏亚辉,周永婕

(湖北工程学院 物理与电子信息工程学院,湖北 孝感 432000)

近年来,伴随着社会的发展及生活节奏不断加快,繁忙的工作、父母的希望以及同辈之间的竞争已经使得当代人的生活越发沉重,生活压力不断提高,致使人们始终对良好休息环境的需求不断增强,越来越看重居家中的生活细节。因此,在家中实现便捷、安全和温馨的环境,同时可防犯家中外人入侵或能及时自动报警的需求越来越广泛[1-2]。现在电子行业的开发速度加快,琳琅满目的产品让人们应接不暇,将先进的技术和人们想要的温馨生活相结合,便促使了智能家居的产生,因而研究监测外人入侵以及家庭环境监测、灯光控制为一体的控制系统具有重要的意义及应用价值[3-7]。

本文尝试以ESP8266为核心,搭配温湿度传感器、人体热释电传感器、12位5050封装RGB彩灯以及电源模块,设计并制作了智能家居灯光控制系统,最终设计并制作了实物及WEB控制端,取得了较好的效果。

1 智能灯光控制系统硬件设计

智能家居灯光控制系统设计总体框图如图1所示,其主要由ESP8266开发板、人体热释电传感器、DHT11温湿度传感器、灯光驱动及RBG灯和WEB服务器构成。其中ESP8266开发板采用ESP-12F系列的Wifi驱动模块,主要完成对下(联系下层硬件资源,如温湿度传感器和人体热释电以及RGB灯光)和对上(WEB服务器)的控制及服务。人体热释电传感器为HC-SR501模块,其针对人体的检测半径大约是5 m,角度是120°,用于检测房间内是否有外人入侵。DHT11温湿度传感器为集成化一体式传感器,用于感测系统所在环境的温湿度信息。灯光驱动及RBG灯采用集成式的12位环形5050封装的RGB灯光组,内置WS2812D驱动,支持Arduino系统的直接开发与连接。WEB服务器可以采用独立开发,也可以采用一些公用的云平台,如机智云、阿里云、腾讯云等。主要负责与ESP8266网络模块进行通信,从而使用户在手机端或者网页端实时查看信息或者发送相关指令。

1.1 ESP8266开发板最小系统设计

SEP-12F系列(ESP8266的增强版)ESP8266的内部集成了Mode MCU,该MCU上有9个IO口(GPIO5、GPIO4、GPIO0、GPIO2、GPIO15、GPIO16、GPIO14、GPIO12和GPIO13),而且还带一路ADC转换引脚,以及串口通信引脚TXD和RXD,板载VCC和GND。板子上更是增加了SPI口的引出口,同时Arduino IDE为其开发了MCU库资源[8-10],通过串口连接到电脑端的Arduino软件,即可进行编程开发,从而完成通信以及底层硬件的控制,使得开发更为便捷容易。

图1 系统总体设计框图

图2 ESP8266及MCU最小系统原理图

基于ESP8266开发板的最小系统电路图如图2所示,在本次设计中,ESP8266既负责联网,与网络端的WEB或者手机进行通信,又利用自身的Node MCU控制着相关的硬件,如灯光系统(工作电压5 V,可接收3.3 V的PWM脉冲)、DHT11温湿度传感器(接3.3 V电压)以及人体热释电传感器(5 V工作电压,但是输出信号为3.3 V)[11-13]。

1.2 灯光模块控制电路设计

为方便进行灯光控制,采用了集成化一体的外控LED光源,即WS2812全彩LED,其内部集成了控制所需的接口电路,诸如电源稳压电路、内置恒流、高精度RC振荡等电路,LED的控制采用PWM方式。

1.2.1 WS2812D全彩LED驱动

如图3所示,全彩LED上集成了WS2812D驱动IC以及LED光源,其为一体式结构,共同集成在直径为5 mm的贴片灯珠内,构成一个相对完整的像素点(外部控制),其内部的任何一个像素点收到信号后均整形后再次输出。其采用四脚贴片封装,1脚为GND,2脚为DI,3脚为VCC,4脚为DO,外部控制信号从2脚DI输入,从4脚DO输出。由于内部进行了集成,其工作电压为5~7 V。其在实际应用中,往往不是一个单个的灯珠,而是多个串联进行应用。

图3 5050贴片全彩LED实物图及电路图

1)单株芯片的驱动控制。该芯片为全彩的LED芯片,内部由RGB三个控制二极管构成,需要24位数据来依次完成该芯片的像素控制,其中每种颜色使用8位二进制数,控制的顺序的GRB(绿色—红色—蓝色)。8位二进制数刚好可以表示255级变化,与实际使用的颜色想对应,以G颜色表示,若需要该种颜色的亮度越大,需要写入255,即表示的8位为11111111;若需要关闭该颜色,则写入0(也可以认为亮度最小),即00000000。根据三基色原理,若移入的24位值分别不同,可以形成不同亮度的RBG色彩,最终可以混色成为自然界中的任何一种颜色。当然若需要表示为白色,则24位值全部写入1即可,即每个成分均为255。

24位中的每一位的表示如图4所示,其要求如下:

逻辑低电平:0.35 μs的高+0.8 μs的低电平;

逻辑高电平:0.7 μs的高+0.6 μs的低电平。

按照对应的宽度拉高拉低IO口即可实现不同的“0”和“1”输出。

图4 芯片的逻辑低和高电平的表示

2)多颗芯片的驱动控制实现。当需要多颗芯片工作应用时,其实现的原理如图5所示,PWM信号从第一颗的LED的DI引脚输入,从其DO引脚输出,芯片内部自动移位输出(而且进行了波形整形),每移过一个芯片,其数据则减少24位。

图5 系统工作状态指示电路图

1.2.2 12位环形5050 LED灯光模块及接口电路设计

如图6所示,其为12位环形LED灯模块,即为全彩的WS2812D构成的RGB灯光模块,控制信号从LED1的2脚DI输入,从DO引脚输出,多个LED级联形成电路,同时在模块上配置了104贴片电容作为去耦电容。同时模块间也可以级联,其可以对下一级输出,也可以接收上一级的输入。在控制中,1脚接入PWM信号(由控制器产生),2脚为空,3脚接电源VCC(本例中为5 V电源),4脚接地。由于控制器模块的电源为3.3 V,其输出的PWM信号也为3.3 V,该电路可以

图6 12位环形LED灯模块内部电路图

兼容3.3 V和5 V脉冲,使得控制能够得以顺利实现。

2 智能灯光控制系统软件设计

ESP8266板载MCU软件执行总流程图如图7所示,MCU控制器上电初始化,主要为设置串口波特率、网络连接模式、初始化光带及亮度。之后进入循环LOOP任务。

在任务中,首先判断温湿度数据读取是否失败,若失败,延时1 s后继续判断,直到温湿度数据读取成功。随后读取并保存温湿度数据信息,并设置人体红外检测信息。之后将上述数据信息设置为既定格式,发送至服务器。完成后,等待服务器返回数据,若有数据返回,则数据的长度大于0;否则无数据返回,直接退出。若有数据返回,则打印输出接收到的数据,并同时进行相关的数据指令处理,之后进行软件喂狗,最后返回,继续执行LOOP循环。以此往复执行。

图7 板载MCU系统软件执行总流程图

3 测试及结果分析

3.1 测试实物制作及WEB端软件设计

根据上述设计焊接了实物,如图8所示,板子上存在ESP8266最小系统板、DHT11温湿度传感器、人体热释电传感器、12位5050封装的RGB彩灯模块。整个实物采用USB进行供电,同时设置了LM1117三端稳压电源,将输入的5 V电压转换为3.3 V输出,并经过电容平滑滤波后送给ESP8266的内部CPU使用。

同时基于spring下的JAVA编程语言设计了WEB端控制软件。首先登录设计的WEB端网页(118.89.31.89∶8899/rgb/user-lpgin.html),并输入输入用户名“admin”和六位密码,以及随机的验证码后,即可进入welcome界面(首页面),可以在页面中完成如下操作和测试实验:温湿度传感器数据读取、热释电传感器数据读取与测试以及智能灯光测试实验。

图8 系统硬件实物图

3.2 测试结果分析

1)温湿度传感器信息获取及热释电传感器测试。采用的测试方案为:不同的温度采用打火机炙烤,不同的湿度采用加湿器进行环境加湿。每组数据测量5次,计算平均值。通过将本设计的实物测试结果与市售的温湿度结果进行比对测试,以判断其测量准确性。具体的测试数据如表1所示,从表中可以看出,本系统测量的环境温湿度信息与市售的测量结果一致,说明本系统测量准确,能及时采集当前环境的温湿度信息以及是否有人信息,进而上传至WEB服务器端。

表1 系统测试实验数据对比表

2)灯光控制测试。灯光控制的操作主要是手工操作及现象观察,具体如下:默认状态下,灯光是关闭的;点击页面下方灯泡进行开灯操作,则页面会显示“开灯成功”。观察到实物的灯光打开,同时WEB页面上进一步显示彩色的灯泡,其下方的按钮则激活显示,诸如调节亮度进度条、更改颜色按钮和模式选择列表框。可点击更改灯光的颜色、调整亮度或者流水花色等功能,下位机实物硬件均会呈现相应的变化。

4 结论

经过实验测试,在WEB端进行操作,可以实时查看下位机系统端的环境温湿度信息,是否有人等信息,以及对灯光的操作。且操作成功后,无论是页面端还是实物端,均有相应的现象出现。因此,系统能准确接收WEB端传输的命令信息,也可实时向WEB端传输所需的反馈信息,实现了系统设计所需功能。

猜你喜欢

全彩温湿度灯光
今晚的灯光亮了天
来一场灯光派对
基于AT89C51的数字型蚕用温湿度计的设计
广 告 索 引
《意林》创刊16周年 《意林·全彩Color》创刊3周年 定制24K黄金松果壕送5000名意粉
基于温湿度控制的天气预测装置
基于DSP和μcos的温湿度检测系统的设计
PLC在计算机空调机房温湿度控制中的应用
绝对小孩
绝对小孩