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

一. 系统概述

该系统以STM32单片机为核心控制单元,提供三种不同的窗帘控制模式:蓝牙控制、手动控制和自动控制。用户可以通过蓝牙或按键直接控制窗帘的开关。在自动模式下,系统会根据实时的温度和光照强度来决定窗帘的开合状态。

二. 仿真概述

  1. 在仿真启动后,串口助手会显示OK响应,表明连接成功。以下为网页端串口助手的界面:

  1. 发送十进制值1以拉上窗帘,显示屏上会显示001,表示窗帘已被拉上。

  1. 发送十进制值2以打开窗帘,显示屏上将显示002,表示窗帘已被打开。

  1. 按下设置按键可以设定温度和光强的阈值,模式按键则用来切换自动控制和手动控制模式。在手动模式下,用户可以直接控制窗帘的开关状态。

  1. 按下模式按键时,显示屏将显示“Au”,表示系统处于自动模式。在此模式下,系统会根据设定的温度和光照阈值自动调整窗帘的开关状态。如果温度或光强超出设定阈值,则窗帘会拉上;如果低于阈值,则窗帘会打开。

三.程序设计

#include <main.h>

//
u8 Rxdat;
u8 adc,t,h,m=0,c=0,set=0,th=30,tl=15,hh=30,hl=20;
//


//
void UserDispiayControl(void);
void SetDisplay(void);
void Set(void);
//


int main(void)
{
	//Init Star
	Usart1_Init(9600);//pa9-10
	Lcd1602_Init();//pc0-7 pb0-2
	Key_Init();//pa12-15
	PCF8591_Init();//pb10-11
	Motor_Init();//pb12-15
	DHT11_Init();//pa0
	//Init End
	
	
	//display star
	Usart1_TxString("ok");
	//display end
	
	
	while(1)
	{
		//get dat
		DHT11_Read_Data(&t,&h);
		adc=PCF8591_ADC_Input(0x90,1);
		//串口收数据
		if(Usart1_GetRxFlag() ==1)			//判断是否收到数据
		{			
			Rxdat=Usart1_GetRxDat();		//存数据
			Usart1_TxByte(Rxdat);			//回传显示
			Lcd1602_Write_Num8(0xc0,Rxdat);	//显示屏显示
		}
		//get dat
		
		
		//key
		if(Key4==0)	
		{
			m=~m;
			while(Key4 != 0);
		}
		if(Key3==0)	
		{
			Lcd1602_Write_CD(CMD,0X01);
			set++;
			if(set==5) set=0;
		}		
		//key
		
		//user+set
		Set();
		//
	}
}


24-32f-35

作者:硬件设计辅导猿

物联沃分享整理
物联沃-IOTWORD物联网 » 【毕业设计】_基于STM32单片机的智能窗帘控制(原理图+源码)

发表回复