该项目基于STM32微控制器设计,利用其高性能的处理能力和丰富的外设接口,实现了系统的高集成度和低功耗特性。通过精心设计的电路和优化的程序,该系统能够快速响应外部信号,并进行精确的数据处理。此外,系统还具备良好的扩展性,能够根据不同的应用场景添加或修改功能模块,以满足多样化的客户需求。
在本系统设计中,主要通过光照传感器BH1750来检测室内光照强度,以及通过烟雾传感器来检测烟雾浓度,并且通过红外传感器检测是否有人经过。来实现一个简单的智能家具检测系统。接下来分为硬件和软件以及最终效果三部分来介绍:
一、硬件部分
1.BH1750FVI是一款数字型光强度传感器集成芯片。电路工作原理:如图1所示,BH1750的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(注:进入光窗的光越强,光电流越大,电压就越大,所以通过电压的大小就可以判断光照大小,但是要注意的是电压和光强虽然是一一对应的,但不是成正比的,所以这个芯片内部是做了线性处理的,这也是为什么不直接用光敏二极管而用集成IC的原因)。BH1750引出了时钟线和数据线,单片机通过I2C协议可以与BH1750模块通讯,可以选择BH1750的工作方式,也可以将BH1750寄存器的光照度数据提取出来。
2.MQ-2气体传感器是一种常用的气体传感器,用于检测空气中的烟雾浓度。工作原理是基于半导体气敏元件的电阻变化。当烟雾气体进入传感器时,它会与气敏元件表面的敏感材料发生化学反应,导致电阻值发生变化。通过测量电阻值的变化,可以推断出烟雾浓度的大小。原理图如图2所示。
图 2 MQ-2原理图
3.人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。实物图如图3所示。
二、软件部分
首先介绍函数初始化如下:
While循环中为传感器数据采集函数的书写,如下图所示:
该图微传感器轮询采集数据,并且最终通过OLED显示出来。对于相关的一些IIC初始化代码就不写出来了,下面展示一些具体传感器数据处理代码。
光照传感器:
烟雾传感器:
人体红外传感器:
四、最终效果
在软件部分,首先进行的是函数初始化,这包括了对系统中各个传感器的配置以及对I2C总线的初始化,确保微控制器能够与传感器模块正确通讯。初始化完成后,系统进入主循环,开始轮询采集各个传感器的数据。
在While循环中,系统首先调用光照传感器的读取函数,通过I2C协议从BH1750模块获取当前的光照强度数据。然后,系统会调用烟雾传感器的读取函数,通过模拟信号输入读取MQ-2传感器的模拟输出值,并将其转换为烟雾浓度的数值。最后,系统会检测人体红外传感器的输出,判断是否有人体移动的迹象。
采集到的数据经过处理后,会通过OLED显示屏展示出来。OLED显示屏能够清晰地显示当前的光照强度、烟雾浓度以及是否有人经过的信息。这样的设计使得用户可以直观地了解家中的环境状况。
对于光照传感器,数据处理代码会将从BH1750模块读取到的16位二进制数转换为实际的光照强度值,考虑到芯片内部已经做了线性处理,因此转换过程相对简单。
对于烟雾传感器,数据处理代码会根据MQ-2传感器的特性曲线,将电阻变化转换为烟雾浓度的数值。这通常需要一个校准过程,以确保读数的准确性。
对于人体红外传感器,数据处理代码会分析热释电元件的电荷变化,判断是否达到触发报警的阈值,并将结果输出。
最终效果如图4所示,用户可以通过智能家居环境检测系统实时监控家中的光照、烟雾和人体活动情况,从而提高居住的安全性和舒适度。
图 4 最终效果展示