使用语音命令控制 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引脚,并在上传代码后再次连接。
代码和说明
语音控制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);
}
}
工作程序:
第 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);
}
}
}
全部0条评论
快来发表一下你的评论吧 !