【毕业设计】_基于STM32单片机的智能书房(原理图+源码)

一. 系统概述

本系统采用 STM32F103 单片机作为核心控制单元,能够通过光照传感器监测书房内的光照强度,并通过温度传感器收集温湿度数据。这些数据会在显示屏上显示,用户可以通过按键设置各参数的阈值。系统还配备了红外传感器,用于监测书房内是否有人。当检测到有人的情况下,若光照强度低于设定阈值,系统将自动开启 LED 灯。同时,若温度或湿度超过预设值,系统将启动空调进行环境调节。

在这里插入图片描述

二. 仿真概述

  1. 系统通过 DHT11 传感器检测温度和湿度,通过光敏电阻模块检测光强,并利用红外传感器判断书房内是否有人。这些信息将通过 OLED 显示屏显示,包括温湿度、光照强度及是否有人状态,同时显示当前设定的阈值。

在这里插入图片描述

  1. 温湿度调节通过 DHT11 上的红色按钮进行,当温湿度超出设定阈值时,系统会自动控制空调进行调节,并通过指示灯显示空调的开关状态。

在这里插入图片描述

  1. 光强的调节通过光敏电阻模块上的滑动变阻器进行。当检测到光照强度低于设定阈值且红外传感器探测到有人的情况下,系统会自动点亮照明灯。

在这里插入图片描述

  1. 用户可以通过按键设置温湿度和光照强度的阈值,调节过程中显示屏将显示“set”字样,提示当前正在调整的参数。

在这里插入图片描述

三.程序设计

#include <stm32f10x.h>
#include <delay.h>
#include <ADC_x.h>
#include <Lcd1602.h>
#include <Led.h>
/*==================================*
 *======>>>>>>  【ZW】  <<<<<<======*
 *==================================*/
#include "OLED.h"
#include "dht11.h"
#include <Key.h>
u8 t,h,l;
u8 set;
u8 th=30,hh=50,ll=20;
u8 key;
int main(void)
{	

	Adc1_Init();
	
	Led1_Init();
	Key_Init();
	OLED_Init();
	DHT11_Init();
	
	OLED_ShowString(1,1,"temp:");
	OLED_ShowString(2,1,"humi:");
	OLED_ShowString(3,1,"light:");
	OLED_ShowString(4,1,"people:");//OLED_ShowString(3,1,"in");OLED_ShowString(3,1,"absent");
	
//	Led1_High;
//	relay_High;
	
	
	
	while(1)
	{
		Key_Scan(&key);//OLED_ShowNum(1,14,key,1);
		
		if(key==3) { set++; if(set>3) set=0; key=0;}
		if(set==0) OLED_ShowString(3,13,"   ");
		else OLED_ShowString(3,13,"set");
		if(set==1){ if(key==1&&set==1) th++;if(key==2&&set==1) th--; key=0;}
		if(set==2){ if(key==1&&set==2) hh++;if(key==2&&set==2) hh--; key=0;}
		if(set==3){ if(key==1&&set==3) ll++;if(key==2&&set==3) ll--; key=0;}

		DHT11_Read_Data(&t,&h);OLED_ShowNum(1,10,th,2);OLED_ShowNum(2,10,hh,2);
		OLED_ShowNum(1,7,t,2);
		OLED_ShowNum(2,7,h,2);
		l = Get_Adc1();
		OLED_ShowNum(3,7,l,2);OLED_ShowNum(3,10,ll,2);
		
		if(Key4==0){ OLED_ShowString(4,8,"in    ");}
		else { OLED_ShowString(4,8,"absent"); }
		
		if(t>=th|| h>=hh) { relay_High;}
		else relay_Low;
		
		if(l<=ll && Key4==0) Led1_High;
		else Led1_Low;

	}	
}

24-32f-03

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值