基于单片机的智能家居检测系统设计(本文持续更新)

基于单片机的智能家居检测系统设计(本文持续更新)



前言

本文设计出一款基于STM32单片机的智能家居检测系统,其主要功能如下:
1、检测功能:烟雾浓度,可燃气体,光照强度,环境温湿度,人体红外感应
2、储存功能:配置项保存在EEPROM里,掉电不丢失,复位后不需要重新配置。
3、显示功能:TFT LCD显示烟雾浓度,可燃气体浓度,窗户开关状态,LED灯状态,是否有人状态
4、手机APP控制与显示:通过ESP8266 WIFI模块连接网络,实现远程控制与显示。
5、报警功能:按键调节报警阈值,超出阈值,蜂鸣器报警,控制继电器自动打开窗户通风。
6、智能控制:人进入房间,屏幕显示有人状态,灯光随着光照强度的变化自动调节。在没人时,或者白天(光照强度较大)时,关灯。


一、资源分享

实物与资料分享:基于单片机的智能家居检测系统


二、准备工作

1、安装KEIL5 MDK

本文的代码,需要MDK作为编译器,进行编译,需要预先安装。
安装过程请参考我的另一篇文章:KEIL5(MDK5.35)安装与破解教程

2、安装手机APP

本文的远程控制功能,使用ESP8266 WIFI模块连接机智云,因此需要安装机智云APP。
通过网盘分享的文件:机智云APP
链接: https://pan.baidu.com/s/1XhaXUUnueVs1UmZc2Floeg 提取码: 0000
–来自百度网盘超级会员v6的分享


三、系统框架

待更新。

四、硬件准备

1、主控制器

主控制器选择STM32F103C8T6。
如图:
在这里插入图片描述
STM32F103C8T6 是意法半导体(ST)推出的一款基于 ARM Cortex-M3 内核的 32 位微控制器,在嵌入式开发领域应用广泛,以下介绍它的主要资源:

  1. 内核

内核类型:采用 ARM Cortex - M3 内核,该内核具备高性能、低功耗的特点,拥有丰富的指令集,能够高效处理各类任务。
最高主频:最高工作频率可达 72MHz,可满足多种实时性要求较高的应用场景。

  1. 存储器

Flash 存储器:拥有 64KB 的嵌入式 Flash,可用于存储程序代码,开发人员能将编写好的应用程序烧录至此。
SRAM:具备 20KB 的静态随机存取存储器(SRAM),可用于存储程序运行时的临时数据,如变量、堆栈等。

  1. 外设接口

通用输入输出端口(GPIO):多达 37 个 GPIO 引脚,这些引脚可通过软件灵活配置为输入或输出模式,能连接各种外部设备,如按键、LED 灯、传感器等。
串口通信接口(USART):具备 3 个通用同步 / 异步收发器(USART),可实现与其他设备的串行通信,常用于与计算机、蓝牙模块、无线模块等进行数据交互。
SPI 接口:拥有 2 个串行外设接口(SPI),通信速度较快,常用于连接外部 Flash、传感器、显示屏等设备。
I2C 接口:具备 2 个集成电路间总线(I2C)接口,适用于连接低速外设,如 EEPROM、温度传感器等。
模数转换器(ADC):集成了 2 个 12 位的 ADC,总共拥有 10 个外部通道,可将模拟信号转换为数字信号,方便采集传感器输出的模拟量。
定时器:包含多个定时器,如 4 个通用定时器和 1 个高级控制定时器。定时器可用于产生 PWM 信号、测量时间间隔、生成定时中断等。
USB 接口:具备一个 USB 2.0 全速接口,可用于与计算机进行通信,实现数据传输、固件升级等功能。

  1. 其他特性

低功耗模式:支持多种低功耗模式,如睡眠模式、停机模式和待机模式,可根据应用需求选择合适的低功耗模式,以降低系统功耗,延长电池续航时间。
复位和电源管理:具备完善的复位和电源管理功能,包括上电复位(POR)、掉电复位(PDR)、可编程电压监测器(PVD)等,可提高系统的稳定性和可靠性。

2、显示屏

