单片机语音识别控制蓝牙通信

基于单片机语音识别控制&蓝牙控制

  • 1、Arduino单片机语音控制
    • 1.1 直连
    • 1.2 蓝牙无线连接
    • 1.3 部分核心程序
    • 1.4 实物演示
  • 2、51单片机语音控制
    • 2.1 直连
    • 2.2 蓝牙无线连接
    • 2.3 部分核心程序
    • 2.4 实物演示
  • 3、STM32单片机语音控制
    • 3.1 直连
    • 3.2 蓝牙无线连接
    • 3.3 部分核心程序
    • 3.4 实物演示
  • 最后


本文章是基于Arduino单片机、51单片机、STM32单片机语音识别控制和蓝牙通信,设计这三种单片机方便新手选择自己合适的单片机学习语音识别控制,文章重点涉及到串口的知识点,学会了串口对于蓝牙模块很简单,本文章可以学习到 语音识别控制蓝牙无线控制

为什么语音识别控制要设计成无线控制呢???关于下面这种场合就合适鸭。

在这里插入图片描述


1、Arduino单片机语音控制

1.1 直连

功能:语音控制电灯的 “开启” 和 “关闭”
语音模块与主控制器Arduino直接连接,由于接了220V的电灯,此时用到了继电器

语音模块与主控制器硬件连接

语音模块Arduino
VCCVCC
GNDGND
T20
R21

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT113

实物连接如下图所示

在这里插入图片描述

1.2 蓝牙无线连接

功能①:语音控制电灯的 “开启” 和 “关闭”
功能②:手机app控制电灯的 “开启” 和 “关闭”
语音模块与主控制器Arduino直接通过两个蓝牙模块连接,其中语音模块连接的蓝牙模块通过软件设置作为主机,主控制器Arduino连接的蓝牙模块通过软件设置作为从机,下图是蓝牙模块设置的软件界面

在这里插入图片描述
语音模块与蓝牙模块(主机)硬件连接

语音模块蓝牙模块(主机)
VCCVCC
GNDGND
T2RX
R2TX

主控制器与蓝牙模块(从机)硬件连接

主控制器蓝牙模块(从机)
VCCVCC
GNDGND
1RX
0TX

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT113

连接实物如下图所示

在这里插入图片描述
如果不想用语音控制电灯的 “开启” 和 “关闭”,可以直接把语音模块和蓝牙模块(主机)直接去掉,通过手机app打开蓝牙直接连接蓝牙模块(主机),通过发送程序给定对应的字节,这样也可以达到控制的效果。

在这里插入图片描述

1.3 部分核心程序

代码如下:

  val = Serial.read(); /*如果串口接收到数据,把输出存放在变量val中*/if (-1 != val) /*如果val不等于-1,证明串口已经接收到数据。*/{if (0x03 == val) /*判断接收到的数据是不是*/{digitalWrite(LED, LOW); /*如果是0x03,把LED点亮*/}else if (0x04 == val) /*判断串口接收到的数据是不是0x04*/{digitalWrite(LED, HIGH); /*如果是0x04,关闭LED灯*/}else{digitalWrite(LED, HIGH); /*其他情况灯灭*/}}

1.4 实物演示

Arduino语音识别控制


2、51单片机语音控制

2.1 直连

功能:语音控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STC89C52直接连接,由于接了220V的电灯,此时用到了继电器

语音模块与主控制器硬件连接

语音模块STC89C52
VCCVCC
GNDGND
T2P3^0
R2P3^1

继电器与主控制器硬件连接

继电器STC89C52
VCC5V
GNDGND
INT1P2^0

实物连接如下图所示

在这里插入图片描述

2.2 蓝牙无线连接

功能①:语音控制电灯的 “开启” 和 “关闭”
功能②:手机app控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STC89C52直接通过两个蓝牙模块连接,其中语音模块连接的蓝牙模块通过软件设置作为主机,主控制器STC89C52连接的蓝牙模块通过软件设置作为从机,下图是蓝牙模块设置的软件界面

在这里插入图片描述
语音模块与蓝牙模块(主机)硬件连接

语音模块蓝牙模块(主机)
VCCVCC
GNDGND
T2RX
R2TX

主控制器与蓝牙模块(从机)硬件连接

主控制器蓝牙模块(从机)
VCCVCC
GNDGND
P3^1RX
P3^0TX

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT1P2^0

连接实物如下图所示

在这里插入图片描述
如果不想用语音控制电灯的 “开启” 和 “关闭”,可以直接把语音模块和蓝牙模块(主机)直接去掉,通过手机app打开蓝牙直接连接蓝牙模块(主机),通过发送程序给定对应的字节,这样也可以达到控制的效果。

在这里插入图片描述

2.3 部分核心程序

