一:功能介绍

1、实物组成部分:采用stm32f103c8t6核心板+超声波传感器+DHT11温湿度+光敏传感器+蜂鸣器+继电器风扇+OLED显示屏+独立按键;

2、采用DHT11传感器采集温湿度,OLED显示温湿度;

3、采用光敏传感器采集当前光照强度,OLED显示光照强度;

4、采用超声波传感器采集人与书桌之间距离,OLED显示距离;

5、自动模式下,光照越弱,台灯越亮,手动模式下,可以通过按键调节台灯亮度;

6、当温度大于设置阈值或者湿度大于设置阈值,风扇自动打开进行降温排气;

7、当检测距离小于设置阈值,蜂鸣器进行报警提醒(防近视);

8、可以通过按键进行定时,定时时间到达蜂鸣器进行提醒(防止久坐);

二:实物演示视频

276-基于stm32单片机多功能书桌智能台灯控制系统(程序+原理图+元器件清单)

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

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

图片

    int main(){	u16 adcx;int gz,buf=0,liangdu=0,time=0,t=0,buf1=0;	TIMER2_init(999,71);		SysTick_Init(72);	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组	USART1_Init(9600);	LED_Init();	DHT11_Init ();Adc_Init();Ultrasonic_init();		delay_ms(100);KEY_Init();beep=Q=1;		OLED_Init();	OLED_ShowString(0,0,"TEMP:",16,1); 	OLED_ShowString(80,0,"C",16,1);	OLED_ShowString(0,16,"HUMI:",16,1); 	OLED_ShowString(80,16,"%",16,1);	OLED_ShowString(0,32,"JULI:",16,1); 	OLED_ShowString(80,32,"CM",16,1);	OLED_ShowString(0,48," LUX:",16,1); 	OLED_ShowString(80,48,"LUX",16,1);		OLED_Refresh();TIM1_PWM_Init();while(1)	{if(K1==0)//自动/手动		{			buf++;if(buf>1) buf=0;while(K1!=0);					}if(buf==0)//自动		{			pwm_led_out_test((100-gz)/18);				OLED_ShowString(110,48,"zd",16,1);					}if(buf==1)//手动		{if(K2==0)			{				liangdu++;if(liangdu>5) liangdu=0;			}			pwm_led_out_test(liangdu);				OLED_ShowString(110,48,"sd",16,1);					}if(K3==0)		{			time=time+1;if(time>300) time=0;			buf1=1;		}if(buf1==1)		{			t++;if(t/60>time) 			{				buf1=0;				beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);				beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);				beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);				beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);				beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);			}					}		adcx=Get_Adc_Average(ADC_Channel_0,10);		gz=(330-(float)adcx/4096*330)/3.3;if(gz<0) gz=0;				DHT11_Read_TempAndHumidity ( & DHT11_Data );		oled_Ultrasonic();		OLED_ShowNum(50,0,DHT11_Data .temp_int,2,16,1);		OLED_ShowNum(50,16,DHT11_Data.humi_int,2,16,1);		OLED_ShowNum(50,32,length_num,3,16,1);		OLED_ShowNum(50,48,gz,3,16,1);		OLED_ShowNum(105,0,time,3,16,1);  // 	OLED_ShowNum(100,16,t,5,16,1);			OLED_Refresh();			beep=1;if(length_num<30) beep=0;if(DHT11_Data .temp_int>30||DHT11_Data.humi_int>70) Q=0;else Q=1;	}}

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

    图片

    图片

    五:实物图展示

    图片

    图片

    六:元器件清单展示

    图片

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

    图片

    实物配套资料下载

    更多推荐