使用1.8寸显示屏,分辨率128*160。如图,
在这里插入图片描述
1.8寸彩屏,支持16BIT RGB 65K彩色显示,显示色彩丰富
128X160分辨率,显示清晰
采用SPI串行总线,只需几个IO即可点亮显示
带SD卡槽方便功能扩展
军工级工艺标准,长期稳定工作

3、WIFI模块

WIFI模块使用ESP8266,如图,
在这里插入图片描述
ESP01S 是一款基于乐鑫 ESP8266EX 芯片的低成本、低功耗 Wi-Fi 模块,专为物联网(IoT)和嵌入式系统设计。
以下是其详细介绍:

  1. 核心架构与性能
    处理器:采用 32 位 Tensilica L106 RISC 处理器,主频支持 80MHz 或 160MHz,集成 TCP/IP 协议栈,可直接运行用户程序。
    内存配置:
    闪存(Flash):提供 1MB 或 4MB 两种版本(具体型号差异),用于存储固件和用户代码。
    RAM:64KB,支持程序运行和数据缓存。
    通信协议:支持 802.11b/g/n 标准,数据传输速率最高 4Mbps,覆盖 2.4GHz 频段,支持 STA、AP、STA+AP 三种工作模式。
  2. 硬件资源与接口
    引脚定义:
    供电:3.0V~3.6V(推荐 3.3V),传输电流 170mA,接收电流 56mA。
    通信:UART 接口(TXD/RXD),支持 AT 指令交互,波特率默认 115200bps。
    GPIO:提供 2 个可编程引脚(GPIO0、GPIO2),可用于控制外设(如 LED、继电器)或传感器输入。
    其他:CH_PD(使能引脚,高电平有效)、RST(复位引脚)。
    扩展能力:
    PWM:部分引脚支持 PWM 输出,用于电机调速或灯光控制。
    I²C/SPI:需通过外部扩展芯片(如 PCF8574、MCP23017)实现。
  3. 低功耗特性
    工作模式:
    活跃模式:传输时电流约 170mA,接收时 56mA。
    睡眠模式:
    轻睡眠:电流约 10mA,保留网络连接。
    深度睡眠:电流低至 20μA,适用于电池供电设备。
    唤醒方式:支持定时唤醒、GPIO 触发唤醒或 UART 数据唤醒。
  4. 应用场景
    智能家居:通过 Wi-Fi 连接控制灯光、空调、门锁等设备。
    环境监测:采集温湿度、空气质量等数据并上传至云端。
    工业自动化:远程监控设备状态,实现无线数据传输。
    智能农业:监测土壤湿度、光照等参数,优化种植管理。

4、EEPROM AT24C02

EEPROM选择AT24C02,用来保存配置信息,复位后,信息不丢失。如图,
在这里插入图片描述
AT24C02 是 Atmel 公司(现被 Microchip 收购)生产的一款常用的串行电可擦除可编程只读存储器(EEPROM)芯片,下面从基本信息、特性、工作原理和应用场景几个方面详细介绍:

  1. 基本信息

存储容量:AT24C02 的存储容量为 2K 位,也就是 256 字节,可用来存储少量但重要的数据。
封装形式:它有多种封装形式,常见的有 8 引脚的 DIP(双列直插式封装)和 SOIC(小外形集成电路封装),能满足不同的应用需求。
通信接口:采用 I²C(Inter - Integrated Circuit)总线进行通信,这种接口只需两根线(时钟线 SCL 和数据线 SDA)就可以实现与微控制器之间的数据传输,使硬件连接变得简单。

  1. 主要特性

低功耗:在工作和待机状态下功耗都很低,适合应用于对功耗有严格要求的设备中,例如电池供电的设备。
可擦写次数多:它允许至少 100 万次的擦写操作,数据保存时间长达 100 年,保证了数据的长期可靠性和可维护性。
工作电压范围宽:工作电压范围一般为 1.8V - 5.5V,这使得它能适配不同电压的系统,提高了其通用性。
工作原理
寻址:AT24C02 有一个设备地址,由固定部分和可编程部分组成。固定部分取决于芯片型号,可编程部分由芯片的引脚 A0、A1、A2 决定。通过 I²C 总线,主设备(如微控制器)发送设备地址和内存地址,以选中要操作的存储单元。
数据读写:主设备发送写命令和数据到 AT24C02,芯片将数据存储到指定的内存地址;读取数据时,主设备发送读命令,AT24C02 会将指定地址的数据通过 SDA 线返回给主设备。

  1. 应用场景

