当前位置: 首页 > news >正文

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打板焊接图:

五、程序设计 

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打板焊接图: 五、程序设计 六、实验效果 七、包含内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.com…...

iOS 18 为 iPhone 15 机型引入了更多充电限制选项

iOS 18 为 iPhone 15 机型引入了更多充电限制选项 所有四款iPhone 15型号都具备一项设置&#xff0c;可以限制设备充电至80%以内&#xff0c;这样能够缩短电池完全充电所需的时间&#xff0c;并有可能延长iPhone电池的使用寿命。随着iOS 18的推出&#xff0c;Apple进一步加入了…...

Linux文本三剑客 awk 和 grep

awk 前言 AWK是一种优良的文本处理工具。它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一。 Linux中最常用的文本处理工具有grep&#xff0c;sed&#xff0c;awk。行内将之称为文本三剑客&#xff0c;就功能量和效率来看&#xff0c;awk是当之无愧的文本三…...

Python NumPy 库详解

大家好&#xff0c;在当今数据驱动的世界中&#xff0c;处理大规模数据、进行复杂数值计算是科学研究、工程设计以及数据分析的关键任务之一。在Python生态系统中&#xff0c;NumPy&#xff08;Numerical Python&#xff09;库是一款备受推崇的工具&#xff0c;它为我们提供了高…...

React state 执行时机

设置 state 只会为下一次渲染变更 state 的值 一个 state 变量的值永远不会在一次渲染的内部发生变化 React 会使 state 的值始终"固定"在一次渲染的各个事件处理函数内部 React 会等到事件处理函数中的所有代码都运行完毕再处理 state 更新 在一个函数中&#xff0…...

Spring基于注解开发

目录 一. Bean基本注解开发 二. Bean依赖注入注解开发 三. 非自定义Bean注解开发 四. Spring配置类的开发 五. Spring配置其他注解 5.1 Primary 5.2 Profile 六. Spring注入的解析原理 七. Spring注解方式整合第三方框架 一. Bean基本注解开发 Spring除了xml配置文件…...

深度探索:智能家居背后的科技力量与伦理思考

目录 科技力量&#xff1a;创新驱动下的智慧生活引擎 1. 人工智能与机器学习 2. 物联网技术 3. 大数据分析 4. 5G与边缘计算 伦理与隐私&#xff1a;智能家居的双刃剑 1. 隐私侵犯风险 2. 数据安全挑战 3. 算法偏见与决策透明度 应对策略&#xff1a;构建安全、负责任的智能…...

鸿蒙开发:通过startAbilityByType拉起垂类应用

通过startAbilityByType拉起垂类应用 使用场景 开发者可通过特定的业务类型如导航、金融等&#xff0c;调用startAbilityByType接口拉起对应的垂域面板&#xff0c;该面板将展示目标方接入的垂域应用&#xff0c;由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用…...

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(若依)国际化配置接口访问后返回????????

最近使用若依的框架进行二次开发&#xff0c;配置了国际化&#xff0c;application.yml配置英文时没问题&#xff0c;但配置中文basename: i18n/messages_zh_CN&#xff0c;访问接口就直接返回的???&#xff0c;如图&#xff1a; 于是检查了I18nConfig文件&#xff0c;没配错…...

java1

在继承中&#xff0c;创建子类对象&#xff0c;访问成员方法的规则&#xff1a; 创建的对象是谁&#xff0c;就优先用谁&#xff0c;没有再向上找 注意&#xff1a;无论是成员变量还是成员方法&#xff0c; 如果没有都是向上找父类&#xff0c;不会向下找子类 继承的特点&#…...

pytest中一个场景测试的demo

注意点1&#xff1a; allure.severity 是一个装饰器&#xff0c;用于设置测试用例的严重性级别。 allure.severity_level.CRITICAL 是Allure提供的严重性级别之一&#xff0c;表示这个测试用例极为重要。allure.severity_level.BLOCKER&#xff1a;阻塞级别的问题&#xff0c…...

windows下安装IntelliJIDEA

windows下安装IntelliJIDEA 步骤1&#xff1a;下载IntelliJ IDEA 打开浏览器并访问IntelliJ IDEA下载页面. https://www.jetbrains.com/idea/download/选择合适的版本&#xff1a; Ultimate&#xff1a;付费版本&#xff0c;包含更多功能&#xff0c;适合专业开发。Community…...

string经典题目(C++)

文章目录 前言一、最长回文子串1.题目解析2.算法原理3.代码编写 二、字符串相乘1.题目解析2.算法原理3.代码编写 总结 前言 一、最长回文子串 1.题目解析 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;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 这个小知识点是在学习做项目的时候遇到的一个问题&#xff0c;借鉴了一个他人的项目&#xff0c;是一个酒店管理系统&#xff0c;拿到源码之后导到我的vscode里。 参考链接 导的过程比较顺利&#xff0c;正常安装&#xff0c;加依赖&#xff0c;没有…...

服务器时区与数据库时区不一致导致时间bug记录

1、背景 一个活动&#xff0c;需要按照自然月刷新&#xff0c;每月一期&#xff0c;以活动开始当月作为第一期&#xff0c;每期可配置不同数据。问题出现在&#xff1a;活动开始时间为本月&#xff0c;但是查询用户数据发现当前为第二期&#xff0c;反复查看代码&#xff0c;确…...

华为鸿蒙HarmonyOS应用开发者高级认证题库

