Introduction: Arduino Bluetooth Android - LED Controller Project

Hi everyone, In this project i will show you how to control LED light with your Android device along with Arduino. I am using Hc-06 bluetooth module for arduino to communicate with the android device.

Step 1: Components

  • Arduino Uno
  • HC-06 Bluetooth Module
  • Jumpers
  • Breadboard
  • LED
  • Push Buttons
  • 10k Resistors
  • Arduino Bluetooth App

CODE:

#include
int bluetoothTx = 2; // TX-O pin of bluetooth mate, Arduino D2 int bluetoothRx = 3; // RX-I pin of bluetooth mate, Arduino D3 int led = 13; int buttonPin1 = 7; int buttonPin2 = 8; int button1State = 0; int button2State = 0; int dataFromBt; boolean lightBlink = false; SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); void setup() { Serial.begin(9600); // Begin the serial monitor at 9600bps bluetooth.begin(115200); // The Bluetooth Mate defaults to 115200bps bluetooth.print("$"); // Print three times individually bluetooth.print("$"); bluetooth.print("$"); // Enter command mode delay(100); // Short delay, wait for the Mate to send back CMD bluetooth.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity // 115200 can be too fast at times for NewSoftSerial to relay the data reliably bluetooth.begin(9600); // Start bluetooth serial at 9600 pinMode(led, OUTPUT); pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); } void loop() { if (bluetooth.available()) // If the bluetooth sent any characters { // Send any characters the bluetooth prints to the serial monitor Serial.println((char)bluetooth.read()); dataFromBt = bluetooth.read(); //Serial.println(dataFromBt); if (dataFromBt == '1') { Serial.println("led on"); digitalWrite(led, HIGH); bluetooth.print("1"); } if (dataFromBt == '0') { Serial.println("led off"); digitalWrite(led, LOW); bluetooth.print("0"); } if (dataFromBt == 'b') { Serial.println("a"); lightBlink = true; } else { lightBlink = false; } } if (Serial.available()) // If stuff was typed in the serial monitor { // Send any characters the Serial monitor prints to the bluetooth //String myStr = (String)Serial.read(); //char myStr1[] = "hello this is testing!"; // uint8_t payload[myStr.length() + 1]; // myStr.getBytes(payload, myStr.length()+1); int bytes=Serial.available(); //Serial.readBytes(buffer, startPosition, bytes); bluetooth.print((char)Serial.read()); } // and loop forever and ever! if (lightBlink) { digitalWrite(led, HIGH); bluetooth.print("1"); Serial.println("HIGH"); delay(500); digitalWrite(led, LOW); bluetooth.print("0"); Serial.println("LOW"); delay(500); } //------arduino push button code---------------- button1State = digitalRead(buttonPin1); button2State = digitalRead(buttonPin2); if (button1State == HIGH) { digitalWrite(led, HIGH); bluetooth.print("1"); Serial.println("on"); } if (button2State == HIGH) { digitalWrite(led, LOW); Serial.println("off"); bluetooth.print("0"); } }

Comments

author
roneea (author)2017-05-14

that cood not work

#include

int bluetoothTx = 2; // TX-O pin of bluetooth mate, Arduino D2

int bluetoothRx = 3; // RX-I pin of bluetooth mate, Arduino D3

int led = 13;

int buttonPin1 = 7;

int buttonPin2 = 8;

int button1State = 0;

int button2State = 0;

int dataFromBt; boolean lightBlink = false;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup() {

Serial.begin(9600); // Begin the serial monitor at 9600bps

bluetooth.begin(115200); // The Bluetooth Mate defaults to 115200bps

bluetooth.print("$"); // Print three times individually

bluetooth.print("$");

bluetooth.print("$"); // Enter command mode

delay(100); // Short delay, wait for the Mate to send back CMD

bluetooth.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity

// 115200 can be too fast at times for NewSoftSerial to relay the data reliably

bluetooth.begin(9600); // Start bluetooth serial at 9600

pinMode(led, OUTPUT);

pinMode(buttonPin1, INPUT);

pinMode(buttonPin2, INPUT);

}

void loop() {

if (bluetooth.available())// If the bluetooth sent any characters

{

// Send any characters the bluetooth prints to the serial monitor Serial.println((char)bluetooth.read());

dataFromBt = bluetooth.read();

// Serial.println(dataFromBt);

if (dataFromBt == '1'); {

Serial.println("led on");

digitalWrite(led, HIGH);

bluetooth.print("1"); }

if (dataFromBt == '0');; {

Serial.println("led off");

digitalWrite(led, LOW);

bluetooth.print("0"); }

if (dataFromBt == 'b');

{ Serial.println("a");

lightBlink = true;

}

else

{

lightBlink = false; } }

if (Serial.available())

// If stuff was typed in the serial monitor { // Send any characters the Serial monitor prints to the bluetooth //

String myStr = (String)Serial.read();

//char myStr1[] = "hello this is testing!";

// uint8_t payload[myStr.length() + 1];

// myStr.getBytes(payload, myStr.length()+1); int bytes=Serial.available(); //Serial.readBytes(buffer, startPosition, bytes); bluetooth.print((char)Serial.read()); }

// and loop forever and ever! if (lightBlink) { digitalWrite(led, HIGH); bluetooth.print("1"); Serial.println("HIGH");

delay(500);

digitalWrite(led, LOW);

bluetooth.print("0");

Serial.println("LOW");

delay(500); }

//------arduino push button code---------------- button1State = digitalRead(buttonPin1); button2State = digitalRead(buttonPin2);

if (button1State == HIGH) {

digitalWrite(led, HIGH);

bluetooth.print("1");

Serial.println("on"); }

if (button2State == HIGH) {

digitalWrite(led, LOW);

Serial.println("off");

bluetooth.print("0"); } }

author
kennyheng (author)2016-09-23

May i ask what app u use?

author
Swansong (author)2016-09-22

Thanks for sharing :)

author
KashifB (author)Swansong2016-09-22

You are welcome :)