【物联网项目】基于ESP8266的家庭灯光与火情智能监测系统——文末完整工程资料源码

目录

系统介绍 

硬件配置

硬件连接图

系统分析与总体设计

系统硬件设计

ESP8266 WIFI开发板

人体红外传感器模块

光敏电阻传感器模块

火焰传感器模块

可燃气体传感器模块

温湿度传感器模块

OLED显示屏模块

系统软件设计

温湿度检测模块

报警模块

OLED显示模块

Blinker远程控制模块

 按键控制模块

灯光控制模块

手动模式灯光控制模块

自动模式灯光控制模块

系统测试

Blinker远程控制功能

报警功能

可燃气体危险报警

火焰危险报警

OLED显示功能

温湿度检测功能

模式切换功能

灯光控制功能

手动模式灯光控制功能

自动模式灯光控制功能

结束语

系统源码及答辩PPT

程序运行说明


系统介绍 

        该系统是在家庭灯光与火情智能监测系统的基础上,进行智能化控制监测的设计与开发。 系统是以单片机ESP8266 WIFI开发板为主控核心,实现对各个主要功能模块的控制。 主要模块如HC-SR501人体红外传感器模块、光敏电阻传感器模块、火焰传感器模块、LD3320语音识别模块、DHT11温湿度传感器模块等。使用Arduino开发软件进行烧录程序,以实现家庭环境的智能化控制。

硬件配置

ESP8266 WIFI开发板一个,HC-SR501人体红外传感器模块一个,光敏电阻传感器模块一个,可燃气体传感器模块一个,火焰传感器模块一个、语音识别模块一个,温湿度传感器模块一个,LED显示屏一个,按键模块一个,面包板一个,USB接口的电源线一个,杜邦线若干。

硬件连接图

博主专注于嵌入式领域,有任何使用问题,欢迎随时与博主沟通 

系统分析与总体设计

家庭灯光与火情智能监测系统是社会发展和技术创新的的必然产物,家庭灯光与火情智能监测系统是针对与传统灯光控制与火情监测而说的,传统灯光控制只是只为人们提供了照明的基础,然而,家庭灯光与火情智能监测系统是根据传统灯光控制系统的不足进行创新设计的。

家庭灯光与火情智能监测系统能够为使用者带来舒适的生活工作环境,并且还起到节电的功效。和传统的单一的灯光控制比较,家庭灯光与火情智能监测系统具备低功耗、成本低、功能丰富、便于管理操作等优势。

ESP8266 WIFI开发板担任家庭灯光与火情智能监测系统的主控角色,完成代码程序的烧录工作,除此之外,ESP8266 WIFI开发板还自带了WIFI模块,用来使系统经过网络与手机端的Blinker进行通信连接,并使各传感器与ESP8266 WIFI开发板进行接入通信,并绘制系统整体结构图,如图1所示。

图1 系统总体结构图

将系统分为如下三个层面。

(1)感知层

在家庭灯光与火情智能监测系统设计流程的整个过程中,感知层是与外界通讯的关键。感知层设有HC-SR501人体红外传感器、光敏电阻传感器、MQ-9可燃气体传感器、火焰传感器及DHT11温湿度传感器,收集数据信息及处理所感知的信号,然后传送至应用层。

(2)网络层

网络层主要是通过ESP8266 WIFI开发板的WIFI模块进行连接互联网,将各项数据信息传输到手机端的Blinker上面,进行对家庭环境进行监控以及各项数据的显示与监测。

(3)应用层

传感器将采集到的信息传递给ESP8266 WIFI开发板进行处理分析后,通过调用相应的程序,在OLED显示屏以及Blinker上进行显示,Blinker与按键模块通过发送命令,从而调用相应程序进行对家庭环境的监控以及系统模式的转换。本设计有以下几个应用功能:如果发现火焰以及可燃气体将会进行红灯闪烁报警并上传至OLED显示屏和Blinker界面;按键进行手动模式与自动模式的切换;人体红外传感器、光敏电阻传感器和语音识别模块进行灯光控制;温湿度传感器对环境温湿度进行检测。

本设计意在设计一款家庭灯光与火情智能监测系统,出发点是对家庭环境智能化监控,使系统能够实现用户的需求对家庭环境进行智能化监控,并能够进行控制灯光的亮度与开关,能够进行火焰和可燃气体进行危险监测和报警。该系统在家庭环境监控有着极大的应用。

系统硬件设计

硬件配置:ESP8266 WIFI开发板一个,HC-SR501人体红外传感器模块一个,光敏电阻传感器模块一个,可燃气体传感器模块一个,火焰传感器模块一个、语音识别模块一个,温湿度传感器模块一个,LED显示屏一个,按键模块一个,面包板一个,USB接口的电源线一个,杜邦线若干。