判断题 1、云函数打包完成后&#xff0c;需要到AppGallery Connect创建对应函数的触发器才可以在端侧中调用 错 2、在column和Row容器组件中&#xff0c;aligntems用于设置子组件在主轴方向上的对齐格式&#xff0c;justifycontent用于设置子组件在交叉轴方向上的对齐格式 错…...

细说MCU串口函数及使用printf函数实现串口发送数据的方法

目录 1、硬件及工程 2、串口相关的库函数 &#xff08;1&#xff09;串口中断服务函数&#xff1a; &#xff08;2&#xff09;串口接收回调函数&#xff1a; &#xff08;3&#xff09;串口接收中断配置函数&#xff1a; &#xff08;4&#xff09;非中断发送&#xff…...

PBox iOS端的应用隐藏、图片视频加密软件

哈喽&#xff0c;大家下午好&#xff01;相信大家的手机中一定存在很多的私密内容&#xff0c;比如软件、照片、视频或者文档文件&#xff0c;很多都是不方便让外人看到的&#xff0c;此时就需要一款隐藏工具&#xff0c;市面上这类软件大部分都是收费的&#xff0c;应大家的需…...

OpenClaw怎么搭建?2026年3月OpenClaw(Clawdbot)在腾讯云一键部署超全攻略

OpenClaw怎么搭建&#xff1f;2026年3月OpenClaw&#xff08;Clawdbot&#xff09;在腾讯云一键部署超全攻略。本文面向零基础用户&#xff0c;完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw&#xff08;Clawdbot&#xff09;的流程&#xff0c;包含环…...

从希腊字母到优化问题:用Overleaf搞定LaTeX数学公式的20个高阶技巧

从希腊字母到优化问题&#xff1a;用Overleaf搞定LaTeX数学公式的20个高阶技巧 数学公式排版是LaTeX最强大的功能之一&#xff0c;但对于需要处理复杂数学内容的研究者和工程师来说&#xff0c;仅掌握基础语法远远不够。本文将分享20个经过实战验证的高阶技巧&#xff0c;帮助你…...

CAD工程师必看:如何用De Boor算法优化B样条曲线设计(附NURBS对比)

CAD工程师必看&#xff1a;如何用De Boor算法优化B样条曲线设计&#xff08;附NURBS对比&#xff09; 在工业设计领域&#xff0c;曲线建模的精度与效率直接决定了产品从概念到成品的转化质量。作为CAD工程师&#xff0c;我们常常需要在设计自由度和计算效率之间寻找平衡点——…...

YOLOv5 模型训练避坑大全:从数据集制作到解决 mAP 为 0 的常见报错

YOLOv5 模型训练避坑实战指南&#xff1a;从数据标注到调参优化的全流程解决方案 当你第一次成功运行YOLOv5的官方示例时&#xff0c;那种成就感可能让你误以为目标检测模型训练已经掌握。但现实往往很骨感——当换上自己的数据集后&#xff0c;各种报错接踵而至&#xff1a;显…...

【国家级等保2.0工业网关合规缺口】:3步完成Python网关安全基线加固(含GB/T 22239-2024映射表)

第一章&#xff1a;工业Python网关安全基线合规总览工业Python网关作为OT与IT融合的关键枢纽&#xff0c;承担着协议转换、数据采集、边缘计算与远程控制等核心职能。其安全基线合规性直接关系到生产系统的可用性、完整性与保密性。依据IEC 62443-3-3、等保2.0三级及NIST SP 80…...

Cobalt项目文件下载异常问题分析与解决方案:快速排查与修复指南

Cobalt项目文件下载异常问题分析与解决方案&#xff1a;快速排查与修复指南 Cobalt是一款高效友好的开源媒体下载工具&#xff0c;支持YouTube、TikTok、Instagram等30多个平台的视频音频下载。在使用过程中&#xff0c;用户可能会遇到各种下载异常问题。本文将详细分析Cobalt…...

OpenClaw+GLM-4.7-Flash:3个提升开发效率的自动化脚本

OpenClawGLM-4.7-Flash&#xff1a;3个提升开发效率的自动化脚本 1. 为什么选择这个技术组合&#xff1f; 作为一名长期在终端里摸爬滚打的开发者&#xff0c;我一直在寻找能够真正融入日常工作的AI助手方案。直到遇到OpenClawGLM-4.7-Flash这个组合&#xff0c;才找到了理想…...

OpenClaw+百川2-13B-4bits:自媒体人的内容创作流水线搭建

OpenClaw百川2-13B-4bits&#xff1a;自媒体人的内容创作流水线搭建 1. 为什么需要自动化内容流水线 作为一个长期运营科技类自媒体的创作者&#xff0c;我每天需要完成热点追踪、大纲构思、初稿撰写、排版发布等一系列重复性工作。最痛苦的不是写作本身&#xff0c;而是大量…...

大数据治理必看:数据目录的五大核心功能

大数据治理必看&#xff1a;数据目录的五大核心功能关键词&#xff1a;大数据治理、数据目录、元数据管理、数据血缘、数据协作摘要&#xff1a;在数据量爆炸式增长的今天&#xff0c;企业常面临“数据多到找不到、找到不敢用、用了怕出错”的困境。数据目录作为大数据治理的“…...

百度后端开发(Java)面试题精选:10道高频考题+答案解析

百度简介 百度是中国领先的互联网公司,以搜索引擎起家,现已发展成为涵盖人工智能、云计算、自动驾驶等多个领域的科技巨头。百度技术栈以Java为主,Spring生态为核心,在分布式系统、大数据处理、AI工程化方面有深厚积累。面试风格注重基础原理与工程实践结合,常考JVM调优、…...