Interface an Android smartphone with an Arduino via Bluetooth to control an LED from your phone.

ezgif.com-webp-to-jpg.jpg

Ever thought of controlling any of your electronic devices with your smartphone? How about a robot or any other device? Wouldn't it be cool to control them with your smartphone? Here is a simple tutorial for interfacing an Android smartphone with Arduino via Bluetooth!

ezgif.com-webp-to-jpg (1).jpg

Android studio isn't really required here, since I will provide you with the Android application that I made. You can install the given .apk file to use the application.

How Does It Work?

There are three main parts to this project. An Android smartphone, a Bluetooth transceiver, and an Arduino.

ezgif.com-webp-to-jpg (2).jpg

HC 05/06 works on serial communication. The Android app is designed to send serial data to the Arduino Bluetooth module when a button is pressed on the app. The Arduino Bluetooth module at the other end receives the data and sends it to the Arduino through the TX pin of the Bluetooth module (connected to RX pin of Arduino). The code uploaded to the Arduino checks the received data and compares it. If the received data is 1, the LED turns ON. The LED turns OFF when the received data is 0. You can open the serial monitor and watch the received data while connecting.

Connecting the Arduino Bluetooth Hardware

ezgif.com-webp-to-jpg (3).jpg

This circuit is simple and small. There are only four connections to be made between the Arduino and Bluetooth module!

Arduino Pins | Bluetooth Pins
RX (Pin 0) ———> TX
TX (Pin 1) ———> RX
5V ———> VCC
GND ———> GND


Connect an LED positive to pin 13 of the Arduino through a resistance (valued between 220Ω–1KΩ). Connect its negative to GND, and you're done with the circuit!

ezgif.com-webp-to-jpg (4).jpg

You can connect the Bluetooth module to the Arduino using a set of jumper wires and a connector.

Note: Don’t connect RX to RX and TX to TX on the Bluetooth and Arduino. You will receive no data. Here, TX means transmit and RX means receive.

Uploading the Sketch to Arduino

    char data = 0;                //Variable for storing received data
void setup() 
{
Serial.begin(9600);         //Sets the data rate in bits per second (baud) for serial data transmission
pinMode(13, OUTPUT);        //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0)  // Send data only when you receive data:
{
data = Serial.read();      //Read the incoming data and store it into variable data
Serial.print(data);        //Print Value inside data in Serial monitor
Serial.print("\n");        //New line 
if(data == '1')            //Checks whether value of data is equal to 1 
digitalWrite(13, HIGH);  //If value is 1 then LED turns ON
else if(data == '0')       //Checks whether value of data is equal to 0
digitalWrite(13, LOW);   //If value is 0 then LED turns OFF
}                            

}

Upload the given sketch to Arduino using the Arduino IDE software, you can also get it from Github.

Installing the Android Application

ezgif.com-webp-to-jpg (5).jpg

In this tutorial, I will not cover Android app development. You can download the Android application from here and the source code of the entire project.

  1. Turn ON the HC 05/06 Bluetooth module by powering the Arduino.
  2. Scan your smartphone for available devices.3. Pair your smartphone to the HC 05/06 by entering default password 1234 OR 0000.
  • Install the LED application on your Android device.
  • Open the application.
ezgif.com-webp-to-jpg (6).jpg

  • Press "paired devices".
  • Select your Bluetooth module from the list (HC-05/06)
ezgif.com-webp-to-jpg (7).jpg

  • After connecting successfully, press the ON button to turn the LED on and the OFF button to turn the LED off.
  • Disconnect the button to disconnect the Bluetooth module.
ezgif.com-gif-maker.gif

Here's how it works!

This is just a basic tutorial on interfacing a Bluetooth module with Arduino. This project can be taken to a higher level, like home automation using a smartphone, smartphone-controlled robots, and much more! You can watch the video tutorial below:

Mayoogh Girish
Mayoogh Girish is a electronics engineer, and a DIY Maker by passion. He is interested in open source technology.