摘要
本文设计了一种基于STM32的温湿度传感器采集报警系统。该系统通过读取DHT11温湿度传感器和HCSR04超声波传感器的数值,并将这些数值在LCD1602液晶显示屏上实时显示。同时,系统还具备通过按键设置DHT11温湿度阈值的功能,当温湿度超过设定阈值时,系统将触发报警机制。本文详细阐述了系统的硬件组成、软件设计以及实现过程,为类似传感器采集与报警系统的设计提供了参考。
一、引言
随着物联网技术的快速发展,温湿度传感器在环境监测、智能家居等领域得到了广泛应用。设计一种能够实时采集温湿度数据并具备报警功能的系统具有重要意义。本文基于STM32微控制器,结合DHT11温湿度传感器和HCSR04超声波传感器,设计了一种温湿度采集报警系统。
二、系统硬件设计
- STM32微控制器
STM32微控制器作为系统的核心,负责数据的采集、处理以及控制功能的实现。
- DHT11温湿度传感器
DHT11温湿度传感器用于实时采集环境中的温湿度数据,并将数据通过数字信号输出给STM32微控制器。
- HCSR04超声波传感器
HCSR04超声波传感器用于测量距离,虽然本设计主要关注温湿度采集,但超声波传感器的加入可以为系统提供额外的环境感知能力。
- LCD1602液晶显示屏
LCD1602液晶显示屏用于实时显示DHT11和HCSR04的数值,方便用户查看。
- 按键模块
按键模块用于设置DHT11的温湿度阈值,用户可以根据实际需求调整阈值。
三、系统软件设计
- 初始化设置
系统启动后,首先进行初始化设置,包括STM32微控制器的配置、传感器的初始化以及LCD1602的初始化等。
- 数据采集与处理
STM32微控制器通过I/O接口读取DHT11和HCSR04的数值,并进行必要的转换和处理。DHT11的温湿度数据需要进行格式解析和单位转换,以便在LCD1602上正确显示。
- LCD显示
将处理后的DHT11和HCSR04数值通过LCD1602液晶显示屏实时显示出来,以便用户随时查看当前环境的温湿度和距离信息。
- 按键输入处理
系统实时监测按键输入,当用户按下设置键时,进入阈值设置模式。通过按键输入,用户可以设置DHT11的温湿度阈值。设置完成后,系统保存阈值并返回正常工作模式。
- 报警机制
系统实时监测DHT11的温湿度数据,当数据超过设定的阈值时,触发报警机制。报警方式可以根据实际需求进行定制,如蜂鸣器报警、LED闪烁等。
四、系统测试与应用
经过实际测试,本系统能够准确采集DHT11的温湿度数据和HCSR04的距离数据,并在LCD1602上实时显示。同时,系统能够根据用户设置的阈值进行报警,满足实际应用需求。
五、结论
本文设计了一种基于STM32的温湿度传感器采集报警系统,实现了温湿度数据的实时采集、显示以及报警功能。系统具有结构简单、功能实用、易于扩展的优点,为类似传感器采集与报警系统的设计提供了有益的参考。
这次的设计主要是通过读取DHT11和HCSR04的数值,(Proteus的传感器貌似这两款好用一点)把读取的DHT11和HCSR04数值通过转化在lcd1602中显示出来,还有就是可以设置通过按键设置DHT11的温湿度阈值。
仿真原理图如下
运行结果图:
按下K1,K2为加1设置,K3为减1设置
湿度低于88%;警报响,红灯亮
#include <stm32f4xx.h>
#include "delay.h"
#include "DHT11.h"
#include "LCD1602.h"
#include "SOUN.h"
#include "KEY_ExitInit.h"
#include "LED_INIT.h"
#include "HCSR04.h"
unsigned char move = 0x82;
unsigned char RH,RL,TH,TL;
unsigned char h0 = 0X38,h1 = 0X36;
unsigned char t0 = 0X32,t1 = 0X38;
unsigned char DATA[4];//存温湿度数据
unsigned char Leg[4];//存超声波
unsigned char R[7] = "SD:";
unsigned char H[7] = "WD:";
unsigned char L[7] = "Legth:";
unsigned char r[2] = "%";
unsigned char h[2] = "C";
// 读DHT11数据及数据转换 ///
int DHT11_ReadDATA(void)
{
int i;
省略。。
【资源下载】下载地址:点击下载(1648) https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8