ESP8266 WIFI开发板

ESP8266 WIFI开发板,是乐鑫集团研发的一种物联网专用芯片,并且含有内置的TCP/IP协议栈,能够通过WIFI与Blinker进行连接通信[4-5]。本设计采用的NodeMCU的物联网开放平台,具备了开放、交互式、可编程、高效能、简单、全智能、WI-FI硬件的特性,有着GPIO、PWM、I2C、1-Wire、ADC等功能[6-7],该开发板是CP2102和ESP-12E两个模块组成的。在不同的固件进行烧录时,能够适应完全不一样的开发环境,本设计是在Arduino 开发软件中开发的,类似于直接进行编写固件,然后烧录进开发板,通过在Arduino的开发环境进行配置ESP8266资源包来完成[8-9]。

ESP8266 WIFI开发板引脚图如图2所示。

图2 引脚图

人体红外传感器模块

HC-SR501人体红外传感器是使用了红外线的全自动模块。探头使用的是LHI778探头,具备了可信度高、敏感度强、功耗低等优势。当人踏入传感区域时输入输出电平便为高电平有效,而当人脱离传感区域时输入输出电平便为低电平有效。人体红外传感器有不可重复触发和可重复触发两种触发方法。不可重复触发方法即是当感应器产生一个高电平的时侯,不管人是否超出感应器的范围都会高电平将会变成低电平,并在延迟结束后立即生效;可重复触发方法则是当感应器产生一个高电平的时侯,如果人在推迟时段持续运动,则输出电平就会一直保持着高电平,直到人超出感应器的范围[10]。

在本系统使用的是可重复触发方式,感应是否有人进入其感应范围,若检测到有人进入其感应范围,则打开灯光开关,若检测到无人进入或有人离开则关闭灯光开关。同时将人体红外传感器感应到的数据上传至手机端的Blinker上,若有人进入则Blinker显示‘有人进入’,反之,则显示‘无人进入’。HC-SR501人体红外传感器实物图如图3所示。

图3 HC-SR501人体红外传感器实物图

HC-SR501人体红外传感器与ESP8266 WIFI开发板接线图如图4所示。

图4 HC-SR501与ESP8266 WIFI开发板接线图

光敏电阻传感器模块

光敏电阻传感器是以硫化镉等为制作材料所打造的电阻器,光敏电阻传感器的基本原理也是由于内电光效果。光敏电阻传感器可以把光信号转化为电信号,使用电信号来模拟光线强度的改变,电阻值会跟着光线强度的增强而减小。光敏电阻传感器对周围环境的光强度变化特别灵敏,用于检测四周环境的光强度,进而触发单片机。光敏电阻传感器具备了输出信息比较干净、波形质量较好和驱动能力强大等特点,并具有可调整电位器,可以进行调节检测的光强度[11]。

在本系统使用光敏电阻传感器进行采集环境光线强度,通过采集的光线强度从而进一步控制灯光亮度,是灯光的亮度随环境光照强度的变化而变化,并将环境光照强度以及灯光亮度的数据上传至手机端的Blinker上和OLED显示屏上进行实时显示。光敏电阻传感器实物图如图5所示。

图5 光敏电阻传感器实物图

光敏电阻传感器与ESP8266 WIFI开发板接线图如图6所示。

图6 光敏电阻传感器与ESP8266 WIFI开发板接线图

3.4 语音识别模块

LD3320语音识别模块是全球鹰电子开发的低功耗、高性价比的嵌入式音频模块。LD3320语音识别模块,是一个非特定人语言的技术。该模块集成了功率放大器、麦克风模块。LD3320还能够为客户提供离线语音识别,并且能够自定义回复语,还能够实现自定义的串口输出以及GPIO口控制等优点,该语音识别模块既无须外接Flash或者RAM,也无须提前接受培训或者录音培训,便即可语音识别能力,同时还能够提供编辑识别的关键词语列表,能够进行高效率识别语音[12]。

本系统使用LD3320语音识别模块来对灯光实施开关操作,利用特定的语音指令运行行相应的程序来控制OLED灯的高低电压,以此实现控制灯光开关,以达到通过语音进行控制灯光的亮灭。LD3320语音识别模块实物图如图7所示。

图7 LD3320语音识别模块实物图

LD3320语音识别模块与ESP8266 WIFI开发板接线图如图8所示。

图8 LD3320与ESP8266 WIFI开发板接线图

火焰传感器模块

火焰传感器是一款专门用于检测火焰的传感器,该传感器使用了红外对火焰非常灵敏的功能,通过红外来检测火苗,然后再把检测到的火苗亮度信息转化成高低电平信息,开发板对检测到的数据进行运行相应的程序进行处理。火焰感应器能够测量到波长范围从七百纳米至一千纳米的光源,该感应器具有信号干净、敏感度好。驱动功能较强等优点[13-14]。