数据记录:可用于存储设备的配置参数、校准数据、运行记录等,例如工业控制设备中的参数设置、智能电表的电量数据记录等。
备份数据:在一些系统中,将重要的数据备份到 AT24C02 中,以防止主存储器故障或数据丢失,如单片机系统中的关键数据备份。
消费电子:广泛应用于各种消费电子产品中,如智能家电、玩具等,用于存储用户设置和产品状态信息。

5、DHT11温湿度传感器

在这里插入图片描述
使用DHT11模块检测环境的温度和湿度。

DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11 功耗很低,5V 电源电压下,工作平均最大电流 0.5mA。
DHT11 的技术参数如下:
⚫ 工作电压范围:3.3V-5.5V
⚫ 工作电流 :平均 0.5mA
⚫ 输出:单总线数字信号
⚫ 测量范围:湿度 20~90%RH,温度 0~50℃
⚫ 精度 :湿度±5%,温度±2℃
⚫ 分辨率 :湿度 1%,温度 1℃

DHT11 数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由 5Byte(40Bit)组成。数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。DHT11 的数据格式为:8bit 湿度整数数据+8bit 湿度小数数据+8bit 温度整数
数据+8bit 温度小数数据+8bit 校验和。其中校验和数据为前四个字节相加。
传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。例如,某次从 DHT11 读到的数据如图所示:
在这里插入图片描述
由以上数据就可得到湿度和温度的值,计算方法:
湿度= byte4 . byte3=45.0 (%RH)
温度= byte2 . byte1=28.0 ( ℃)
校验= byte4+ byte3+ byte2+ byte1=73(=湿度+温度)(校验正确)
可以看出,DHT11 的数据格式是十分简单的,DHT11 和 MCU 的一次通信最大为 3ms 左右,
建议主机连续读取时间间隔不要小于 100ms。
下面,我们介绍一下 DHT11 的传输时序。DHT11 的数据发送流程如图所示:
在这里插入图片描述
首先主机发送开始信号,即:拉低数据线,保持 t1(至少 18ms)时间,然后拉高数据线 t2(20~40us)时间,然后读取 DHT11 的响应,正常的话,DHT11 会拉低数据线,保持 t3(40~50us)时间,作为响应信号,然后 DHT11 拉高数据线,保持 t4(40~50us)时间后,开始输出数据。
DHT11 输出数字‘0’的时序如图所示:
在这里插入图片描述
DHT11 输出数字‘1’的时序如图所示:
在这里插入图片描述
通过以上了解,我们就可以通过 STM32 来实现对 DHT11 的读取了。

6、烟雾气敏传感器模块:MQ-2

在这里插入图片描述

  1. 核心检测气体
    液化气(LPG)、丙烷、氢气、烟雾(如厨房油烟、火灾烟雾),对高浓度可燃气体和烟雾的响应速度快(≤10 秒),但对酒精、一氧化碳等气体也有交叉敏感。
  2. 典型场景
    家庭安全: 家庭厨房安装 MQ-2,可同时监测液化气泄漏和烹饪烟雾。
    工业监测:工厂车间丙烷泄漏监测、火灾烟雾排放监控。
    消费电子:便携式燃气检测仪、智能家居环境监测(如空气净化器联动)。
    特殊场景:森林火灾初期烟雾预警。
  3. MQ-2的工作原理
    MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。

7、燃气体传感器:MQ - 5

在这里插入图片描述

  1. 核心检测气体
    甲烷(天然气)、丁烷、丙烷(家庭 / 工业燃气)
  2. 典型场景
    家庭安全:天然气壁挂炉 / 燃气灶的泄漏监测。
    工业监测:天然气储存罐 / 输气管道的甲烷泄漏检测。
    消费电子:燃气热水器 / 烤箱的安全控制。
    特殊场景:煤矿井下瓦斯浓度监测。
  3. 功能参数介绍
    MQ-5气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大,使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信息。
    MQ-5气体传感器对丁烷,丙烷,甲烷的灵敏度高,对甲烷和丙烷可较好的兼顾。这种传感器可检测多种可燃性气体,特别是天然气,是一款适合多种应用的低成本传感器。

