首页 > 其他分享 >基于STM32的简易智能家居设计(嘉立创支持)

基于STM32的简易智能家居设计(嘉立创支持)

时间:2024-06-12 20:01:45浏览次数:28  
标签:delay 200 智能家居 OLED ShowCHinese STM32 嘉立 humi ms

一、项目功能概述

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控制
(六)添加更多语音控制功能

感谢嘉立创对全程设计的支持。

标签:delay,200,智能家居,OLED,ShowCHinese,STM32,嘉立,humi,ms
From: https://blog.csdn.net/qq_51182593/article/details/139634922

相关文章

  • FreeRTOS学习笔记-基于stm32(14)内存管理
    一、FreeRTOS内存管理简介        FreeRTOS有两种方法来创建任务,队列,信号量等,一种动态一种静态。静态方法需要手动定义任务堆栈。使用动态内存管理的时候FreeRTOS内核在创建任务、队列、信号量的时候会动态的申请RAM。    我们在移植FreeRTOS时可以看到......
  • stm32系统时钟RCC简析
    一概念STM32本身十分复杂,外设非常多  但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,为了兼容不同速度的设备,有些高速,有些低速,如果都用高速时钟,势必造成浪费  并且,同一个电路,时钟越快功耗越快,同......
  • 【STM32F1例程2】GPIO外部中断输入
    1.实验说明无需连外部杜邦线,下载程序,全速运行,按右边按键看到LEDD1(PB4引脚驱动)亮暗能变化一次2.主要代码先上main.c#include"delay.h"#include"sys.h"//外部中断0配置,PA0脚产生外部中断是外部中断0voidEXTI0_Config(void){ EXTI_InitTypeDefEXTI_InitStructur......
  • 【STM32F1例程3】ADC实验
    1.实验说明 PA4口作为ADC采集口,PA4口接地或者接3.3V。下载运行程序,PA4口接地,会发现VolDta值为0,然后把PA4口接3.3V,会发现VolDta值为33002.主要程序直接上main.c#include"delay.h"#include"sys.h"//ADC配置,ADC1通道4voidADC_Config_Init(void){ ADC_InitTypeDef......
  • 基于STM32开发的智能鱼缸控制系统
    目录引言环境准备智能鱼缸控制系统基础代码实现:实现智能鱼缸控制系统4.1水温传感器数据读取4.2水泵与加热器控制4.3水位传感器数据读取4.4用户界面与数据可视化应用场景:水族箱管理与优化问题解决方案与优化收尾与总结1.引言智能鱼缸控制系统在维护水族箱生态平衡和......
  • STM32单片机开发入门(三) 万用表的介绍及使用方法
    文章目录一.概要二.电阻测量三.直流电压(单片机小系统板)电压的测量四.交流电压的测量五.二极管(发光二极管)正负极的测量六.电流(单片机小系统板)功耗的测量七.电路(单片机小系统板)通断检测八.数字万用表使用注意事项小结一.概要我们说的万用表一般都是数字式万用表......
  • STM32 + RT-Thread + LVGL
    一、基本信息MCU:STM32F103ZET6RT-Thread:5.0.2LVGL:8.3.11LCD:ST7735s编译环境:RTThreadstudio二、LVGL移植要求16、32或64位微控制器或处理器建议速度大于16MHz闪存/ROM:>64kB(建议180kB)内存:8kB(建议24kB)1个帧缓冲器:在MCU、外部RAM或显示控制器中LVGL的......
  • 简单解释STM32中断
    中断作用:高效处理紧急程序,并且不会占用CPU资源。 在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行即打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行; ......
  • 杂项——编码器控制小车走固定距离(stm32)
    先算出轮子转一周编码器的数值(假设为1000),再算出轮子一周的周长(假设为10cm)。那么要前进1米只需要转1米/10cm等于10圈,10圈编码器数值为10000。我们只需要在代码里面写出编码器数值如果<10000则让小车前进,如果>10000让小车停止,即可实现控制小车走固定的距离编码器.c函数(编码器......
  • STM32单片机开发入门(四) 示波器的介绍及使用方法
    文章目录一.概要二.探头补偿校准三.电压测量四.波形的测量与分析五.串口通讯波形测量解析六.触发捕捉瞬时信号七.小结一.概要示波器主要用于观察电信号的波形变化。在显示屏上,工程师可以直接看到电信号的全过程,从而进行定性和定量的分析。这种仪器通常用于显示电压......