| 使用语音命令控制LED指示灯看上去似乎是一项难以实现的功能,但实际上它很容易,我们可以快速实现它。我们只需要一个Arduino UNO开发板与HC-06蓝牙模块进行串行通信,以及使用一台智能手机将语音命令发送到蓝牙模块HC-06。为了接收语音命令,我们使用“Arduino蓝牙语音控制器”的Android应用程序,您可以从Play商店下载(链接在文章下面给出)。 
 所需的材料
 ●    Arduino UNO开发板 ●    HC-06蓝牙模块 ●    LED指示灯(红色和绿色) ●    电阻220欧姆(2个) ●    Arduino蓝牙语音控制器(从Play商店下载) ●    面包板 ●    连接导线
 
 HC-06蓝牙模块 蓝牙可以运行在以下两种模式: 1.    AT指令设置模式 2.    工作模式 
 在AT指令设置模式下,我们可以配置蓝牙属性,如蓝牙信号的名称、密码、运行波特率等。工作模式是我们可以在PIC单片机和蓝牙模块之间发送和接收数据的一种模式。因此,在本教程中,我们将仅使用工作模式进行测试。AT指令设置模式保留为默认设置。设备名称将是HC-05,密码将为0000或1234,最重要的是所有蓝牙模块的默认波特率为9600。 
 该模块工作在5V电源,信号引脚工作在3.3V,所以模块内部安装有一个3.3V稳压器。因此我们不必担心。在六个引脚中工作模式只使用了四个引脚。引脚连接表如下所示 |  序号 | HC-05模块的引脚 | MCU的引脚 | PIC的引脚 |  | 1 | Vcc | Vdd | 第31脚 |  | 2 | Gnd | Gnd | 第32脚 |  | 3 | Tx | RC6 / Tx / CK | 第25脚 |  | 4 | Rx | RC7 / Rx / DT | 第26脚 |  | 5 | State | NC | NC |  | 6 | EN(Enable) | NC | NC | 
 电路原理图 该语音控制LED指示灯的电路图如下,在Arduino UNO中上传代码时,断开Rx和Tx引脚并在代码上传后重新连接。 
  
 代码和说明 语音控制LED指示灯的完整Arduino代码在本文的末尾处给出。这里我们简单介绍代码的几个部分。 
 在下面的代码中,我们定义了Rx和Tx的引脚。 复制代码int TxD = 11;
int RxD = 10;
 现在,将Arduino的引脚2和3设置为输出。 复制代码pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
 在void loop()函数中,Arduino将持续检查输入值,并根据语音命令控制LED。根据给定的语音命令,Arduino将打开或关闭LED。我们将所有收到的命令保存在变量“Value”中。
 如果该值为“all LED turn on”,则两个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);      
      }
 }
 工作过程 语音控制LED指示灯的工作工程如下所示:
 
  
 第1步: - 按照电路图连接所有组件;上传代码时断开Rx和Tx引脚。
 第2步: - 在Play商店下载免费的“Arduino蓝牙语音控制器”应用程序。
 第3步: - 打开应用程序,并按照下面的图像进行操作,首先点击“连接到蓝牙设备”并选择您的蓝牙模块,并检查它是否连接。然后点击麦克风图标发言并发送语音命令到HC-06模块。 
  注意:当您首次使用智能手机连接蓝牙模块时,它会询问密码,使用0000或1234。 
 第4步: - 设置好所有东西后,您只需使用应用程序发送语音命令,该应用程序将进一步发送至蓝牙模块HC-06,然后HC-06与Arduino UNO进行串行通信,然后执行任务根据命令。下面显示了命令和接收命令后要执行的动作: |  序号 |  命令 |  动作 |  | 1 | all LED turn on 
 | 点亮红色和绿色LED指示灯 |  | 2 | all LED turn off | 熄灭红色和绿色LED指示灯 |  | 3 | turn on Red LED | 点亮红色LED指示灯 |  | 4 | turn on green LED | 点亮绿色LED指示灯 |  | 5 | turn off red LED | 熄灭红色LED指示灯 |  | 6 | turn off green LED | 熄灭绿色LED指示灯 | 
 代码 本篇文章使用的完整代码如下: 复制代码#include <SoftwareSerial.h>
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);       
      }
 }
}
 |