本系统使用火焰传感器进行采集环境火焰信号,对环境进行安全监测,如果检测到火焰,就会进行红灯闪烁报警,并将火焰传感器检测到的信息上传至手机端的Blinker以及OLED显示屏上,已达到对环境的实时监测。火焰传感器实物图如图9所示。

图9 火焰传感器实物图

火焰传感器与ESP8266 WIFI开发板接线图如图10所示。

图10 火焰传感器与ESP8266 WIFI开发板接线图

可燃气体传感器模块

MQ-9可燃气体传感器是以二氧化锡作为气敏材料来制作的器件,当MQ-9可燃气体传感器发现可燃性气体的时侯,可燃性气体密度越浓,电导率就越大,在一个简易的集成电路中,便能将电导率转化为与可燃性气体密度相对应的输出信息。MQ-9可燃气体传感器对CH4和CO等可燃性气体都有高度灵敏度,并且该传感器具有价格低廉、使用周期长和驱动电路简单等优势[15]。

本系统使用MQ-9可燃气体传感器进行采集环境可燃气体信号,对环境进行安全监测,如果检测到可燃气体,就会进行红灯闪烁报警,并将可燃气体传感器检测到的信息上传至手机端的Blinker以及OLED显示屏上,已达到对环境的实时监测。MQ-9可燃气体传感器实物图如图11所示。

图11 MQ-9可燃气体传感器实物图

MQ-9可燃气体传感器与ESP8266 WIFI开发板接线图如图12所示。

图12 MQ-9与ESP8266 WIFI开发板接线图

温湿度传感器模块

DHT11温湿度传感器是一个以数字信号进行输出的温湿度复合型传感器。DHT11运用的是数字模块收集高新技术和温湿度感知高新技术这二项高新技术,DHT11温湿度传感器具备了安全系数高、抗扰性强、灵敏度高、价格低廉等优越性。包括电容测湿器件和NTC测温器件,并能够和一个八位的单片机通信。DHT11的电压的范围是3.3V到5V,输出的数字信号为单总线型,湿度测量精度可达5%,温度测量精度可达2℃。湿度分辨率为1%,温度分辨率为1℃[16-17]。

本系统利用DHT11温湿度传感器捕获周围环境的温度和湿度,并将通过DHT11温湿度传感器所捕获到的数据信息上传至手机端的Blinker上和OLED显示屏上,以便对周围环境温湿度进行自动实时监测。DHT11温湿度传感器实物图如图13所示.

图13 DHT11温湿度传感器实物图

DHT11温湿度传感器与ESP8266 WIFI开发板接线图如图14所示。

图14 DHT11与ESP8266 WIFI开发板接线图

OLED显示屏模块

本系统采用规格为0.96寸,分辨率为128×64的OLED显示屏,使用OLED显示屏进行实时显示环境温湿度和灯光亮度值,显示系统模式的状态、灯光开关以及进行危险报警显示。OLED显示屏实物图如图15所示。

图15 OLED显示屏实物图

OLED显示屏与ESP8266 WIFI开发板接线图如图16所示。

图16 OLED与ESP8266 WIFI开发板接线图

系统软件设计

家庭灯光与火情智能监测系统主要包括主控模块、温湿度检测模块、报警模块、OLED显示模块、Blinker远程控制模块、按键控制模块以及灯光控制模块,共七个模块。ESP8266 WIFI开发板作为主控模块是连接其他六个模块的核心控制器,为整个系统顺利运行实现提供重要作用。温湿度检测模块负责自动实时监测环境温湿度;报警模块负责检测环境是否出现危险并发出警报;OLED显示模块负责本系统各项数据的显示;Blinker远程控制模块负责实时显示本系统的各项数据以及灯光的控制;按键控制模块负责对系统进行手动模式与自动模式的切换;灯光控制模块负责对灯光的语音控制、手动开关控制、自动开关控制以及亮度控制。本系统的系统流程图如图17所示。

图17 系统流程图

温湿度检测模块

将DHT11温湿度传感器与ESP8266 WIFI开发板连接后,通过编写相应代码来达到对环境温湿度的检测。首先下载DHT11库文件并运用,定义DHT11温湿度传感器的OUT引脚为13。然后对温湿度进行采集,温湿度检测模块的主要代码如下:

      //温湿度读取

      if (read_time == 0 || (millis() - read_time) >= 2000)

    {

        read_time = millis();

        float h = dht.readHumidity();

        float t = dht.readTemperature();        

        if (isnan(h) || isnan(t)) {

            BLINKER_LOG("Failed to read from DHT sensor!");  //未检测到温湿度

            return;

        }

        float hic = dht.computeHeatIndex(t, h, false);

        humi_read = h;

        temp_read = t;

        BLINKER_LOG("Humidity: ", h, " %");  //湿度读取

        BLINKER_LOG("Temperature: ", t, " *C");  //温度读取

        BLINKER_LOG("Heat index: ", hic, " *C");

    }