void Usart_Int(void) interrupt 4
{uchar i;uchar receive_data;EA = 0;if(RI == 1) //当硬件接收到一个数据时,RI会置位{ 		RI = 0;receive_data = SBUF;//接收到的数据if(receive_data == 0x03)	 //if(receive_data == '1'){LED = 0;//接收到03亮灯}else if(receive_data == 0x04){LED = 1; //如果是0x04,关闭LED灯}else{LED = 1; //其他情况灯灭}}for(i=0; i<PuZh_Size; i++){SBUF = PuZh[i];   //将要发送的数据放入到发送寄存器while(!TI);		    //等待发送数据完成TI=0;			        //清除发送完成标志位Delay_ms(1);}EA = 1;
}

2.4 实物演示

51单片机语音识别控制


3、STM32单片机语音控制

3.1 直连

功能:语音控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STM32直接连接,由于接了220V的电灯,此时用到了继电器

在这里插入图片描述

3.2 蓝牙无线连接

功能①:语音控制电灯的 “开启” 和 “关闭”
功能②:手机app控制电灯的 “开启” 和 “关闭”
语音模块与主控制器STM32直接通过两个蓝牙模块连接,其中语音模块连接的蓝牙模块通过软件设置作为主机,主控制器STM32连接的蓝牙模块通过软件设置作为从机,下图是蓝牙模块设置的软件界面

在这里插入图片描述
语音模块与蓝牙模块(主机)硬件连接

语音模块蓝牙模块(主机)
VCCVCC
GNDGND
T2RX
R2TX

主控制器与蓝牙模块(从机)硬件连接

主控制器蓝牙模块(从机)
VCCVCC
GNDGND
PA2RX
PA3TX

继电器与主控制器硬件连接

继电器Arduino
VCC5V
GNDGND
INT1PB6

连接实物如下图所示

在这里插入图片描述
如果不想用语音控制电灯的 “开启” 和 “关闭”,可以直接把语音模块和蓝牙模块(主机)直接去掉,通过手机app打开蓝牙直接连接蓝牙模块(主机),通过发送程序给定对应的字节,这样也可以达到控制的效果。

在这里插入图片描述

3.3 部分核心程序

 int main(void){		 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600);	 							//串口初始化为115200My_USART2_Init();LED_Init();			     						//LED端口初始化while(1){if(res == 0x03)		//如果是0x03,把LED点亮{LED1 = 0;JDQ = 0;	//继电器使能}else if(res == 0x04)//如果是0x04,关闭LED灯{LED1 = 1;JDQ = 1;	//继电器不使能}else			//其他情况灯灭{LED1 = 1;JDQ = 1;}}	 }

3.4 实物演示

点击链接跳转观看:https://www.bilibili.com/video/BV1Hk8ReZEJn/?vd_source=396950d4f7e8d110fcda0429d9a5c0f6


最后

在这里插入图片描述

不懂的小伙伴或是有问题的可以+我企鹅号(970484728),备注来意,一起学习一起进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

器件频频更换为哪桩

曾想象&#xff0c;在一家大型研发型企业里有如下案例&#xff1a; 硬件工程师设计电路选择了器件库中的某器件&#xff0c;在批量试产产品时&#xff0c;却发现没有库存&#xff0c;即时申请采购&#xff0c;却发现货期相当长&#xff0c;一时难以采购&#xff0c;甚至根本不…

填志愿选专业,文科男生如何选专业?

又到了高考分数出炉&#xff0c;无数学子收获喜悦的季节&#xff0c;在分数刚出炉时&#xff0c;很多学生表现的异常兴奋&#xff0c;于他们而言&#xff0c;这么多年的努力终于有了收获&#xff0c;自己该考虑选择什么专业了。而毫不夸张的说&#xff0c;很多人在拿到专业目录…

HarmonyOS开发探索:使用Snapshot Insight分析ArkTS内存问题

识别内存问题 当怀疑应用存在内存问题的时候&#xff0c;首先使用DevEco Profiler的Allocation Insight来度量内存在问题场景下的大小变化以及整体趋势&#xff0c;初步定界问题出现的位置&#xff08;Native Heap/ArkTS Heap/dev等&#xff09;。 在初步识别内存问题出现的位置…

CentOS中使用SSH远程登录

CentOS中使用SSH远程登录 准备工作SSH概述SSH服务的安装与启动建立SSH连接SSH配置文件修改SSH默认端口SSH文件传输 准备工作 两台安装CentOS系统的虚拟机 客户机&#xff08;192.168.239.128&#xff09; 服务器&#xff08;192.168.239.129&#xff09; SSH概述 Secure S…

Mustango——音乐领域知识生成模型探索

Mustango&#xff1a;利用领域知识的音乐生成模型 论文地址&#xff1a;https://arxiv.org/pdf/2311.08355.pdf 源码地址&#xff1a;https://github.com/amaai-lab/mustango 论文题为**“**利用音乐领域知识开发文本到音乐模型’Mustango’”。它利用音乐领域的知识从文本指…

K 近邻、K-NN 算法图文详解

1. 为什么学习KNN算法 KNN是监督学习分类算法&#xff0c;主要解决现实生活中分类问题。根据目标的不同将监督学习任务分为了分类学习及回归预测问题。 KNN&#xff08;K-Nearest Neihbor&#xff0c;KNN&#xff09;K近邻是机器学习算法中理论最简单&#xff0c;最好理解的算法…

