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_AFIOGPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //禁用JTAG/* 初始化定时器3, 中断频率 1000hz */FML_TIME_Init();FML_TIME_Register(Sys_timer_handle, 1); //系统时间片,1tick = 1msFML_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 );}}
}
六、实验效果


七、资料内容

项目分享
相关文章:
STM32项目分享:智能家居语音系统
目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB打板焊接图: 五、程序设计 六、实验效果 七、包含内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.com…...
iOS 18 为 iPhone 15 机型引入了更多充电限制选项
iOS 18 为 iPhone 15 机型引入了更多充电限制选项 所有四款iPhone 15型号都具备一项设置,可以限制设备充电至80%以内,这样能够缩短电池完全充电所需的时间,并有可能延长iPhone电池的使用寿命。随着iOS 18的推出,Apple进一步加入了…...
Linux文本三剑客 awk 和 grep
awk 前言 AWK是一种优良的文本处理工具。它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一。 Linux中最常用的文本处理工具有grep,sed,awk。行内将之称为文本三剑客,就功能量和效率来看,awk是当之无愧的文本三…...
Python NumPy 库详解
大家好,在当今数据驱动的世界中,处理大规模数据、进行复杂数值计算是科学研究、工程设计以及数据分析的关键任务之一。在Python生态系统中,NumPy(Numerical Python)库是一款备受推崇的工具,它为我们提供了高…...
React state 执行时机
设置 state 只会为下一次渲染变更 state 的值 一个 state 变量的值永远不会在一次渲染的内部发生变化 React 会使 state 的值始终"固定"在一次渲染的各个事件处理函数内部 React 会等到事件处理函数中的所有代码都运行完毕再处理 state 更新 在一个函数中࿰…...
Spring基于注解开发
目录 一. Bean基本注解开发 二. Bean依赖注入注解开发 三. 非自定义Bean注解开发 四. Spring配置类的开发 五. Spring配置其他注解 5.1 Primary 5.2 Profile 六. Spring注入的解析原理 七. Spring注解方式整合第三方框架 一. Bean基本注解开发 Spring除了xml配置文件…...
深度探索:智能家居背后的科技力量与伦理思考
目录 科技力量:创新驱动下的智慧生活引擎 1. 人工智能与机器学习 2. 物联网技术 3. 大数据分析 4. 5G与边缘计算 伦理与隐私:智能家居的双刃剑 1. 隐私侵犯风险 2. 数据安全挑战 3. 算法偏见与决策透明度 应对策略:构建安全、负责任的智能…...
鸿蒙开发:通过startAbilityByType拉起垂类应用
通过startAbilityByType拉起垂类应用 使用场景 开发者可通过特定的业务类型如导航、金融等,调用startAbilityByType接口拉起对应的垂域面板,该面板将展示目标方接入的垂域应用,由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用…...
docker 更换镜像源
打开对应的配置文件 vi /etc/docker/daemon.json 输入文件内容入下 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8…...
Springboot(若依)国际化配置接口访问后返回????????
最近使用若依的框架进行二次开发,配置了国际化,application.yml配置英文时没问题,但配置中文basename: i18n/messages_zh_CN,访问接口就直接返回的???,如图: 于是检查了I18nConfig文件,没配错…...
java1
在继承中,创建子类对象,访问成员方法的规则: 创建的对象是谁,就优先用谁,没有再向上找 注意:无论是成员变量还是成员方法, 如果没有都是向上找父类,不会向下找子类 继承的特点&#…...
pytest中一个场景测试的demo
注意点1: allure.severity 是一个装饰器,用于设置测试用例的严重性级别。 allure.severity_level.CRITICAL 是Allure提供的严重性级别之一,表示这个测试用例极为重要。allure.severity_level.BLOCKER:阻塞级别的问题,…...
windows下安装IntelliJIDEA
windows下安装IntelliJIDEA 步骤1:下载IntelliJ IDEA 打开浏览器并访问IntelliJ IDEA下载页面. https://www.jetbrains.com/idea/download/选择合适的版本: Ultimate:付费版本,包含更多功能,适合专业开发。Community…...
string经典题目(C++)
文章目录 前言一、最长回文子串1.题目解析2.算法原理3.代码编写 二、字符串相乘1.题目解析2.算法原理3.代码编写 总结 前言 一、最长回文子串 1.题目解析 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s “babad” 输出&am…...
三篇卫星切换的论文
目录 一、Energy-Aware Satellite Handover based on Deep Reinforcement Learning 1、题目翻译 2、来源 3、内容 二、A Reliable Handover Strategy with Second Satellite Selection in LEO Satellite Networks 1、题目翻译 2、来源 3、内容 三、User Grouping-Based…...
VUE之重定向redirect
VUE之路由和重定向redirect 这个小知识点是在学习做项目的时候遇到的一个问题,借鉴了一个他人的项目,是一个酒店管理系统,拿到源码之后导到我的vscode里。 参考链接 导的过程比较顺利,正常安装,加依赖,没有…...
服务器时区与数据库时区不一致导致时间bug记录
1、背景 一个活动,需要按照自然月刷新,每月一期,以活动开始当月作为第一期,每期可配置不同数据。问题出现在:活动开始时间为本月,但是查询用户数据发现当前为第二期,反复查看代码,确…...
华为鸿蒙HarmonyOS应用开发者高级认证题库
判断题 1、云函数打包完成后,需要到AppGallery Connect创建对应函数的触发器才可以在端侧中调用 错 2、在column和Row容器组件中,aligntems用于设置子组件在主轴方向上的对齐格式,justifycontent用于设置子组件在交叉轴方向上的对齐格式 错…...
细说MCU串口函数及使用printf函数实现串口发送数据的方法
目录 1、硬件及工程 2、串口相关的库函数 (1)串口中断服务函数: (2)串口接收回调函数: (3)串口接收中断配置函数: (4)非中断发送ÿ…...
PBox iOS端的应用隐藏、图片视频加密软件
哈喽,大家下午好!相信大家的手机中一定存在很多的私密内容,比如软件、照片、视频或者文档文件,很多都是不方便让外人看到的,此时就需要一款隐藏工具,市面上这类软件大部分都是收费的,应大家的需…...
LeetCode 1665.完成所有任务的最少初始能量:排序(贪心)
【LetMeFly】1665.完成所有任务的最少初始能量:排序(贪心) 力扣题目链接:https://leetcode.cn/problems/minimum-initial-energy-to-finish-tasks/ 给你一个任务数组 tasks ,其中 tasks[i] [actuali, minimumi] : actuali 是完…...
如何免费实现iOS设备虚拟定位?iFakeLocation跨平台实用指南
如何免费实现iOS设备虚拟定位?iFakeLocation跨平台实用指南 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 你是否曾经想过,在舒适…...
终极邮件营销自动化指南:工程师如何快速搭建高效邮件营销系统
终极邮件营销自动化指南:工程师如何快速搭建高效邮件营销系统 【免费下载链接】Marketing-for-Engineers A curated collection of marketing articles & tools to grow your product. 项目地址: https://gitcode.com/gh_mirrors/ma/Marketing-for-Engineers…...
绕过Cursor AI消费限额前端Bug:浏览器控制台脚本实现API直接管理
1. 项目概述与背景 最近在深度使用Cursor这款AI代码编辑器时,遇到了一个挺让人头疼的问题。Cursor的付费模式是典型的用量计费,也就是所谓的“按需付费”,这对于我们这些高频使用者来说,确实需要设置一个消费上限,以防…...
抖音批量下载终极解决方案:douyin-downloader免费开源工具完整指南
抖音批量下载终极解决方案:douyin-downloader免费开源工具完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fa…...
三星48层3D V-NAND深度拆解:从电荷陷阱架构到存储密度革命
1. 初探三星48层3D V-NAND:一次深度拆解与工艺解析作为一名长期关注半导体存储技术的从业者,每次拿到业界巨头的新品进行物理层面的拆解分析,都像是一次充满惊喜的“寻宝”之旅。2016年初,当三星将其早在2015年8月就已预告的256Gb…...
Hermes Agent:引爆企业AI革命!自进化智能体协作实战与落地指南
Hermes Agent 是一款自进化AI代理系统,具备完整学习循环、跨会话记忆、用户建模等核心特性。本文深入解析其架构、多智能体协作机制及自进化能力,并通过智能客服、DevOps自动化、数据分析等企业级案例,展示如何构建高效AI代理系统。同时提供性…...
N41 SRS与LTE共用XPXT开关的一些考虑
n41 SRS 与 LTE 共存冲突分析与工程设计指南 核心结论:在 n41 与 LTE 共用 XSPxT(DPDT / DP3T / DP4T)架构下,冲突是物理必然;硬件目标是将干扰压缩至软件可调度范围,系统稳定性最终取决于软件互斥策略。 一、问题本质:为什么 n41 SRS 会和 LTE 冲突? 1️⃣ n41 SRS 的…...
重塑游戏社交:Nucleus Co-Op如何用一台电脑创造四人同屏体验
重塑游戏社交:Nucleus Co-Op如何用一台电脑创造四人同屏体验 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 问题:本地多人…...
终极指南:如何使用Harepacker-resurrected打造你的MapleStory游戏Mod
终极指南:如何使用Harepacker-resurrected打造你的MapleStory游戏Mod 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 如果你是一…...