最后将读取的温湿度数值上传至OLED显示屏以及手机端的Blinker上。温湿度检测模块执行流程图如图18所示。

图18温湿度检测模块执行流程图

报警模块

报警模块主要由火焰传感器模块和可燃气体传感器模块两种模块构成,分别对周围环境中的火焰和可燃气体进行检测,若检测到则进行红灯闪烁报警,并上传报警信息。

将火焰传感器和可燃气体传感器分别与ESP8266 WIFI开发板的不同引脚进行连接后,进行编写代码来实现对环境进行检测危险并报警。首先定义火焰传感器D0的引脚为14,可燃气体传感器D0的引脚为12,然后进行危险监测报警,报警模块的主要代码如下:

    //检测报警

    Serial.print("smog=");

    Serial.print(smog_read);

    Serial.print(",fire=");

    Serial.println(fire_read);

    //火焰报警、可燃气体报警

    if(fire_read==1 || smog_read==1){

      digitalWrite(rOut,!digitalRead(rOut));   //灯闪烁报警

      Serial.println("");

      if(fire_read==1){

        if (Mod==1){

        Mod=4;

        led_show(modeState,Mod);

        Mod=1;

        }

      }

      if(smog_read==1){

        if (Mod==1){

        Mod=5;

        led_show(modeState,Mod);

        Mod=1;

        }

      }



     }else{

      digitalWrite(rOut,HIGH);    //灯灭

     }

最后将检测到的危险报警信息上传至OLED显示屏以及手机端的Blinker上。报警模块执行流程图如图19所示。

图19报警模块执行流程图

OLED显示模块

OLED显示模块用来进行实时显示环境温湿度、系统模式状态、危险报警信息以及灯光状态等各项数据。将OLED显示屏的SCL、SDA引脚分别与ESP8266 WIFI开发板D1、D2引脚进行连接,并加载引用U8g2lib库和U8x8lib库,定义OLED显示屏的SCL引脚和SDA引脚,然后进行OLED显示模块程序编码,OLED显示模块的主要代码如下:

//LED显示屏

void led_show(const String & str,const int & mod){

  u8g2.setFont(u8g2_font_wqy12_t_gb2312); //中文字库

  u8g2.setFontDirection(0);  //使用中文字符要开启

  u8g2.clearBuffer();

  u8g2.setCursor(15, 10);  //设定光标显示位置

  u8g2.print("家庭灯光与火情智能监测系统");

  switch(mod){

    case 0:

      u8g2.setCursor(0, 25);  //设定光标显示位置

      u8g2.print("启动完成");

      break;

    case 1:

      u8g2.setCursor(0, 25);  //设定光标显示位置

      u8g2.print("模式选择:手动模式");

      drawDHT11(humi_read,temp_read);           //调用函数将温湿度值显示 在12864OLED上

      u8g2.setCursor(0, 55);  //设定光标显示位置

      u8g2.print("灯光开关:关灯");

      break;

    case 2:

      u8g2.setCursor(0, 25);  //设定光标显示位置

      u8g2.print("模式选择:手动模式");

      drawDHT11(humi_read,temp_read);           //调用函数将温湿度值显示 在12864OLED上

      u8g2.setCursor(0, 55);  //设定光标显示位置

      u8g2.print("灯光开关:开灯");

      break;

    case 3:

      u8g2.setCursor(0, 25);  //设定光标显示位置

      u8g2.print("模式选择:自动模式");

      drawDHT11(humi_read,temp_read);           //调用函数将温湿度值显示 在12864OLED上

      u8g2.setCursor(0, 55);  //设定光标显示位置

      u8g2.print("灯光亮度:");

      u8g2.setCursor(70, 55);

      u8g2.print(led_read);

      u8g2.setCursor(100, 55);

      u8g2.print("lm");

      break;

    case 4:

      u8g2.setCursor(0, 25);  //设定显示光标位置

      u8g2.print("检测报警:火焰报警");

      break;

    case 5:

      u8g2.setCursor(0, 25);  //设定显示光标位置

      u8g2.print("检测报警:可燃气体报警");

      break;

    case 6:

      u8g2.setCursor(0, 25);  //设定光标显示位置

      u8g2.print("模式选择:自动模式");

      drawDHT11(humi_read,temp_read);           //调用函数将温湿度值显示 在12864OLED上

      u8g2.setCursor(0, 55);  //设定光标显示位置

      u8g2.print("灯光亮度:");

      u8g2.setCursor(70, 55);

      u8g2.print("0");

      u8g2.setCursor(100, 55);

      u8g2.print("lm");

      break;    

    }

  u8g2.sendBuffer();

}