8、空气质量传感器:MQ-135

在这里插入图片描述

  1. 核心检测气体
    氨气(NH₃)、苯系物(如甲苯)、甲醛(HCHO)、硫化物(如 H₂S)、烟雾(如二手烟),对室内污染物(如甲醛)和工业废气(如苯)的检测范围更广,但对可燃气体的灵敏度较低。
  2. 典型场景
    新装修房间中可检测甲醛浓度(如 0.1ppm 以上),但对甲烷的灵敏度仅为 MQ-5 的 1/5。
    家庭安全:新装修房间甲醛检测、宠物厕所氨气监测.。
    工业监测:化工厂苯系物排放监控、农业温室氨气浓度调控。
    消费电子:智能手环 / 车载设备的空气质量监测(如 TVOC、甲醛)
    特殊场景:实验室通风橱有害气体(如硫化氢)实时监控。
  3. 功能参数介绍:
    MQ-135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中浓度的增加而增大,使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信息。

MQ传感器模块接好VCC和GND,模块电源指示灯会亮。使用前,供电至少预热2分钟以上,传感器稍微发热属于正常现象,因为内部有电热丝,如果烫手就不正常了。模块在无敏感气体影响或者气体浓度未超过设定阈值时,数字接口DO输出高电平,模拟接口AO电压基本为0V左右,当气体影响超过设定阈值时,模块数字接口DO输出低电平,数字指示灯亮,模拟接口AO输出的电压会随着气体的影响慢慢增大,AO输出:0.1-0.3V(相对无污染),浓度电压高可达4V左右;顺时针调节电位器(只针对TTL输出的灵敏度)感测的浓度加大;数字量输出DO可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境气体;数字量输出DO连接蜂鸣器和继电器,进行报警,以及控制窗户开关。

9、人体感应模块 HC-SR501

在这里插入图片描述

  1. 基本介绍
    HC-SR501 是一款基于 热释电红外传感器 的被动式人体感应模块,能够检测人体发出的红外辐射(波长约 10μm),从而感知人体移动。广泛应用于智能家居、安防系统、自动照明等场景,具有低成本、低功耗、易集成的特点。
  2. 核心工作原理
    热释电传感器:
    内置对人体红外辐射敏感的热释电元件,当人体进入感应区域时,其发出的红外辐射会使传感器表面温度变化,产生微弱电信号。
    菲涅尔透镜:模块前端的透镜可将红外信号聚焦到传感器上,扩大感应范围并提高灵敏度(角度约 120°,距离 3-7 米)。
    信号处理:
    微弱电信号经模块内部的运算放大器(如 LM358)放大、滤波后,通过比较器转换为 数字信号输出(高电平或低电平)。
  3. 典型应用场景
    智能家居:自动开关灯(人来灯亮,人走灯灭)、智能窗帘(有人时打开)。
    安防系统:人体入侵检测(联动摄像头拍照、蜂鸣器报警)。
    节能设备:自动启停的风扇、空调(检测到无人时进入节能模式)。
    互动装置:感应式广告机、智能玩具(检测到人体靠近时触发动作)。
  4. 模块调节功能
    TIMER 电位器(延时调节):
    调节感应触发后的高电平持续时间,范围约 5 秒到 300 秒(顺时针旋转延时增加)。
    SENS 电位器(灵敏度调节):
    调节感应距离,顺时针旋转灵敏度提高(感应距离增加),逆时针降低(适合近距离场景)。
    RESET 跳线帽(触发模式):
    H 档(可重复触发):在延时期间,若再次检测到人体移动,延时重新计时(适合持续有人活动的场景,如走廊)。
    L 档(不可重复触发):触发一次后,必须等待延时结束才会再次响应(适合单次触发场景,如自动门)。

五、软件设计

正在补充。


六、实验

1、实验准备

  1. 安装好KEIL5 MDK。
  2. 手机安装好机智云APP

总结

基础板已经完成,新的版本正在更新,正在努力完善中,稍作等待… …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值