钉钉开放AI生态战略的真正价值到底是什么?很多人都没看懂

来源&#xff1a; 首席数智官 hello 大家好&#xff0c;我们是数字化领军者都在看的首席数智官。 关注我&#xff0c;每天给你讲一个商业案例。 今天我们要给你讲的是&#xff1a;钉钉开放AI大模型生态的战略意义到底是什么&#xff1f; 「谁先赢得苹果&#xff0c;谁就赢得…

AI大模型日报#0701:Meta发布LLM Compiler、扒一扒Sora两带头人博士论文

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数 0. 引言1. 关于m_pcolor2. 关于m_image3. 关于m_shadedrelief4. 关于m_hatch5. 结语 0. 引言 本篇介绍下m_map中区域填充函数&#xff08;m_hatch&#xff09;、绘制伪彩色图…

数据库连接池满问题

概述 当数据库连接池满时&#xff0c;可能会导致新的数据库连接请求无法被处理&#xff0c;进而影响应用程序与数据库的交互。以下是针对数据库连接池满问题的详细分析和解决策略&#xff1a; 问题分析 连接泄漏&#xff1a;应用程序在使用完数据库连接后没有正确地关闭连接&…

2.2章节python的变量和常量

在Python中&#xff0c;变量和常量有一些基本的概念和用法&#xff0c;但需要注意的是&#xff0c;Python本身并没有内置的“常量”类型。然而&#xff0c;程序员通常会遵循一种约定&#xff0c;即使用全部大写的变量名来表示常量。 一、变量 在Python中&#xff0c;变量是一…

唯一ID:雪花算法介绍与 Go 语言实现

介绍 snowflake 雪花算法可以在不依赖数据库的情况下&#xff0c;生成全局唯一的ID。雪花算法生成的ID是一个64位的整数&#xff0c;它由以下4部分组成: 时间戳&#xff1a;占用41位&#xff0c;精确到毫秒级&#xff0c;用于记录时间戳&#xff0c;差值形式可以使用69年。数…

数据库设计规范详解

一、为什么需要数据库设计 1、我们在设计数据表的时候&#xff0c;要考虑很多问题。比如: (1) 用户都需要什么数据?需要在数据表中保存哪些数据? (2) 如何保证数据表中数据的 正确性&#xff0c;当插入、删除、更新的时候该进行怎样的 约束检査 ?. (3) 如何降低数据表的 数据…

每天一个数据分析题(三百八十五)- 回归模型

在回归模型中&#xff0c;下列哪一项在权衡欠拟合&#xff08;under-fitting&#xff09;和过拟合&#xff08;over-fitting&#xff09;中影响最大&#xff1f; A. 多项式阶数 B. 更新回归参数w时&#xff0c;使用的是协方差矩阵求逆还是梯度下降 C. 使用常数项 D. 以上都…

python导入未找到tensorrt,No module named ‘tensorrt‘

(2024.7.1) 这个错误可能比较少见&#xff0c;是因为本人先装了tensorrt 10.1&#xff08;能够正常运行&#xff09;&#xff0c;后面又装了nvidia-tensorrt 7&#xff0c;后面不想用7了就把7卸了用回10&#xff0c;结果即使同一版本的tensorrt和nvidia-tensorrt都装了&#x…

毫米波雷达深度学习技术-2.1~2.2深度度量学习和成对方法

2 深度度量学习 有几种雷达应用程序旨在对一组预定义的类别进行分类&#xff0c;例如不同的人类活动或手势。然而&#xff0c;在实际环境中&#xff0c;存在的类不仅仅是预定义的类&#xff0c;这就把问题变成了一个开放集的分类任务。开放集分类意味着网络应该能够检测输入是否…

[AIGC] StarRocks 快速了解

星石数据库&#xff08;StarRocks&#xff09;是一种高性能、分布式的列式存储数据库系统&#xff0c;旨在为大规模数据分析提供快速和可靠的解决方案。它由StarRocks团队于2015年开始开发&#xff0c;最初是由中国电子科技集团公司&#xff08;CETC&#xff09;内部项目&#…

Chapter 8 Feedback

Chapter 8 Feedback 这一章我们介绍feedback 反馈运放的原理. 负反馈是模拟电路强有力的工具. 8.1 General Considerations 反馈系统如下图所示 Aolamp open-loop gain即开环增益. Aolxo/xi β \beta β 是 feedback factor, 注意方向. β x f x o \beta\frac{x_{f}}{x_{o…

Python内置函数enumerate 将可迭代对象组合成索引序列列举出数据和数据下表

enumerate 是一个内置的 Python 函数&#xff0c;用于将一个可迭代对象&#xff08;如列表、元组、字符串等&#xff09;组合为一个索引序列&#xff0c;同时列出数据和数据下标。 参数说明&#xff1a; enumerate(iterable, start0) 接受两个参数&#xff1a; iterable&…

从零开始:Java开发者的设计模式指南

从零开始&#xff1a;Java开发者的设计模式指南 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java开发中的设计模式&#xff0c;这是每位J…