最后OLED显示屏对本系统的各项数据进行实时显示。OLED显示模块执行流程图如图20所示。

图20 OLED显示模块执行流程图

Blinker远程控制模块

Blinker远程控制模块是在硬件设备功能实现的基础之上,将家庭灯光与火情智能监测系统各个传感器模块的采集的数据信息,通过ESP8266 WIFI开发板的WIFI模块的连接上传至手机端的Blinker上,使用户可以更加方便的进行实时控制与监测。Blinker连接本系统进行数据传输与远程控制的具体步骤如下。

第一步,手机端Blinker软件的安装。在点灯科技官网或者手机应用商场进行安装,之后进行注册登录,然后在软件主界面点击添加设备按键,在显示的列表中选择独立设备进入设备接入向导,在接入设备向导中选择网络接入方法。设备接入向导界面如图21所示。

图21 设备接入向导界面

第二步,手机端Blinker与ESP8266 WIFI开发板的WIFI模块的连接。在网络连接界面,选择点灯科技为网络连接的平台,然后会出现一个设备连接密码,将密码复制到Arduino 开发软件的对应代码位置,代码编写完成后烧录,来实现手机端Blinker的网络连接。Blinker的密码界面如图22所示。Blinker连接 WIFI的代码如图23所示。

图22 Blinker密钥界面

图23 Blinker连接WIFI的代码

第三步,Blinker界面设计。Blinker界面设计要考虑软件界面和界面文字叙述两个方面。软件界面应该用简洁且清晰的将所有的硬件设备传送的数据分模块显示出来。Blinker的软件界面的设计包括环境亮度实时显示、灯光亮度实时显示、温湿度实时显示、人体红外检测是否有人进入的显示、可燃气体与火焰检测的显示、灯光开关的控制按键。界面文字叙述应该达到让用户能够清晰方便的理解软件功能相对应的硬件部分。Blinker控制界面如图24所示。

图24 Blinker控制界面

 按键控制模块

按键控制模块主要负责本系统的手动模式与自动模式的切换,并将系统模式状态上传至OLED显示屏上。按键控制模块的K1引脚与ESP8266 WIFI开发板的GPIO10引脚和电阻相连接,定义按键的K1引脚为10,进行编写代码控制模式的转换

最后通过按动按键进行控制模式切换,并将模式状态上传至OLED显示屏上。按键控制模块执行流程图如图25所示。

图25按键控制模块执行流程图

灯光控制模块

灯光控制模块主要分为手动模式和自动模式,手动模式主要是通过语音控制模块灯光和Blinker远程控制灯光,而自动模式则是透过人体红外传感器模块和光敏电阻传感器模块对灯光实施控制,然后并将灯光控制信息上传至OLED显示屏以及手机端的Blinker上。

手动模式灯光控制模块

在手动模式下对灯光的控制方法分为语音控制灯光和Blinker控制灯光两种方法。

在语音控制灯光时,首先将已经完成语音命令词设置的语音识别模块的RXD、TXD分别与ESP8266 WIFI开发板TXD、RXD连线后,通过编写代码来实现语音命令对灯光的开关控制,并将灯光控制信息上传至OLED显示屏,

在Blinker控制灯光时,首先将ESP8266 WIFI开发板的WIFI模块与手机端Blinker进行连接通信,然后在Blinker上设置控制灯光的数据键名,代码如下:

BlinkerButton gBtn("btn-g");  //绿灯                                                          

BlinkerButton bBtn("btn-b");  //蓝灯

进行编写代码,通过单击操作Blinker控制界面的相对应的灯光控制按键,对灯光实现开关控制,并将灯光控制信息上传至OLED显示屏和Blinker上

最后实现在手动模式下对灯光的语音控制和Blinker控制,并将灯光状态上传至OLED显示屏。手动模式灯光控制模块执行流程图如图26所示。

如图26手动模式灯光控制模块执行流程图

自动模式灯光控制模块

在自动模式下对灯光的控制方法是运用人体红外传感器模块来对灯光实施开关控制以及运用光敏电阻传感器模块对灯光实施亮度控制,并将二者进行协同作用对灯光实施控制,将灯光亮度上传OLED显示屏,并将灯光亮度、光照强度和人外红外检测的是否有人进入的数据信息上传至手机端的Blinker上。

将人体红外传感器和光敏电阻传感器分别与ESP8266 WIFI开发板的不同引脚进行连接后,进行编写代码来实现对灯光的控制。首先定义人体红外传感器OUT的引脚为D8,光敏电阻传感器A0的引脚为A0,然后进行控制灯光

