基于ESP32的智能家居控制系统-微信小程序界面
一、 课题研究意义、现状及应用分析1.1课题研究意义及现状目前,科学技术发展十分迅速,其渗透到各行各业以及生活的方方面面,室内设计和高科技结合便出现了“智能家居”。所谓智能家居就是以居住场所为平台,利用物联网、传感器、智能控制技术将各种家用电器联系起来,实现居住环境的智能化、自动化、人性化。通过语音控制、远程控制、预约控制、个性化设计、一键控制等功能进一步提高生活的舒适性、便利性、安全性。1.2应
一、 课题研究意义、现状及应用分析
1.1课题研究意义及现状
目前,科学技术发展十分迅速,其渗透到各行各业以及生活的方方面面,室内设计和高科技结合便出现了“智能家居”。所谓智能家居就是以居住场所为平台,利用物联网、传感器、智能控制技术将各种家用电器联系起来,实现居住环境的智能化、自动化、人性化。通过语音控制、远程控制、预约控制、个性化设计、一键控制等功能进一步提高生活的舒适性、便利性、安全性。
1.2应用分析
具体而言,利用多种传感器监测室内温度、湿度、光线强度、烟雾浓度、室内是否有人等信息自动调整空调、加湿器、灯具、家庭影院等电器。利用人机交互设备、语音识别设备实现智能电器的语音控制。利用手机终端、电脑终端等方式实现智能电器的远程控制。家用电器运行情况、监控画面、智能抓拍、报警等信息会实时反馈到用户手中,用户可随时随地了解家中具体情况,让用户体验“离家如在家”的感觉。与传统家居相比,智能家居有利于提高家居生活的便利性、舒适性、安全性,众多新建小区多多少少收配备了部分分智能家居设备,但是距离真正的智能家居仍有一段距离。未来智能家居一定会成为现代生活的标配。
二、 课题总体方案设计及功能模块介绍
2.1总体方案设计
本系统主要分为三大模块,分别为传感器监测模块,自动报警模块和远程控制模块。传感器监测模块包括对环境的温湿度和烟雾浓度监测,用户可以在微信小程序上查看到实时传感数据;自动报警模块是当传感数据超过设置的阈值时会进行报警,提醒用户注意火灾的发生;远程控制模块可以通过微信小程序远程控制LED灯和风扇的开关,实现了不在家也能远程控制家里的电器的开关。总体方案设计图如图1所示:
图1:总体方案设计图
2.2功能模块介绍
2.2.1传感器监测模块
传感器监测模块主要有温湿度监测和烟感浓度监测,ESP32通过温湿度传感器和烟雾传感器收集当前环境的温湿度数据和烟雾浓度并上传到巴法云MQTT服务器,然后微信小程序获取巴法云MQTT服务器上的传感器数据展示给用户,让用户可以得到当前环境的温湿度和烟感浓度数据。
2.2.2自动报警模块
用户可以自己设置自动报警阈值,当环境的烟感浓度数据超过设定的阈值,灯会发出报警信息来提醒用户当前环境烟感浓度过高,注意火灾的发生,风扇也会开启,进行排气,降低当前环境的烟感浓度。微信小程序上面也会收到报警信息,提醒用户注意火灾的发生。
2.2.3远程控制模块
用户可以在微信小程序上通过远程开关控制灯和风扇的工作状态,实现了不在家也能远程控制家里的电器的开关,方便快捷。
三、 系统硬件平台及接口设计
3.1硬件组成
选择ESP32-WROOM-32为主控板,ESP32 性能稳定,工作温度范围达到 –40°C 到 +125°C。集成的自校准电路实现了动态电压调整,可以消除外部电路的缺陷并适应外部条件的变化。ESP32 将天线开关、RF balun、功率放大器、接收低噪声放大器、滤波器、电源管理模块等功能集于一体。ESP32 只需极少的外围器件,即可实现强大的处理性能、可靠的安全性能,和 Wi-Fi & 蓝牙功能。ESP32 专为移动设备、可穿戴电子产品和物联网应用而设计,具有业内高水平的低功耗性能,包括精细分辨时钟门控、省电模式和动态电压调整等。ESP32 可作为独立系统运行应用程序或是主机 MCU 的从设备,通过 SPI / SDIO 或 I2C / UART 接口提供 Wi-Fi 和蓝牙功能。ESP32开发板如图2所示。
图2:ESP32开发板图
温湿度传感器(DHT11)
温湿度数据采用DHT11温湿度传感器传感器收集。DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比 极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。连接方便,特殊封装形式可根据用户需求而提供。
图3:DHT11传感器图
烟雾传感器:
MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。
图4:烟雾传感器图
LED灯:
LED灯采用的是8mm红色LED发光模块。此模块在此系统有两个用处,一是微信小程序控制LED灯的开关,二是烟雾浓度过高自动报警闪烁亮灯。
图5:8mm红色LED发光模块图
继电器:
继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器有低电平触发和高电平触发,本系统中采用高电平触发继电器。
图6:继电器
风扇:
风扇采用的是5V,0.2A的小风扇模块。此模块在此系统有两个用处,一是微信小程序控制风扇的开关,二是烟雾浓度过高自动报警后自动进行排气。
图7:风扇
3.2引脚分配
基于ESP32的智能家居控制系统由硬件和微信小程序两部分组成。能够实现数据采集、远程控制和能对采集的数据进行处理,若超过阈值将发出警报。引脚分配如图8所示。
图8:引脚分配图
3.3硬件总体结构设计
图9:硬件模块构成图
四、 系统软件功能设计,程序流程图及代码实现
4.1温湿度传感数据显示
通过DHT11温湿度传感器收集当前环境的温湿度数据上传到巴法云MQTT服务器然后在上传到微信小程序显示。
图10:温湿度数据采集程序流程图
代码实现:
图11:DHT11的核心代码
4.2烟雾传感数据显示
通过烟雾传感器收集当前环境的烟雾浓度数据上传到巴法云MQTT服务器然后在上传到微信小程序端显示。
图12:烟感浓度数据采集程序流程图
代码实现:
图13:烟雾传感器的核心代码
4.3 LED灯远程控制
用户可以通过微信小程序端通过虚拟按钮来远程控制LED灯的开关,操作方法方便快捷。
图14:LED灯控制程序流程图
代码实现:
图15:LED灯控制的核心代码
4.4风扇远程控制
用户可以通过微信小程序端通过虚拟按钮来远程控制继电器的开关进而来控制风扇的开关,操作方法方便快捷。
图16:风扇控制程序流程图
代码实现:
图17:风扇控制的核心代码
4.5烟雾浓度过高自动报警
烟雾传感器每收集一次数据都会进行一次判断,判断烟雾浓度是否高于用户设置的阈值,若超过阈值,微信小程序端将会进行报警,LED灯和微信小程序端也会发出警告,提醒用户当前环境烟雾浓度过高,注意火灾的发生;风扇也会进行排气工作,降低当前环境的烟雾浓度。
图18:烟感浓度过高自动报警程序流程图
代码实现:
图19:烟感浓度过高自动报警的核心代码
五、 实验测试、结果分析
基于ESP32的智能家居控制系统的测试分别对微信小程序端、ESP32端和巴法云物联网平台端三个方面进行测试。微信小程序端测试对ESP32开发平台的控制和对巴法云物联网平台数据的调用和展示,ESP32端测试各数据采集点的传感器模块,巴法云物联网平台测试数据的业务处理。
图20:ESP32线路连接图
图21:巴法云物联网平台主页
图22:微信小程序开发平台
DHT11温湿度传感器模块测试
按引脚图接线连接好线路,将DHT11放在自然环境中,然后烧入程序。在测试时,对着温湿度传感器吹气,温湿度会有明显的变化。如图所示,成功测出的温湿度可以经过ESP32直接上传到巴法云物联网平台上,然后再显示在微信小程序端。
图23:DHT11温湿度模块测试结果
图24:微信小程序温湿度模块测试结果
烟雾传感器模块测试
按引脚图接线连接好线路,然后烧入程序。在测试时,用打火机喷发气体到烟雾传感器,此时的烟雾浓度的数据会发生明显的变化。如图所示,成功测出的烟雾浓度可以经过ESP32直接上传到巴法云物联网平台上,然后再显示在微信小程序端。
图25:烟雾传感器模块测试结果
图26:微信小程序烟雾传感器模块测试结果
远程控制模块测试
按引脚图接线连接LED灯,继电器和风扇,然后烧入程序。在微信小程序打开控制页面,点击所设置的虚拟开过按钮即可控制LED灯和风扇的开关。
图27:微信小程序端控制页面
图28:微信小程序端控制
自动报警模块测试
当烟雾传感器模块收集的烟雾浓度高于所设置的阈值时,微信小程序端将会报警,LED灯也会报警,风扇会进行排气工作,提醒用户当前环境烟雾浓度过高,小心有火灾的发生。
图29:微信小程序报警
图30:巴法云物联网平台信息页面
六、 总结、心得体会
随着社会的各方面的发展,智能家居逐渐走进了人们的家庭中,为人们带来更加舒适的生活,提高生活质量。在本次课程设计中,我通过ESP32为主控板,连接DHT11、烟雾传感器、LED灯、继电器和风扇,结合巴法云物联网平台搭建了一个简单的智能家居控制系统。
本系统实现的功能如下:
(1) 通过微信小程序实现了对环境数据实时监测功能;
(2) 实现了远程控制LED灯和风扇的开关;
(3) 实现了烟雾浓度过高自动报警功能。
在此次课程设计中,我采用了ESP32开发板作为主控板,巴法云物联网平台作为数据中继,微信小程序作为数据展示端,完成了一个简单的智能家居控制系统。传感器数据采集部分不难,难的部分是ESP32如何连接上巴法云物联网平台,通过在CSDN上找到的教程,按照教程一步一步的操作,首先需要开发板需要连接上WIFI,然后还需要连接上MQTT,开发板、巴法云物联网平台和微信小程序端三者之间都是通过MQTT通信的,MQTT协议是此次设计最重要的一部分。
巴法云物联网平台有许多功能,我们只需要在上面创建设备,创建完后就会有一串自己的密钥,这串密钥是ESP32连上巴法云物联网平台的密码,只有拥有对的密钥才能连接上巴法云平台。在巴法云物联网平台上自己需要通信的topic,然后在ESP32上订阅巴法云物联网平台的相应的Topic,只有订阅了相对应的Topic,两者之间的数据才不会混乱。在此次课程设计中,我将微信小程序应用其中,自己写了一个微信小程序用来展示传感数据,实现了数据实时展示、开关远程控制和烟雾自动预警功能,但由于刚接触微信小程序这方面的知识,还不够了解,今后还需继续学习,努力学习这方面的知识,争取下次做出更好的作品。
微信小程序已上传至微信公众平台,扫码可查看。
附录:Arduino完整的实验代码点此下载;微信小程序完整的实验代码点此下载。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)