STM32项目分享:智能家居语音系统
目录
一、前言
二、项目简介
1.功能详解
2.主要器件
三、原理图设计
四、PCB硬件设计
1.PCB图
2.PCB打板焊接图:
五、程序设计
六、实验效果
七、包含内容
项目分享
一、前言
项目成品图片:
哔哩哔哩视频链接:
https://www.bilibili.com/video/BV1K94y1H7mk/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2
(资料分享见文末)
二、项目简介
1.功能详解
基于STM32的智能家居语音系统
功能如下:
- 温湿度采集:系统通过DHT11模块采集温湿度
- 烟雾监测:通过MQ-2模块采集环境中烟雾浓度
- 光照强度采集:通过BH1750传感器采集环境光照强度
- 窗帘控制:通过步进电机转动模拟窗帘控制
- 风扇控制:通过继电器和指示灯模拟风扇驱动
- 照明控制:通过继电器和指示灯模拟照明驱动
- 蜂鸣器报警:环境烟雾异常情况下蜂鸣器报警
- OLED显示:显示温湿度、光照强度和烟雾浓度
- APP功能:使用机智云APP,包括功能有控制照明灯和风扇开关、显示当前温湿度信息
- 自动模式:烧录自动模式程序,系统根据光强大小控制窗帘和LED灯的开闭,同时禁止手动模式的APP控制
2.主要器件
- STM32F103C8T6最小系统板
- DHT11温湿度传感器
- OLED显示屏(4针I2C协议)
- WiFi模块(ESP8266-01s)
- MQ-2烟雾传感器
- BH1750光照强度传感器
- 28BYJ51步进电机
- 继电器
- 蜂鸣器
- LED灯
三、原理图设计
四、PCB硬件设计
1.PCB图
2.PCB打板焊接图:
五、程序设计
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 ); } } }
六、实验效果
七、资料内容
项目分享
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。