STM32项目设计:基于stm32的智能家居系统设计
项目资料链接: 提取码:gk4p 哔哩哔哩视频: 实物购买链接:
一、项目功能概述
1、OLED显示温湿度、空气质量,并可以设置报警阈值 2、设置4个继电器开关,分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示4个继电器的状态 5、设计一个低功耗开关电路,可以语音控制使得系统进入低功耗模式,并且进入低功耗模式后可以再次语音唤醒系统,重新开始正常工作 语音控制具体描述:
二、项目原理图
(一)最小系统
(二)供电 (三)传感器 (四)语音模块 (五)继电器模组
(六)按键蜂鸣器 (七)低功耗开关
三、程序设计
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("欢迎使用化作尘智能家居系统
");
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
",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
",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控制 (六)添加更多语音控制功能
