STM32项目分享:智能风扇系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图

五、程序设计

六、实验效果

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1xw4m1Y7sA/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末)

二、项目简介

1.功能详解

基于STM32的智能风扇系统

功能如下:

  1. OLED显示当前温度,湿度,风扇档数和速度,自动手动模式。
  2. 按键可以设置自动和手动2种模式切换,自动档模式下可以设置温度阈值。
  3. 手动模式下可以自由开启风扇,调整档位等级。
  4. 自动模式下,人体红外检测到人并且当前温度大于我们设置温度上限值风扇开启。
  5. 每调速一次风扇档位加一,最大上限为5档。
  6. 有倒计时功能,可设置计时时间,时间到风扇自动关闭
  7. 蓝牙APP控制,具有手动、自动、模式切换和倒计时功能

2.主要器件

  • STM32F103C8T6最小系统板
  • DHT11温湿度传感器
  • OLED显示屏(4针I2C协议)
  • 蓝牙模块(BT04A)
  • TB6612直流电机驱动模块
  • HC-SR501人体红外传感器
  • 5V直流风扇
  • 蜂鸣器
  • LED灯

三、原理图设计

四、PCB硬件设计

PCB图

五、程序设计

cpp 复制代码
int main(void)
{
	/*模块初始化*/
	OLED_Init();		//OLED初始化
	Motor_Init();
	DHT11_Init();
	MatrixKey_Init();
	Red_Init();
	Timer_Init();
	Serial_Init();

	BEEP_GPIO_Config();
	
	OLED_ShowChinese(0,0,"温度");
	OLED_ShowChinese(16*4,0,"湿度");
	
	OLED_ShowChinese(0,16,"模式");
	OLED_ShowChinese(16*4,16,"档数");
	OLED_ShowNum(16*2,16,Key_M,1,OLED_8X16);
	OLED_ShowNum(16*6,16,dang,1,OLED_8X16);
	
	OLED_ShowChinese(0,16*2,"速度:");
	OLED_ShowSignedNum(16*3,16*2,Speed,3,OLED_8X16);
	
	OLED_ShowChinese(0,16*3,"倒计时:");
	OLED_ShowNum(16*4,16*3,Time,2,OLED_8X16);
	OLED_Update();
	
	GPIO_SetBits(GPIOB, GPIO_Pin_0);
	GPIO_SetBits(GPIOB, GPIO_Pin_1);
	Delay_ms(100);
	GPIO_ResetBits(GPIOB, GPIO_Pin_0);
	GPIO_ResetBits(GPIOB, GPIO_Pin_1);

	while (1)
	{
		DHT11_Read_Data(&TH,&RH);//获取当前温湿度
		OLED_ShowNum(16*2,0,TH,2,OLED_8X16);
		OLED_ShowNum(16*6,0,RH,2,OLED_8X16);
		OLED_Update();
		if(Timedemo == 1)
		{
			if(RED_Data == 1)	//如果有人
			{
				OLED_ShowString(16*6,16*2,"Hi! ",OLED_8X16);
				if(temperature < TH)	//实际温度高于设置阈值
				{
//					Speed = (TH-temperature)*20;	//每高一度速度+20
//					if(Speed > 100)
//					{
//						Speed = 100;
//					}
					Speed = 100;
				}
				else Speed = 0;			
			}
			else
			{
				OLED_ShowString(16*6,16*2,"Bey!",OLED_8X16);
				Speed = 0;
			}
			OLED_ShowSignedNum(16*3,16*2,Speed,3,OLED_8X16);			
			
			OLED_Update();
			Motor_SetSpeed(Speed);
		}
		Delay_ms(500);

	}
}

六、实验效果

七、资料内容

项目分享

相关推荐
朝发如雪7 小时前
快速掌握单片机基础(3)(PWM)(通信协议基础)(串口通信时序与参数)(电气特性与电平标准)(51单片机UART寄存器配置)(串口应用层协议)
单片机
天空'之城9 小时前
单片机基础核心知识点汇总(四十)
单片机·嵌入式硬件
smartpi_ai10 小时前
离线语音模块误识别问题全面解决方案:命令词设计、防误触与灵敏度调优指南
人工智能·单片机·语音识别
LCG元10 小时前
STM32F103 驱动 HX711 称重实战:DOUT 就绪时序、增益切换陷阱与两点标定精度实测
stm32·单片机·嵌入式硬件
染予10 小时前
代码中相关C语言知识点总结
stm32
优信电子10 小时前
STM32 驱动 DHT30 测量环境温湿度(兼容SHT30):从时序解析到完整代码实战
stm32·嵌入式·传感器·sht30·温湿度·环境测量·dht30
小李不想当小白12 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
朝发如雪12 小时前
快速掌握单片机基础(6)(数据处理与传送指令)(跳转与分支指令)(栈操作与混合编程)(程序状态寄存器操作指令)(内存映射)
单片机·arm
blue_ice .12 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
深圳市恒锐丰科技杨生12 小时前
EG4318 / EG4319 / EG4320 铅酸电池三段式充电副边管理芯片|屹晶 EGmicro
嵌入式硬件·硬件工程