最后将自动模式下对灯光进行控制,并将控制灯光的数据信息上传至OLED显示屏以及手机端的Blinker上。自动模式灯光控制模块执行流程图如图27所示。

图27自动模式灯光控制模块执行流程图

系统测试

Blinker远程控制功能

打开已经配置好的无线网络,将系统的代码程序烧录至开发板中运行,等到OLED显示屏中显示启动成功后,打开手机端的Blinker后,进行刷新操作,直到手机端的Blinker中的家庭灯光与火情智能监测系统显示在线时,单击家庭灯光与火情智能监测系统进入远程控制主界面,若数据正常显示,则本系统的远程控制的网络连接成功,即成功连接家庭灯光与火情智能监测系统与Blinker。

进入Blinker软件中家庭灯光与火情智能监测系统远程控制主界面后,即可查看环境亮度、灯光亮度、温度、湿度、人体检测、可燃气体检测和火焰检测的数据信息进行确切的显示,并可以进行对灯光的远程控制。则本家庭灯光与火情智能监测系统的远程控制功能成功。

报警功能

可燃气体危险报警

对可燃气体传感器模块进行测试,首先使用打火机打着火,然后把火吹灭进行慢慢靠近可燃气体传感器,会出现红灯闪烁,并且在OLED显示屏以及Blinker界面会出现可燃气体报警的显示。报警红灯闪烁图如图。可燃气体报警OLED显示图如图。

火焰危险报警

对火焰传感器模块进行测试,先用打火机打着火,然后逐渐接触火焰传感器,会出现红灯闪烁,并且在OLED显示屏以及Blinker界面会出现火焰报警的显示。报警红灯闪烁图如图。火焰报警OLED显示图。火焰报警Blinker显示图如图。

OLED显示功能

OLED显示模块用来进行实时显示环境温湿度、系统模式状态、危险报警信息以及灯光状态等各项数据。对测试OLED显示模块进行测试时,首先在系统运行成功后屏幕上会出现启动成功的字样,然后我们对系统进行灯光控制、模式转换等各项功能是测试,可以看到OLED显示屏的显示界面和显示内容会随着各项功能的操作做出相应的动态显示。OLED显示屏的内容动态显示,如组合图。

温湿度检测功能

温湿度检测功能是通过DHT11温湿度传感器进行捕获周围环境温湿度,并将环境温湿度自动实时显示在OLED显示屏和手机端的Blinker上,进行监测环境温湿度。对温湿度检测功能测试,首先在系统启动成功后,可以在OLED显示屏和Blinker的控制界面看到温湿度的实时动态显示。温湿度在OLED显示屏的实时显示图如图。温湿度在Blinker的实时显示图如图。

模式切换功能

模式切换功能是指利用按键控制模块来完成本系统的自动模块和手动模式之间的转换,并将系统模式状态上传至OLED显示屏上。对模式切换功能测试,在系统启动成功后,系统的默认模式是手动模式,进行长按按键至OLED显示屏显示自动模式后,松开按键,系统切换为自动模式。自动模式的OLED显示屏如图。使用相同的方法将系统切换至手动模式。手动模式的OLED显示屏如图。

灯光控制功能

手动模式灯光控制功能

在手动模式下灯光控制功能分为语音控制灯光和Blinker控制灯光两种功能。在系统启动成功,系统模式切换为手动模式后,对系统的语音控制灯光和Blinker控制灯光分别进行测试。

对语音控制灯光进行测试,当系统在手动模式中,直接说出语音命令词开灯或者关灯,灯光将会自动开启或者关掉,并同时在OLED显示屏上提示灯光开关状态。OLED显示屏上灯光状态如组合图。

对Blinker控制灯光进行测试,当系统在手动模式中,打开灯光手机端的Blinker控制界面,通过点击绿灯或蓝灯的按键,灯光将会进行开启和关闭,并在OLED显示屏上提示灯光开关状态。OLED显示屏上灯光状态如组合图。在Blinker控制界面的Monitor上显示on和off字样。Blinker上灯光状态显示如图。

自动模式灯光控制功能

在自动模式时还可以运用人体红外传感器模块来对灯光实施开关控制以及运用光敏电阻传感器模块对灯光实施亮度控制,并将二者进行协同作用对灯光实施控制。在系统启动成功,系统模式转换至自动模式后,灯光的开关与亮度由系统中的人体红外传感器和光敏电阻传感器控制并进行测试,首先人体红外传感器进行检测到是否有人踏入感应范围,从而进行打开和关闭灯光开关,并根据光敏电阻传感器检测到的环境光照强度进行对灯光的亮度进行控制,最后将灯光亮度上传OLED显示屏,并将灯光亮度、光照强度和人外红外检测的是否有人进入的数据信息上传至手机端的Blinker上。

