STM32项目:构建基于STM32的智能家居系统

文章目录

  • @[toc]
  • 一、项目功能概述
  • 二、项目原理图
  • 三、程序设计
  • 四、扩展功能
  • 五、项目展示:
  • 项目资料链接:https://pan.baidu.com/s/1nghgsyOM_isTMALuWKXfgA
    提取码:gk4p
    哔哩哔哩视频:https://www.bilibili.com/video/BV1vi4y117L1?spm_id_from=333.999.0.0
    实物购买链接:https://m.tb.cn/h.fqk4lIh?tk=qqL32iqP0Px

    一、项目功能概述

    1、OLED显示温湿度、空气质量,并可以设置报警阈值
    2、设置4个继电器开关,分别控制灯、空调、开关、风扇
    3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上
    4、OLED实时显示4个继电器的状态
    5、设计一个低功耗开关电路,可以语音控制使得系统进入低功耗模式,并且进入低功耗模式后可以再次语音唤醒系统,重新开始正常工作
    语音控制具体描述:

    语音 回答 动作
    “小爱同学” ”我在“
    “打开灯”“开灯”“请开灯” 灯已打开 动作: 打开灯继电器开关,OLED 屏显示识别的命令词,并且更改继电器显示的状态
    “关闭灯”“关灯”“请关灯” 灯已关闭 动作: 关闭灯继电器开关,
    “打开空调”“开空调” 空调已打开 动作: 打开空调继电器开关,
    “关闭空调” 空调已关闭 ”动作: 关闭空调继电器开关,
    。。。 。。。 。。。

    二、项目原理图

    (一)最小系统

    (二)供电

    (三)传感器

    (四)语音模块

    (五)继电器模组

    (六)按键蜂鸣器

    (七)低功耗开关

    三、程序设计

    
     int main(void)
     {	
    	u16 key;
    	int adc,cnt=0;
    	float volt;
    	delay_init();	    	 
    	NVIC_Configuration(); 	 
    	BEEP_Init();
    	OLED_Init();			
    	OLED_Clear();
    	uart_init(115200);
    	printf("欢迎使用化作尘智能家居系统\r\n");
    	KEY_Init();
    	LED_Init();
    	TIM3_Int_Init(500-1,720-1);
    	DEV_Init();//外设初始化
    	 
    	 
    	OLED_ShowCHinese(8,0,50);//
    	delay_ms(200);
    	OLED_ShowCHinese(24,0,51);//
    	delay_ms(200);
    	OLED_ShowCHinese(40,0,52);//
    	delay_ms(200);
    	OLED_ShowCHinese(56,0,39);//
    	delay_ms(200);
    	OLED_ShowCHinese(72,0,40);//
    	delay_ms(200);            
    	OLED_ShowCHinese(88,0,48);//
    	delay_ms(200);            
    	OLED_ShowCHinese(104,0,49);//
    	delay_ms(200);            
    		
    	OLED_ShowNum(0,2,201908,6,16);
    	OLED_ShowNum(48,2,384176,6,16);
    	
    	
    		OLED_ShowCHinese(40,4,53);
    		OLED_ShowCHinese(56,4,54);
    		OLED_ShowCHinese(72,4,55);
    		
    		delay_ms(1500);            
    		
    		OLED_Clear(); 
    		OLED_Dis_Menu();
    	while(1)		
    	{		
    		if(cnt++ ==1000)
    		{
    			cnt = 0;
    			LED0=!LED0;
    			adc =	Get_Adc_Average(0,5);
    			volt = adc*3.3/4096;
    			air = pow((3.4880*10*volt)/(5-volt),(1.0/0.3203));
    			printf("air :%d\r\n",air);
    			//获取温湿度
    			DHT11_Read_Data( &temp, &humi);
    			if(last_temp!=temp || last_humi!=humi)
    			{
    				OLED_Dis_DHT(temp,humi,air);
    			}
    		}
    		key = Key_GetValue();          //按键扫描
    		if(key)
    		DealKeyVal(key);
    		if(!KEY1_IO())
    		{
    				printf("%d\r\n",GetTime());
    		}
    		if(temp>Max_temp || humi>Max_humi || air>Max_air)
    		{
    			if(cnt<500)BEEP=1;
    			else if(cnt<1000)BEEP=0;
    		}else BEEP=0;
    		
    		
    		delay_ms(1);
    	}	  
    	
    }
    
    

    四、扩展功能

    (一)根据环境温湿度、空气状况,自动控制智能家居设备
    (二)优化界面,添加系统更多设置,报警设置、家居控制模式选择、智能开关机模式
    (三)添加定时开关智能家居模式
    (四)添加蓝牙或WIFI模块
    (五)设计手机APP控制
    (六)添加更多语音控制功能

    五、项目展示:

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32项目:构建基于STM32的智能家居系统

    发表评论