一、项目功能概述
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("欢迎使用化作尘智能家居系统\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控制
(六)添加更多语音控制功能
五、项目展示:
|