若有人进入且环境光照强度较低时,灯光将会打开,并根据环境光照强度进行调节灯光亮度。Blinker控制界面的有人开灯的状态图如图。OLED显示屏的灯光亮度如图。

若人离开且无人进入,则灯光将会关闭。Blinker控制界面的无人关灯的状态图如图。OLED显示屏的灯光亮度如图。

结束语

本课题设计是基于ESP8266的家庭灯光与火情智能监测系统设计与实现,选用ESP8266 WIFI开发板为主控模块,并配置了HC-SR501人体红外传感器模块、光敏电阻传感器模块、火焰传感器模块、LD3320语音识别模块和DHT11温湿度传感器模块等主流模块进行设计完成本系统。从最初的各硬件模块的购买,到相关资料的查找与技术的学习,再到开发环境的搭建、代码程序的编写与调试运行,最终的完成了家庭灯光与火情智能监测系统设计与实现。

本设计主要实现的功能为:运用温湿度传感器检测四周环境的温度和湿度,实施对四周环境温度和湿度的监测;运用火焰传感器和可燃气体传感器监测四周环境中的火焰和可燃气体,目前已实现了在周围环境出现危险情况时会发生红灯或闪光警告;可以使用按键模块来完成灯光控制的手动模式与自动模式的转换,在手动模式时还可以实现对灯光进行语音控制和Blinker的远程控制,在自动模式时还可以运用人体红外传感器模块来对灯光实施开关控制以及运用光敏电阻传感器模块对灯光实施亮度控制,并将二者进行协同作用对灯光实施控制,做到人来灯亮,人走灯灭,并根据环境光照强度智能调节灯光亮度的功能;并将本系统的的各项数据上传至OLED显示屏以及Blinker的远程控制界面,以实现远程控制与监控。相对于传统家庭灯光与火情智能监测系统,该设计的优势明显,给使用者带来了很大的方便,符合用户需求。

系统源码及答辩PPT

系统源码包含8266demo.ino及答辩PPT

下载链接:

https://download.csdn.net/download/m0_61712829/89001158icon-default.png?t=N7T8https://download.csdn.net/download/m0_61712829/89001158

程序运行说明

软件清单:Arduino开发软件、Blinker软件

Arduino开发软件

1.点击8266demo文件夹

2.使用Arduino打开8266demo.ino文件

3.点击上传,烧录运行

 Blinker软件

1.手机下载并打开Blinker软件

2.点击家庭灯光与火情智能监测系统,进入Blinker远程控制界面。

3.进行对家庭灯光与火情智能监测系统的远程控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/502279.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32H743驱动SSD1309(5)

接前一篇文章:STM32H743驱动SSD1309(4) 三、命令说明 10. 设置BANK0的对比度控制(81h) 此命令设置显示器的对比度设置。该芯片具有从00h到FFh的256个对比度阶跃。segment输出电流随着对比度阶跃值的增加而增加。 示例…

CMOS逻辑门电路主要技术参数

传输延迟时间 由于电极之间以及电极与衬底之间存在寄生电容,并且输出端通常也存在负载电容。当输入信号跳变时,由于电容的充放电,输出电压的变化必然滞后与输入电压的变化。 门电路传输延迟波形图如下: 通常CMOS逻辑门电路输出端…

哔哩哔哩直播姬有线投屏教程

1 打开哔哩哔哩直播姬客户端并登录(按下图进行操作) 2 用usb连接电脑(若跳出安装驱动的弹窗点击确定或允许),usb的连接方式为仅充电 不要更改usb的连接方式(不然电脑会死机需要重启),此时电脑识别不到该手机设备(因为电脑把它识别为投屏设备) 想要正常连接电脑进行文件传输就按…

日志集中审计系列(4)--- LogAuditor接收IPS设备日志

日志集中审计系列(4)--- LogAuditor接收IPS设备日志 前言拓扑图设备选型组网需求配置思路操作步骤结果验证前言 近期有读者留言:“因华为数通模拟器仅能支持USG6000V的防火墙,无法支持别的安全产品,导致很多网络安全的方案和产品功能无法模拟练习,是否有真机操作的实验或…

Vue3:快速上手路由器

本人在B站上关于vue3的尚硅谷的课程,以下是整理一些笔记。 一.路由器和路由的概念 在 Vue 3 中,路由(Router)和路由器(Router)是两个相关但不同的概念。 1. 路由(Router)&#xff…

Java面试题第二季

一、JUC多线程及高并发 1.谈谈你对volatile的理解 线程安全获得保证 1.volatile是Java虚拟机提供的轻量级的同步机制 保证可见性 不保证原子性 1号和2号线程同时修改各自工作空间中的内容,因为可见性,需要重写入内存,但是1号在写入的时候…

