STM32项目分享:智能家居语音系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图

2.PCB打板焊接图:

五、程序设计

六、实验效果

七、包含内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1K94y1H7mk/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末)

二、项目简介

1.功能详解

基于STM32的智能家居语音系统

功能如下:

  1. 温湿度采集:系统通过DHT11模块采集温湿度
  2. 烟雾监测:通过MQ-2模块采集环境中烟雾浓度
  3. 光照强度采集:通过BH1750传感器采集环境光照强度
  4. 窗帘控制:通过步进电机转动模拟窗帘控制
  5. 风扇控制:通过继电器和指示灯模拟风扇驱动
  6. 照明控制:通过继电器和指示灯模拟照明驱动
  7. 蜂鸣器报警:环境烟雾异常情况下蜂鸣器报警
  8. OLED显示:显示温湿度、光照强度和烟雾浓度
  9. APP功能:使用机智云APP,包括功能有控制照明灯和风扇开关、显示当前温湿度信息
  10. 自动模式:烧录自动模式程序,系统根据光强大小控制窗帘和LED灯的开闭,同时禁止手动模式的APP控制

2.主要器件

  • STM32F103C8T6最小系统板
  • DHT11温湿度传感器
  • OLED显示屏(4针I2C协议)
  • WiFi模块(ESP8266-01s)
  • MQ-2烟雾传感器
  • BH1750光照强度传感器
  • 28BYJ51步进电机
  • 继电器
  • 蜂鸣器
  • LED灯

三、原理图设计

四、PCB硬件设计

1.PCB图

2.PCB打板焊接图:

五、程序设计

cpp 复制代码
int main ( void )
{ 
	/* 系统时钟树配置 */
	RCC_Configuration();
	/* 中断系统配置 */
	NVIC_Configuration();
	/* 初始化硬件延时, 使用滴答定时器完成 */
	delay_init();
    /* 板级初始化 */
	DEBUG_UART_Config( );
	DEBUG_LOG("Bsp init\n");
	/* 上电延时,等待各个模块运行稳定 */
	delay_ms( 200 );
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); //使能相应接口的时钟,以及RCC_APB2Periph_AFIO
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //禁用JTAG
	/* 初始化定时器3, 中断频率 1000hz */
    FML_TIME_Init();
    FML_TIME_Register(Sys_timer_handle, 1);	//系统时间片,1tick = 1ms
    FML_TIME_Start(Sys_timer_handle); //开启定时 
	/* 配置按键引脚 */
	//Key_GPIO_Config(p_SysParamHandle->p_keyhandle);	
	/* LED Fan IO 初始化 */
	LED_Init( );
	BEEP_Init();
	Moto_Init();
	/* dht11 初始化 */
	DHT11_Init();
	/* 语音模块初始化 */
	ld3322_init( );
	RegisterLd3322(p_SysParamHandle->psLdHandle, CmdList, CMD_NUM);	/*!< 注册指令参数表 */
	Switch_GPIO_Config( );
	/* 机智云SDK初始化 */
	Gizwits_Init();
	/* 0.96OLED初始化 */
	OLED_Init();
	BH1750_Init();
	ADC_Sensor_Init();
	/*!< 延时确保初始页面错误 */
	delay_ms(300);
	/* OLED显示初始画面 */
	OLED_InitPage( ); 
    while ( 1 )
	{ 
    /* 传感器数据 */
       	if (p_SysParamHandle->u32SensorTim == 0)
	    {
		p_SysParamHandle->u32SensorTim = 200;
		p_SysParamHandle->u16Lightness = bh_data_read( );	//!< 读取光照强度
		get_mq2_value( &p_SysParamHandle->fMqValue );	//!< 读取烟雾浓度
		DHT11_Read_TempAndHumidity( p_SysParamHandle->psDHT11DataHandle );//!< 读取温湿度
	    }
        /* ld3320语音识别模块 */ 
	    uint16_t index;
	    if (psLdHandle->bl_rev_cmd_flg == CMD_REV_OK)
	    {
	    	psLdHandle->bl_rev_cmd_flg = CMD_REV_NO_OK;
	    	for (index=0; index<psLdHandle->u16_cmd_num; index++)
		    {
			    if (!strcmp(psLdHandle->pCmdTable[index].cmd_str, psLdHandle->pu8_rev_cmd_buf))
			    {
				    psLdHandle->pCmdTable[index].funCallback();
				    DEBUG_LOG("Ld3322 check OK\n");
				    break;
			    }
		    }
		    if (index == psLdHandle->u16_cmd_num)
		    {
			    DEBUG_LOG("Ld3322 Erorr\n");
		    }
		    User_MemSet(psLdHandle->pu8_rev_cmd_buf, 0x0, 30);
	    }
        /* 机智云云端协议处理 - 任务 */
	    gizwitsHandle( p_SysParamHandle->p_DataPoint );
	    /* 机智云数据同步 - 任务 */
	    app_SyncData_Task( p_SysParamHandle );
        /* oled参数更新 - 任务 */
	    char str[16] = {0};
	    if (p_SysParamHandle->u32LcdUpdateTim == 0)
	    {
		    /* 任务时间重装载 */
		    p_SysParamHandle->u32LcdUpdateTim = 1000;
		    sprintf(str, "%d", p_SysParamHandle->psDHT11DataHandle->temp_int);
		    OLED_ShowCnAndAsciiStr(40, 		0,		str, 2);
		    sprintf(str, "%d", p_SysParamHandle->psDHT11DataHandle->humi_int);
		    OLED_ShowCnAndAsciiStr(40, 		2,		str, 2);
		    sprintf(str, "%d", p_SysParamHandle->u16Lightness);
		    OLED_ShowCnAndAsciiStr(80, 		4,		str, 2);
		    sprintf(str, "%.2f", p_SysParamHandle->fMqValue);
		    OLED_ShowCnAndAsciiStr(80, 		6,		str, 2);
		    /* 机智云事件处理 - 线程 */ 
	        app_GizwitsDataEvent_Handle( p_SysParamHandle );
	    }
    }
}

六、实验效果

七、资料内容

项目分享

相关推荐
faec11310 小时前
2024年双十一有什么好物推荐?双十一必买好物清单大揭秘
智能家居
远翔调光芯片^1382879887211 小时前
远翔升压恒流芯片FP7209X与FP7209M什么区别?做以下应用市场摄影补光灯、便携灯、智能家居(调光)市场、太阳能、车灯、洗墙灯、舞台灯必看!
科技·单片机·智能家居·能源
stm32发烧友17 小时前
基于STM32的智能家居环境监测系统设计
stm32·嵌入式硬件·智能家居
lucy153027510792 天前
【青牛科技】GC2803:白色家电与安防领域中 ULN2803 的卓越替代者
科技·单片机·智能家居·能源·安防·开关电源·白色家电
尘浮生4 天前
Java项目实战II基于Spring Boot的智能家居系统(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·mysql·maven·智能家居
沐欣工作室_lvyiyi5 天前
基于单片机的智能家居排气扇系统设计
stm32·单片机·嵌入式硬件·物联网·智能家居
乐鑫科技 Espressif7 天前
ESP-HaloPanel:用 ESP32-C2 打造超低成本智能家居面板
esp32·智能家居·wi-fi
花伤情犹在7 天前
Docker 安装HomeAssistant智能家居系统
docker·容器·智能家居
yufei-coder8 天前
使用语音模块的开发智能家居产品(使用雷龙LSYT201B 语音模块)
嵌入式·智能家居·语音模块