Introduction: Arduino Voice Recognition Via Bluetooth HC-05

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.

Comments

author
koushik.kous made it!(author)2015-07-25

//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


author
ShouryaT2 made it!(author)2017-04-21

this is not working !!!!

author
oguzt made it!(author)2017-04-02

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.

author
nachiketharas made it!(author)2017-02-23

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

author
Kyller+XS made it!(author)2017-02-05

So this device will recognize any language?

author
asmb made it!(author)2016-09-25

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);

author
matthewtweedie made it!(author)2016-09-14

Fabulous

author
Hetalr2 made it!(author)2016-08-28

arduino ide code for servo instead led.

email=mhaital81@gmail.com

author
Hetalr2 made it!(author)2016-08-28

plzzz upload arduino ide code if i use servo.

author
RakeshM19 made it!(author)2016-02-10

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

my email: adigoppula.shashi143@gmail.com

author
uwaghela made it!(author)2016-01-06

someone could please help me out for getting the component list

author
jagadishmts made it!(author)2016-02-07

components are
1.aruduino uno
2.Bluetooth module HC05
3.Breadboard
4.LEDs (for testing wheather voice command working properly or not)
5.jumper wire (male and female)
That's it...

author
WalidM made it!(author)2015-10-25

thnx I made this

IMG_20151026_123144.jpg
author
cbop15 made it!(author)2015-09-14

Let's say I wanted to output audio using a bluetooth headset, would that just be something that I'd have to add through coding or is there something else I would have to do?

author
ohmekaphon made it!(author)2015-06-27

Can i use with servos?

author
ponghissimo made it!(author)2015-09-07

Of course you can.

You have to read from the second character(exclude the initial "*") , convert the value to INT, and then you can use it.

Here it is just an example:

Value= voice.substring(1).toInt();

myservo.write(value);

author
ponghissimo made it!(author)2015-09-07

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! :)

author
Onur+RifatE made it!(author)2015-08-20

author
HamzaL2 made it!(author)2015-06-20

There is an error in the installation of poles, where Bluetooth RX....................... pin10 and TX ........................ pin11

author
pino.has made it!(author)2015-03-04

Thanks for sharing!

author
Raphango made it!(author)2014-09-15

Very nice project! definetelly useful! ^^

author
MsSweetSatisfaction made it!(author)2014-08-17

Short and sweet instructable. Thanks for sharing!

About This Instructable

37,622views

120favorites

License:

Bio: 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 ... More »
More by gagan8619:Processing: Instructables logo animationSix wheeled All Terrain Vehicle (6WD)Arduino Voice recognition Via Bluetooth HC-05
Add instructable to: