Adsense by google:

Arduino Bluetooth Shield Source Code and Tutorial

arduino bluetooth shield master to slave

arduino bluetooth shield master to slave

 

This is a tutorial on how to use Arduino Bluetooth shield.

To use this bluetooth shield, you have to plug it on the Arduino Uno board as shown in the image above.

This Bluetooth shield can be programmed to be a master or slave. If Bluetooth shield is programmed into the master, the bluetooth shield will make ‘a name’ for bluetooth connectivity.

In addition, it will set the baudrate and will be looking for signals bluetooth enabled. After finding an active bluetooth signal, This bluetooth shield will try to make the process of “pairing” and if the appropriate settings, then it will be connected.

Here is an example program “Master Bluetooth Shield”

#include <SoftwareSerial.h> // Software Serial Port

#define RxD 6
#define TxD 7
#define DEBUG_ENABLED 1

String retSymb = “+RTINQ=”; // start symble when there’s any return
String slaveName = “;SeeedBTSlave”; // caution that ‘;’must be included, and make sure the slave name is right.
int nameIndex = 0;
int addrIndex = 0;

String recvBuf;
String slaveAddr;

String connectCmd = “\r\n+CONN=”;

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
setupBlueToothConnection();
//wait 1s and flush the serial buffer
delay(1000);
Serial.flush();
blueToothSerial.flush();
}

void loop()
{
char recvChar;
while(1)
{
if(blueToothSerial.available()) //check if there’s any data sent from the remote bluetooth shield
{
recvChar = blueToothSerial.read();
Serial.print(recvChar);
}
if(Serial.available()) //check if there’s any data sent from the local serial terminal, you can add the other applications here
{
recvChar = Serial.read();
blueToothSerial.print(recvChar);
}
}
}

void setupBlueToothConnection()
{
blueToothSerial.begin(38400); // Set BluetoothBee BaudRate to default baud rate 38400
blueToothSerial.print(“\r\n+STWMOD=1\r\n”); // set the bluetooth work in master mode
blueToothSerial.print(“\r\n+STNA=SeeedBTMaster\r\n”); // set the bluetooth name as “SeeedBTMaster”
blueToothSerial.print(“\r\n+STAUTO=0\r\n”); // Auto-connection is forbidden here
delay(2000); // This delay is required.
blueToothSerial.flush();
blueToothSerial.print(“\r\n+INQ=1\r\n”); //make the master inquire
Serial.println(“Master is inquiring!”);
delay(2000); // This delay is required.

//find the target slave
char recvChar;
while(1)
{
if(blueToothSerial.available())
{
recvChar = blueToothSerial.read();
recvBuf += recvChar;
nameIndex = recvBuf.indexOf(slaveName); //get the position of slave name

//nameIndex -= 1;
//decrease the ‘;’ in front of the slave name, to get the position of the end of the slave address
if ( nameIndex != -1 )
{
//Serial.print(recvBuf);
addrIndex = (recvBuf.indexOf(retSymb,(nameIndex – retSymb.length()- 18) ) + retSymb.length());//get the start position of slave address
slaveAddr = recvBuf.substring(addrIndex, nameIndex);//get the string of slave address
break;
}
}
}

//form the full connection command
connectCmd += slaveAddr;
connectCmd += “\r\n”;
int connectOK = 0;
Serial.print(“Connecting to slave:”);
Serial.print(slaveAddr);
Serial.println(slaveName);
//connecting the slave till they are connected
do
{
blueToothSerial.print(connectCmd);//send connection command
recvBuf = “”;
while(1)
{
if(blueToothSerial.available()){
recvChar = blueToothSerial.read();
recvBuf += recvChar;
if(recvBuf.indexOf(“CONNECT:OK”) != -1)
{
connectOK = 1;
Serial.println(“Connected!”);
blueToothSerial.print(“Connected!”);
break;
}
else if(recvBuf.indexOf(“CONNECT:FAIL”) != -1)
{
Serial.println(“Connect again!”);
break;
}
}
}
}while(0 == connectOK);
}

arduino bluetooth shield slave to computer master tutorial

arduino bluetooth shield slave to computer master tutorial

If you set it as a slave bluetooth shield, then this will be passive. This bluetooth shield will set the baudrate and put a name of bluetooth connectivity.

After that, it will wait until there is a device that finding and trying to ‘pairing itself’. If the settings are appropriate, then both bluetooth device will be connected.

Here is an example program “Slave Bluetooth Shield”

#include <SoftwareSerial.h> //Software Serial Port
#define RxD 6
#define TxD 7

#define DEBUG_ENABLED 1

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
setupBlueToothConnection();

}

void loop()
{
char recvChar;
while(1)
{
if(blueToothSerial.available())
{//check if there’s any data sent from the remote bluetooth shield
recvChar = blueToothSerial.read();
Serial.print(recvChar);
}
if(Serial.available())
{//check if there’s any data sent from the local serial terminal, you can add the other applications here
recvChar = Serial.read();
blueToothSerial.print(recvChar);
}
}
}

void setupBlueToothConnection()
{
blueToothSerial.begin(38400); // Set BluetoothBee BaudRate to default baud rate 38400
blueToothSerial.print(“\r\n+STWMOD=0\r\n”); // set the bluetooth work in slave mode
blueToothSerial.print(“\r\n+STNA=SeeedBTSlave\r\n”); // set the bluetooth name as “SeeedBTSlave”
blueToothSerial.print(“\r\n+STOAUT=1\r\n”); // Permit Paired device to connect me
blueToothSerial.print(“\r\n+STAUTO=0\r\n”); // Auto-connection should be forbidden here
delay(2000); // This delay is required.
blueToothSerial.print(“\r\n+INQ=1\r\n”); // make the slave bluetooth inquirable
Serial.println(“The slave bluetooth is inquirable!”);
delay(2000); // This delay is required.
blueToothSerial.flush();
}

Summary
Arduino Bluetooth Shield Source Code and Tutorial
Article Name
Arduino Bluetooth Shield Source Code and Tutorial
Description
This is a tutorial on how to use Bluetooth Arduino shield. To use this bluetooth shield, you have to plug it on the Arduino Uno board as shown in the image above.
Authors
AVRCHIP.COM
avrchip.com
Publisher Logo
About authors
We are writers in avrchip.com. We present the articles on programming and arduino. You can get information on how to program the microcontroller and arduino. How do I write a script language for arduino and avr microcontroller.Most of the authors is an embedded systems engineer, software engineer, and electrical engineer.If you have questions about microcontrollers and arduino, please contact us at writer.avrchip@gmail.com.

Comments are closed.