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

06-13 967阅读

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB打板焊接图:

五、程序设计 

六、实验效果 

七、包含内容

项目分享


一、前言

项目成品图片:

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

哔哩哔哩视频链接:

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灯

    三、原理图设计

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

    四、PCB硬件设计

    1.PCB图 

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

    2.PCB打板焊接图:

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

    五、程序设计 

    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);	/*!u32SensorTim == 0)
    	    {
    		p_SysParamHandle->u32SensorTim = 200;
    		p_SysParamHandle->u16Lightness = bh_data_read( );	//!fMqValue );	//!psDHT11DataHandle );//!bl_rev_cmd_flg == CMD_REV_OK)
    	    {
    	    	psLdHandle->bl_rev_cmd_flg = CMD_REV_NO_OK;
    	    	for (index=0; indexu16_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 );
    	    }
        }
    }

    六、实验效果 

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

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

    七、资料内容

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

    项目分享

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]