如何保证redis里的数据都是热点数据

MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据? 1.Redis 过期删除策略 1)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期&#xff0c…

Mac上Matlab_R2023b ARM 版 启动闪退(意外退出)解决方法

安装好后,使用 "libmwlmgrimpl.dylib" 文件替换掉"/Applications/Matlab_R2023b.app/bin/maca64/matlab_startup_plugins/lmgrimpl"文件夹下的同名文件 在终端下执行如下命令: codesign --verbose --force --deep -s - /Applicat…

简易TCP服务器通信、IO多路复用(select、poll、epoll)以及reactor模式。

网络编程学习 简单TCP服务器通信TCP三次握手和四次挥手三次握手(如下图)常见问题? 四次挥手 client和server通信写法server端client端 通信双方建立连接到断开连接的状态转换怎么应对多用户连接?缺点 IO多路复用select优缺点 poll…

物联网学习2、MQTT 发布/订阅模式介绍

MQTT 发布/订阅模式 发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不…

算法题2两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开…

动态规划之方格取数

方格取数 动态规划&#xff0c;数字三角形模型 题目链接 https://www.luogu.com.cn/problem/P1004 题目描述 解法一 O ( n 4 ) O(n^4) O(n4) #include<bits/stdc.h> using namespace std; int n, i, j, l, k, x, y, s; int d[55][55], f[55][55][55][55]; int main()…

计算机视觉的应用27-关于VoVNetV2模型的应用场景,VoVNetV2模型结构介绍

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用27-关于VoVNetV2模型的应用场景&#xff0c;VoVNetV2模型结构介绍。VoVNetV2&#xff08;Visual Object-Driven Representation Learning Network Version 2&#xff09;是一种深度学习模型&#x…

python+requests的接口自动化测试框架实例详解教程

前言 Python是一种简单易学、功能强大的编程语言&#xff0c;广泛应用于各种软件开发和测试场景中。requests是Python中流行的HTTP库&#xff0c;支持发送HTTP请求和处理HTTP响应&#xff0c;它也是开发API自动化测试框架的重要组件之一。在本文中&#xff0c;我们将介绍如何使…

蓝桥集训之游戏

蓝桥集训之游戏 核心思想&#xff1a;博弈论 区间dp 设玩家1的最优解为A 玩家2的最优解为B 1的目标就是使A-B最大 2的目标就是使B-A最大 当玩家1取L左端点时 右边子区间结果就是玩家2的最优解B-A 即当前结果为w[L] – (B-A) 当玩家1取R右端点时 左边子区间结果就是玩家2的最…

【豫都故郡·领航新篇】Springer独立出版 |第二届先进无人飞行系统国际会议(ICAUAS 2024)

会议简介 Brief Introduction 2024年第二届先进无人飞行系统国际会议(ICAUAS 2024) 会议时间&#xff1a;2024年6月14日-16日 召开地点&#xff1a;中国南昌 大会官网&#xff1a;ICAUAS 2024-2024 2nd International Conference on Advanced Unmanned Aerial Systems2024 2nd …

大模型融合方法-DARE

LLM在SFT之后会产生大量的冗余参数(delta参数)&#xff0c;阿里团队提出DARE方法来消除delta参数&#xff0c;并将其合并到PRE模型中&#xff0c;从而实现多源模型能力的吸收。 DARE无需GPU重新训练&#xff0c;其思路非常简单&#xff0c;就跟dropout类似&#xff1a; m t ∼…

视频素材大全无水印哪里有?7个高清视频素材app推荐

在视频创作的领域里&#xff0c;获取可用的高质量素材是每位创作者追求的目标。全球各地的视频素材网站以其独特的资源和视角&#xff0c;为我们提供了丰富的选择。下面是一系列精选的网站&#xff0c;不仅提供可以自由使用的素材&#xff0c;还涵盖了从动态城市风光到壮丽自然…

知识竞赛中加时赛环节如何设计较好

加时赛是知识竞赛活动中要考虑的一个环节&#xff0c;尽管它很多时候可能用不到&#xff0c;但一般一定要有&#xff0c;除非你要其他方法再对重分的选手进行排名。下面介绍加时赛环节设计注意事项及具体方法。 第一&#xff1a;加赛题环节要干净利落 主办者一定要明白&#…

leetcode二叉树相关题目

目录 二叉树的建立整数数组转二叉树Object数组转二叉树 二叉树的遍历leetcode94.二叉树的中序遍历leetcode144.二叉树的前序遍历 二叉树的建立 整数数组转二叉树 下面只是一个简单的示例&#xff0c;没考虑某个子树为空的情况。把{1, 2, 3, 21, 22, 31, 32} 转变为一个二叉树…