如何使用Arduino和蓝牙的语音控制LED

描述

使用语音命令控制 LED 似乎是一项艰巨的任务,但它很容易,您可以快速构建它。我们只需要一个Arduino UNO与HC-06蓝牙模块串行通信,智能手机就可以向蓝牙模块HC-06发送语音命令。为了接收语音命令,我们正在使用“Arduino蓝牙语音控制器”Android应用程序。

所需材料

Arduino UNO

HC-06 蓝牙模块

指示灯(红色和绿色)

电阻器 220 欧姆(2 个)

Arduino蓝牙语音控制器

面包板

连接线

HC-06 蓝牙模块:

蓝牙可以在以下两种模式下运行:

命令模式

操作模式

在命令模式下,我们将能够配置蓝牙属性,例如蓝牙信号的名称,密码,操作波特率等。操作模式是我们能够在PIC微控制器和蓝牙模块之间发送和接收数据的模式。因此,在本教程中,我们将只玩弄操作模式。命令模式将保留默认设置。设备名称将是HC-05(我正在使用HC-06),密码将是0000或1234,最重要的是,所有蓝牙模块的默认波特率为9600。

模块采用 5V 电源供电,信号引脚工作在 3.3V,因此模块本身存在一个 3.3V 稳压器。因此,我们不必担心。在六个引脚中,只有四个将在操作模式下使用。引脚连接表如下所示

 

S.No HC-05/HC-06 上的引脚 MCU 上的引脚名称 PIC 中的引脚编号
1 Vcc Vdd 第 31 针
2 Vcc 格德 第 32 针
3 德克萨斯 RC6/Tx/CK 第 25 针
4 接收 RC7/Rx/DT 第 26 针
5 数控 数控
6 英文(使能) 数控 数控

 

电路图

下面给出了此语音控制灯的电路图,在Arduino UNO中上传代码时,断开Rx和Tx引脚,并在上传代码后再次连接。

Android

代码和说明

语音控制LED的完整Arduino代码在末尾给出。在这里,我们将解释代码的几个部分。

在这里,在下面的代码中,我们将定义 Rx 和 Tx 的引脚。

int TxD = 11;

int RxD = 10;

现在,设置引脚 2德·和 3RD的 Arduino 作为输出。

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

在空回路功能中,Arduino将始终检查输入值,并根据语音命令控制LED。Arduino将根据给定的语音命令打开或关闭LED。我们将所有收到的命令保存在变量“Value”中

如果值为“所有 LED 打开”,则两个 LED 都打开,像这样,我们已经编码了其他语音命令来打开或关闭单个 LED。查看本文后面的完整工作和演示视频。

if (bluetooth.available())

{

value = bluetooth.readString();

if (value == "all LED turn on"){

digitalWrite(2, HIGH);

digitalWrite(3, HIGH); 

}

if (value == "all LED turn off"){

digitalWrite(2, LOW);

digitalWrite(3, LOW);      

}

if (value == "turn on Red LED"){

digitalWrite(2, HIGH);

}

if (value == "turn on green LED"){

digitalWrite(3, HIGH);      

}

 

if (value == "turn off red LED"){

digitalWrite(2, LOW);

}

if (value == "turn off green LED"){

digitalWrite(3, LOW);      

}

}

工作程序:

Android

第 1 步:-按照电路图连接所有组件;上传代码时断开 Rx 和 Tx 引脚的连接。

第 2 步:-下载名为“Arduino蓝牙语音控制器”的应用程序,该应用程序在Play商店中免费。

第 3 步:-打开应用程序并按照下图进行操作,例如首先单击“连接到蓝牙设备”并选择您的蓝牙模块并检查它是否已连接。然后单击麦克风图标说话并将语音命令发送到HC-06模块。

注意:当您第一次将蓝牙模块与智能手机连接时,它会询问密码,请使用 0000 或 1234。

第 4 步:-设置完所有内容后,您只需使用应用程序发送语音命令,该应用程序进一步发送到蓝牙模块HC-06,HC-06与Arduino UNO串行通信,然后按照命令执行任务。下面显示了命令和命令要执行的操作:

 

S. 否。 命令 行动
1. 所有指示灯亮起 红色和绿色 LED 均亮起
2. 所有指示灯熄灭 红色和绿色 LED 均熄灭
3. 打开红色指示灯 红色指示灯亮起
4. 打开绿色指示灯 绿色指示灯亮起
5. 熄灭红色指示灯 红色指示灯熄灭
6. 熄灭绿色指示灯 绿色指示灯熄灭

 

#include

String value;

int TxD = 11;

int RxD = 10;

int servoposition;

SoftwareSerial bluetooth(TxD, RxD);


void setup() {

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

Serial.begin(9600); // start serial communication at 9600bps

bluetooth.begin(9600);

}


void loop() {

Serial.println(value);

if (bluetooth.available())

{

value = bluetooth.readString();


if (value == "all LED turn on"){

digitalWrite(2, HIGH);

digitalWrite(3, HIGH); 

}


if (value == "all LED turn off"){

digitalWrite(2, LOW); 

digitalWrite(3, LOW); 

}


if (value == "turn on Red LED"){

digitalWrite(2, HIGH); 

}


if (value == "turn on green LED"){

digitalWrite(3, HIGH); 

}



if (value == "turn off red LED"){

digitalWrite(2, LOW); 

}


if (value == "turn off green LED"){

digitalWrite(3, LOW); 

}


}


}

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分