Arduino Voice Recognition Via Bluetooth HC-05

54,041

124

30

Introduction: Arduino Voice Recognition Via Bluetooth HC-05

About: I am an Undergraduate student majoring in physics from IISc, Bangalore. I am just a guy who love to build tech stuff and make them look good.

It's really easy and quick to add voice control to your arduino project. Whether it is home automation or door lock, or robots, voice control could be one eye catching feature in an arduino project. In this tutorial I"ll show you how to voice control arduino projects without voice recognition shield. We"ll be using a HC-05 Bluetooth module. We"ll connect a Android device with HC-05 Bluetooth. Android Phone will convert voice into string of data using Google voice recognition software. This string of data will be sent to HC-05 Bluetooth module and then to arduino uno. After that, Arduino decodes and process it.

Step 1: Connections

The circuit is very simple. Since the Tx and Rx pin on HC-05 bluetooth module are 3.3v pins you have use voltage dividers to step down 5 volt signal from arduino to 3.3 volt signal.

Arduino--------------- HC-05 Bluetooth

11--------------------------Rx

10--------------------------Tx

5v-------------------------Vcc

Gnd----------------------Gnd

Step 2: Coding

On the Android device we use an Application called as AMR_Voice to convert voice into string of data and send it over bluetooth. You can download this app from Google Playstore by clicking here.

We use the software serial library for this project. You can download the code, it is attached with this instructable.

1 Person Made This Project!

Recommendations

  • Big and Small Contest

    Big and Small Contest
  • Make It Bridge

    Make It Bridge
  • For the Home Contest

    For the Home Contest

30 Comments

0
Rudy006
Rudy006

5 months ago

Is it possible to use a bluetooth earpiece other than the app?

0
mishalshanavas8
mishalshanavas8

Question 3 years ago

Is it possible to do on Arduino nano
If it is possible how

0
ajaym86
ajaym86

4 years ago

Thanks in advance

0
ajaym86
ajaym86

4 years ago

Mail the code for voice control and display and the amr_voice is not available in Play Store any other app....

0
ankpatel1994
ankpatel1994

Question 4 years ago on Step 2

do we have to use voltage divider circuit for both Rx and TX ?

0
ponghissimo
ponghissimo

7 years ago on Introduction

Very nice!!

I've attached a servo and a temperature sensor, and i can turn on/off leds, move servo, and read temperature values, just with my voice commands.

everything works perfectly, apart that i get an error everytime i exit the app on my Galaxy S1 mobile.

I hope this will be fixed soon.

Until now, great work! thank you! :)

0
JayaM12
JayaM12

Reply 5 years ago

Can you help me with the code?

0
ponghissimo
ponghissimo

Reply 5 years ago

what kind of help do you need?

can you be more specific on wich part of the code do you need help?

0
budih16
budih16

5 years ago

good project, i like it (y) ,

0
asmb
asmb

6 years ago

how do i use two commands to do the same thing?, i have tried this but the system confused and any randome commands was accepted. PLZ help

else if(voice == "*fan on" || "*stop")

{

digitalWrite(led2, HIGH);

digitalWrite(led1, LOW);

0
GokulN1
GokulN1

Reply 5 years ago

else if(voice == "*fan on" || voice == "*stop")

0
koushik.kous
koushik.kous

7 years ago on Introduction

//Coded By: Angelo Casimiro (4/27/14)
//Voice Activated Arduino (Bluetooth + Android)
//Feel free to modify it but remember to give credit
#include

SoftwareSerial BT(11, 10); //TX, RX respetively
String voice;

void setup() {
BT.begin(9600);
Serial.begin(9600);
pinMode(13, OUTPUT);

}
//-----------------------------------------------------------------------//
void loop() {
while (BT.available()){ //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
char c = BT.read(); //Conduct a serial read
if (c == '#') {break;} //Exit the loop when the # is detected after the word
voice += c; //Shorthand for voice = voice + c
}
if (voice.length() > 0) {
Serial.println(voice);

if(voice == "*start")
{
digitalWrite(13, HIGH);
}

else if(voice == "*stop")
{
digitalWrite(13, LOW);
}


voice="";}} //Reset the variable after initiating


0
ShouryaT2
ShouryaT2

Reply 5 years ago

this is not working !!!!

0
oguzt
oguzt

5 years ago

We built a circuit in our project. As a result, we showed the LCD on the screen. How can I send this text to the android mobile phone? And how can I read this text that I sent out by voice? I used genuino 101.

0
nachiketharas
nachiketharas

6 years ago

Can u plz send me d code
And my email id is gaganmanjunathar@gmail.com
Tq

0
Kyller XS
Kyller XS

6 years ago

So this device will recognize any language?

0
Hetalr2
Hetalr2

6 years ago

arduino ide code for servo instead led.

email=mhaital81@gmail.com

0
Hetalr2
Hetalr2

6 years ago

plzzz upload arduino ide code if i use servo.

1
RakeshM19
RakeshM19

7 years ago

kindly send me the code for bluetooth module for voice control robot

my email: adigoppula.shashi143@gmail.com