基于STM32的温湿度智慧感应监测系统

前言

随着物联网技术的不断发展,智慧感应监测系统在各个领域得到了广泛的应用。本文基于stm32开发板,设计了一款温湿度智慧感应监测系统。该系统可以实现对环境温湿度参数检测并显示,以及有人时亮屏无人时息屏的功能

一、设计任务

  1. 可以通过温度传感器对环境温湿度进行采集,并用实时显示在OLED屏幕上
  2. 可以在无人观看时完成息屏操作
  3. 可以设定固定的报警温湿度值显示在OLED 屏幕上
  4. 环境温湿度超过报警温度后报警,报警形式包括:蜂鸣器声音响,OLED屏幕给出温度超出的提示
  5. 能够通过按键动态修改报警温湿度阈值

二、系统硬件设计

1.元器件选用

  1. STM32f103ZET6单片机一块
  2. 0.96 7针OLED
  3. DHT11温湿度监测模块
  4. HC_SR501人体传感器
  5. 按键(核心板自带,可外接)
  6. LED(核心板自带,可外接)
  7. 杜邦线若干

2.系统模型设计

温湿度传感器检测环境温湿度参数并发送给单片机,单片机处理温湿度数据并根据情况显示在OLED 屏幕显示。人体传感器检测是否有人靠近,若有则OLED显示数据,若无则保持息屏状态(未报警状态)。此外,可以使用按键编辑温湿度阈值,若检测到的数据超过阈值设置则发出对应的警报。

基于STM32的温湿度智慧感应监测系统
硬件结构图

3.硬件连接

基于STM32的温湿度智慧感应监测系统
硬件连接图

三、系统程序设计

1.程序流程

本系统实现了温湿度的实时监测,并可根据预设值报警(默认是50/50),当处于非报警期间当人离开屏幕自动熄灭,人靠近时显示当前的温湿度以及预设值等信息(OLED第一行是状态栏,用于显示温湿度传感器的在线状态以及报警信息;第二行显示实时的温湿度信息;第三行显示预设值信息);当按下KEY_UP按键可以却换模式(控制温度预设/湿度预设值),按下KEY0/KEY1调整数值,详情请看按键逻辑;当温度或湿度超过预设值会报警,报警会在oled右上角显示“W”(waring),并且led会亮!

基于STM32的温湿度智慧感应监测系统
软件流程图
基于STM32的温湿度智慧感应监测系统
按键逻辑图

2.程序代码

main.c

#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "key.h"
#include "time.h"
#include "dht11.h"
#include "usart.h"
#include "oled.h"
#include "hc_sr501.h"
#include "picture.h"

u8 temp,humi;
int people=0,set_choose=0,set_temp=50,set_humi=50,waring=0;

int main()
{
	u8 i;
	SysTick_Init(72);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
	LED_Init();
	KEY_Init();
	OLED_Init(); //OLED初始化
	DHT11_Init();
	
	USART1_Init(115200);
	
	OLED_DrawBMP(0,0,128,8,(u8 *)pic1);	  //如果要正着显示,需要将取模方式修改重新取模
	

	OLED_Clear();
	TIM4_Init(2000,36000-1);  
	
	
	while(1)
	{
		
		i++;
		if(i%20==0)
		{
			DHT11_Read_Data(&temp,&humi);
		}
		
		if(HC_SR501_KEY()==1)
		{
			people=1;
		}
		else
		{
			people=0;
		}
		
		switch(KEY_Scan(0))
		{
			case KEY_UP_PRESS: 
				set_choose++;
				if(set_choose == 2) set_choose = 0;
				break;      
			case KEY1_PRESS: 
				if(set_choose == 0)
				{
					if(set_temp == 100)
					{
						set_temp = 0;
					}
					set_temp +=5;
				}
				if(set_choose == 1)
				{
					if(set_humi == 100)
					{
						set_humi = 0;
					}
					set_humi +=5;
				}
				break;   
			case KEY0_PRESS: 
				if(set_choose == 0)
				{
					if(set_temp == 0)
					{
						set_temp = 100;
					}
					set_temp -=5;
				}
				if(set_choose == 1)
				{
					if(set_humi == 0)
					{
						set_humi = 100;
					}
					set_humi -=5;
				}
				break;   
		}
		
		if(temp > set_temp || humi > set_humi)
		{
			waring=1;
			LED1 = 0;
		}
		else
		{
			waring=0;
			LED1 = 1;
		}

		delay_ms(100);	
	}
}

四、实物展示

总结

基于stm32的温湿度智慧感应监测报警系统是一个基础的stm32设计小项目,非常适合初学者在学习理论知识后进行实践。本系统在硬件上使用了OLED屏幕,人体传感器和按键,按键阈值设置逻辑也是stm32项目设计经常使用的点。

基于STM32的温湿度智慧感应监测系统

基于STM32的温湿度智慧感应监测系统¥99.00

文件数量 1 文件大小 5.30MB 文件格式 ZIP 下载方式 123网盘
已付费?登录刷新

注意:购买前请再三确认,商品一旦出售概不退货,如有疑问请转至 疑问帮助

上一篇 2024年3月16日 下午6:21
下一篇 2024年5月31日 上午11:54

相关推荐