使用語音命令控制 LED 似乎是一項(xiàng)艱巨的任務(wù),但它很容易,您可以快速構(gòu)建它。我們只需要一個Arduino UNO與HC-06藍(lán)牙模塊串行通信,智能手機(jī)就可以向藍(lán)牙模塊HC-06發(fā)送語音命令。為了接收語音命令,我們正在使用“Arduino藍(lán)牙語音控制器”Android應(yīng)用程序。
所需材料
Arduino UNO
HC-06 藍(lán)牙模塊
指示燈(紅色和綠色)
電阻器 220 歐姆(2 個)
Arduino藍(lán)牙語音控制器
面包板
連接線
HC-06 藍(lán)牙模塊:
藍(lán)牙可以在以下兩種模式下運(yùn)行:
命令模式
操作模式
在命令模式下,我們將能夠配置藍(lán)牙屬性,例如藍(lán)牙信號的名稱,密碼,操作波特率等。操作模式是我們能夠在PIC微控制器和藍(lán)牙模塊之間發(fā)送和接收數(shù)據(jù)的模式。因此,在本教程中,我們將只玩弄操作模式。命令模式將保留默認(rèn)設(shè)置。設(shè)備名稱將是HC-05(我正在使用HC-06),密碼將是0000或1234,最重要的是,所有藍(lán)牙模塊的默認(rèn)波特率為9600。
模塊采用 5V 電源供電,信號引腳工作在 3.3V,因此模塊本身存在一個 3.3V 穩(wěn)壓器。因此,我們不必?fù)?dān)心。在六個引腳中,只有四個將在操作模式下使用。引腳連接表如下所示
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 | 州 | 數(shù)控 | 數(shù)控 |
6 | 英文(使能) | 數(shù)控 | 數(shù)控 |
電路圖
下面給出了此語音控制燈的電路圖,在Arduino UNO中上傳代碼時(shí),斷開Rx和Tx引腳,并在上傳代碼后再次連接。
代碼和說明
語音控制LED的完整Arduino代碼在末尾給出。在這里,我們將解釋代碼的幾個部分。
在這里,在下面的代碼中,我們將定義 Rx 和 Tx 的引腳。
int TxD = 11;
int RxD = 10;
現(xiàn)在,設(shè)置引腳 2德·和 3RD的 Arduino 作為輸出。
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
在空回路功能中,Arduino將始終檢查輸入值,并根據(jù)語音命令控制LED。Arduino將根據(jù)給定的語音命令打開或關(guān)閉LED。我們將所有收到的命令保存在變量“Value”中
如果值為“所有 LED 打開”,則兩個 LED 都打開,像這樣,我們已經(jīng)編碼了其他語音命令來打開或關(guān)閉單個 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 步:-按照電路圖連接所有組件;上傳代碼時(shí)斷開 Rx 和 Tx 引腳的連接。
第 2 步:-下載名為“Arduino藍(lán)牙語音控制器”的應(yīng)用程序,該應(yīng)用程序在Play商店中免費(fèi)。
第 3 步:-打開應(yīng)用程序并按照下圖進(jìn)行操作,例如首先單擊“連接到藍(lán)牙設(shè)備”并選擇您的藍(lán)牙模塊并檢查它是否已連接。然后單擊麥克風(fēng)圖標(biāo)說話并將語音命令發(fā)送到HC-06模塊。
注意:當(dāng)您第一次將藍(lán)牙模塊與智能手機(jī)連接時(shí),它會詢問密碼,請使用 0000 或 1234。
第 4 步:-設(shè)置完所有內(nèi)容后,您只需使用應(yīng)用程序發(fā)送語音命令,該應(yīng)用程序進(jìn)一步發(fā)送到藍(lán)牙模塊HC-06,HC-06與Arduino UNO串行通信,然后按照命令執(zhí)行任務(wù)。下面顯示了命令和命令要執(zhí)行的操作:
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);
}
}
}
-
led
+關(guān)注
關(guān)注
240文章
22905瀏覽量
650105 -
Android
+關(guān)注
關(guān)注
12文章
3903瀏覽量
126614 -
HC-06
+關(guān)注
關(guān)注
0文章
11瀏覽量
7738
發(fā)布評論請先 登錄
相關(guān)推薦
評論