一:功能介绍

1、实物组成部分:采用stm32f103c8t6核心板+DHT11温湿度传感器+DS1302时钟模块+光敏传感器+蜂鸣器+LCD1602+LED+独立按键;

2、采用DHT11传感器采集温湿度数据;

3、采用光敏传感器检测光照值;

4、LCD1602显示温湿度、光照值、时分秒、光照阈值、湿度阈值;

5、通过独立按键设置光照阈值和湿度阈值;

6、当采集湿度值大于设置值,蜂鸣器报警提醒(下雨提醒),LED灭掉(模拟晾衣架关闭状态);

7、当光照值大于设置值并且湿度低于设置阈值,LED打开(模拟晾衣架打开状态);

二:实物演示视频

272-基于stm32单片机智能晾衣杆控制系统(程序+原理图+元器件清单)

三:程序代码预览(采用keil5编写,使用的C语言,程序有中文注释,新手容易看懂)

特别注意:下载资料包以后一定要先解压! !!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

图片

图片

    void Display(void){char xxx=0,yyy=0;//T1 温度	WrByte1602(0,0,'T'); //.	WrByte1602(0,1,'='); //.			WrByte1602(0,2,AsciiCode[wendu%100/10]);	WrByte1602(0,3,AsciiCode[wendu%10]);	WrByte1602(0,4,' ');	//T2 湿度	WrByte1602(0,5,'H'); //.	WrByte1602(0,6,'='); //.			WrByte1602(0,7,AsciiCode[shidu%100/10]);	WrByte1602(0,8,AsciiCode[shidu%10]);	WrByte1602(0,9,' ');		//T3 光强	WrByte1602(0,10,'G'); //.	WrByte1602(0,11,'='); //.			WrByte1602(0,12,AsciiCode[guangqiang%1000/100]);		WrByte1602(0,13,AsciiCode[guangqiang%100/10]);	WrByte1602(0,14,AsciiCode[guangqiang%10]);	WrByte1602(0,15,' ');			xxx=0;yyy=1;	WrByte1602(yyy,xxx++,AsciiCode[shi%100/10]);	WrByte1602(yyy,xxx++,AsciiCode[shi%10]);	WrByte1602(yyy,xxx++,':');			WrByte1602(yyy,xxx++,AsciiCode[fen%100/10]);	WrByte1602(yyy,xxx++,AsciiCode[fen%10]);	WrByte1602(yyy,xxx++,':');		WrByte1602(yyy,xxx++,AsciiCode[miao%100/10]);	WrByte1602(yyy,xxx++,AsciiCode[miao%10]);	WrByte1602(yyy,xxx++,' ');		WrByte1602(yyy,xxx++,'G');			WrByte1602(yyy,xxx++,AsciiCode[gz%100/10]);	WrByte1602(yyy,xxx++,AsciiCode[gz%10]);	WrByte1602(yyy,xxx++,' ');			WrByte1602(yyy,xxx++,'S');	WrByte1602(yyy,xxx++,AsciiCode[sd%100/10]);	WrByte1602(yyy,xxx++,AsciiCode[sd%10]);	WrByte1602(yyy,xxx++,' ');		}int main(void){		float vol;//ADC电压值	//时钟配置	SystemInit();			SystemCoreClockUpdate();  //引脚配置	GPIO_Configuration();//LCD1602初始化	Init1602();	NVICConfig();//RCC时钟开启	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);	DS1302_Init();	 ADC_Set();		delay_ms(300);//DS1302_Write_Time();		DS1302_Get_Time(time_data);	//读取时间			shi=time_data[9]*10+time_data[10];		fen=time_data[11]*10+time_data[12];		miao=time_data[13]*10+time_data[14];				DHT11_receive(&shidu,&wendu);while (1)	{				delay_ms(10);//计算光强				 vol = ADC_GetConversionValue(ADC1);				 vol = 100-(vol)*(3.3/4096)*30;;				 //根据阻值计算光强				 guangqiang =vol;			    						 //读取温湿度				 DHT11_receive(&shidu,&wendu);						DS1302_Get_Time(time_data);	//读取时间							shi=time_data[9]*10+time_data[10];						fen=time_data[11]*10+time_data[12];						miao=time_data[13]*10+time_data[14];				         //显示全部参数				 Display(); //按键扫描				 anjiansaomiao();		     if(shidu>sd )		 {			 PAout(8)=0;//蜂鸣器打开			 PBout(10)=0;//关闭晾衣架		 }		 else  PAout(8)=1;//蜂鸣器关闭     if(guangqiang>gz&&shidu<=sd )//光强大于设置值 湿度低于等于设置值  打开晾衣架		 {			 PBout(10)=1;		 }		 else  PBout(10)=0;//否则关闭 	}}				  

    四:原理图展示(源文件采用Altium Designer打开,公众号有安装包)

    图片

    图片

    五:实物图展示

    图片

    图片

    六:元器件清单展示

    图片

    7:资料清单展示(文件中包含的相关资料)

    图片

    配套实物资料下载

    更多推荐