目前,科学技术发展十分迅速,其渗透到各行各业以及生活的方方面面,室内设计和高科技结合便出现了“智能家居”。所谓智能家居就是以居住场所为平台,利用物联网、传感器、智能控制技术将各种家用电器联系起来,实现居住环境的智能化、自动化、人性化。通过语音控制、远程控制、预约控制、个性化设计、一键控制等功能进一步提高生活的舒适性、便利性、安全性。
具体而言,利用多种传感器监测室内温度、湿度、光线强度、烟雾浓度、室内是否有人等信息自动调整空调、加湿器、灯具、家庭影院等电器。利用人机交互设备、语音识别设备实现智能电器的语音控制。利用手机终端、电脑终端等方式实现智能电器的远程控制。家用电器运行情况、监控画面、智能抓拍、报警等信息会实时反馈到用户手中,用户可随时随地了解家中具体情况,让用户体验“离家如在家”的感觉。与传统家居相比,智能家居有利于提高家居生活的便利性、舒适性、安全性,众多新建小区多多少少收配备了部分分智能家居设备,但是距离真正的智能家居仍有一段距离。未来智能家居一定会成为现代生活的标配。
本系统主要分为三大模块,分别为传感器监测模块,自动报警模块和远程控制模块。传感器监测模块包括对环境的温湿度和烟雾浓度监测,用户可以在微信小程序上查看到实时传感数据;自动报警模块是当传感数据超过设置的阈值时会进行报警,提醒用户注意火灾的发生;远程控制模块可以通过微信小程序远程控制LED灯和风扇的开关,实现了不在家也能远程控制家里的电器的开关。总体方案设计图如图1所示:

图1:总体方案设计图
传感器监测模块主要有温湿度监测和烟感浓度监测,ESP32通过温湿度传感器和烟雾传感器收集当前环境的温湿度数据和烟雾浓度并上传到巴法云MQTT服务器,然后微信小程序获取巴法云MQTT服务器上的传感器数据展示给用户,让用户可以得到当前环境的温湿度和烟感浓度数据。
用户可以自己设置自动报警阈值,当环境的烟感浓度数据超过设定的阈值,灯会发出报警信息来提醒用户当前环境烟感浓度过高,注意火灾的发生,风扇也会开启,进行排气,降低当前环境的烟感浓度。微信小程序上面也会收到报警信息,提醒用户注意火灾的发生。
用户可以在微信小程序上通过远程开关控制灯和风扇的工作状态,实现了不在家也能远程控制家里的电器的开关,方便快捷。
选择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:风扇
基于ESP32的智能家居控制系统由硬件和微信小程序两部分组成。能够实现数据采集、远程控制和能对采集的数据进行处理,若超过阈值将发出警报。引脚分配如图8所示。

图8:引脚分配图

图9:硬件模块构成图
通过DHT11温湿度传感器收集当前环境的温湿度数据上传到巴法云MQTT服务器然后在上传到微信小程序显示。

图10:温湿度数据采集程序流程图
代码实现:

图11:DHT11的核心代码
通过烟雾传感器收集当前环境的烟雾浓度数据上传到巴法云MQTT服务器然后在上传到微信小程序端显示。

图12:烟感浓度数据采集程序流程图
代码实现:

图13:烟雾传感器的核心代码
用户可以通过微信小程序端通过虚拟按钮来远程控制LED灯的开关,操作方法方便快捷。

图14:LED灯控制程序流程图
代码实现:


图15:LED灯控制的核心代码
用户可以通过微信小程序端通过虚拟按钮来远程控制继电器的开关进而来控制风扇的开关,操作方法方便快捷。

图16:风扇控制程序流程图
代码实现:


图17:风扇控制的核心代码
烟雾传感器每收集一次数据都会进行一次判断,判断烟雾浓度是否高于用户设置的阈值,若超过阈值,微信小程序端将会进行报警,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,两者之间的数据才不会混乱。在此次课程设计中,我将微信小程序应用其中,自己写了一个微信小程序用来展示传感数据,实现了数据实时展示、开关远程控制和烟雾自动预警功能,但由于刚接触微信小程序这方面的知识,还不够了解,今后还需继续学习,努力学习这方面的知识,争取下次做出更好的作品。
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,
说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现