How to Receive Arduino Sensor-Data on Your Android-Smartphone


Introduction: How to Receive Arduino Sensor-Data on Your Android-Smartphone

In default the Arduino is not equipped with a display to visualize measuring-data, for example from your temperature or your pressure Sensor. If you want to get the data shown you need a PC, printing the data to the console or mounting a display directly to the Arduino. So there is no simple way to WIRELESSLY visualize measuring-data.

In this instructable i will show you, how to transfer measured Sensor-datain realtime from your Arduino-Mikrocontroller to your Android-Smartphone via Bluetooth.

Step 1: Preparing HC-05/HC-06 and Arduino



-Bluetooth-Module (HC-05, HC-06, ...)


-App "Arduino Bluetooth Data"

The Bluetooth-Module HC-05/HC-06 is communicating with the Arduino via the UART-Interface. Every message the Arduino wants to send, is first given to the Bluetooth-Module, which sends the message wirelessly. To avoid problems with the UART, Arduino and Bluetooth-Module have to use the same baud-rate (in default 9600). It is possible to change the baud-rate and the password (and many other things) of the HC-05/HC-06, but this is not part of this instructable.

At first we have to do the wiring. The HC-05 has to be connected as descripted.

Wiring HC-05:

-GND of HC-05 to GND Arduino

-VCC of HC-05 to 3.3V Arduino

-TX HC-05 to Arduino Pin 10 (RX)

-RX HC-05 to Arduino Pin 11 (TX)

Important: HC-05 RX ist not connected to Arduino RX and vice versa.

Connect the Arduino to your PC and upload the following Code:

/*Developer: Frederik Hauke

Important Notices:

This Arduino-Code is written for Visualizating measurement data from a microcontroller via Bluetooth.

Before starting this application, the Bluetooth-Modul (HC-05) has to be coupled to the Smartphone.In the special case of the HC-05 the default PinCode for initiating the Coupling-Process is "1234".

Wiring: GND of HC-05 to GND Arduino, VCC of HC-05 to VCC Arduino, TX HC-05 to Arduino Pin 10 (RX) RX HC-05 to Arduino Pin 11 (TX) */

#include <SoftwareSerial.h>

SoftwareSerial BTserial(10, 11); // RX | TX

int sensorPin = A0;

int sensorValue = 0;

void setup() {

BTserial.begin(9600); }

void loop() {

sensorValue = analogRead(sensorPin);

//IMPORTANT: The complete String has to be of the Form: 1234,1234,1234,1234;

//(every Value has to be seperated through a comma (',') and the message has to

//end with a semikolon (';'))





BTserial.print("1234 hPa");


BTserial.print("500 ml/s");




//message to the receiving device



Step 2: Android App "Arduino Bluetooth Data"

The following app intents to process the incoming measuring-data and visualisates them:

Before using the app the Bluetooth-Module (HC-05/HC-06) has to be coupled to the Android in the system-preferences. In the special case of the HC-05 the default PinCode for initiating the Coupling-Process is "1234" or "0000".

If both devices are coupled, go to the app, pick the HC-05/HC-06 and click the red connect-button. "Arduino Bluetooth Data" should establish a serial connection.

In the Arduino-Code you determine on your own which values you want to send to the Android-Device. Just change these lines and fit in your own values:


Besides you can set a higher sampling-rate by lowering the delay: delay(yourownValue);

Feel free to do some experiments! Please, let me know, if something is not explained precisely enough!

2 People Made This Project!


  • Oil Contest

    Oil Contest
  • Clocks Contest

    Clocks Contest
  • Water Contest

    Water Contest

47 Discussions

I have connected multiple sensors but I am getting only one sensor's value.

can you please help me ?


Question 3 months ago

Can anyone tell me how the output would be looking. Will those 1234,1234.0 etc be visible too.... If that's the case then why are we printing these values when we want only the sensor reading


Question 3 months ago

how can i get BMP 180 value through HM 10

I was wondering what the code is for the arduino to receive instructions from the phone?


can you please tell me which plateform you used to build android application and can you please give me the source code of android application or just tell me how i can recieve data from arduino to smart phone via bluetooth ? thanks

is there a way to receive sensor data on android via Wi-Fi or module sim800l?

2 replies

Try to implement websockets with the ESP8266 for wifi.

How to implement websockets with esp8266? How can we send the sensor data to the smartphone? Is there any way that the esp8266 can send sensor data locally (without using the web/internet) to smartphone?


6 months ago


I installed this app, but it does not work as Receiver, just as Terminal. why?

Hi There, I'm outputting things correctly in the terminal on the Android, however, having trouble getting my values in the:

Sensor 1:

Sensor 2:

Sensor 3:


Can you elaborate more on how I do this? Thanks!

2 replies

sensorValue = analogRead(sensorPin);

^Can you explain what this line of code means?

this means reading from a pin for example pin 0 or pin 1 .... pin 5 so you can have ean expression saying analogRead(0);

please share the android code as much as possible.

hello, i have been trying to send data to my phone using an arduino pro min and the HC-06 module. The data is not showing up on the app/phone. The change I made is:

SoftwareSerial BTserial(1, 0); // RX | TX

Your help would be greatly appreciated.

Hello, is it possible for you to make the app an open source? or is it possible to do a tutorial for the android studio part? It's just that i have a final project that's due. I got all the sensors and the arduino codes working. It's the android studio part is what i dont get. I dont know how to make android studio receive data from the bluetooth


1 year ago

i was tried based on this instructions, but my HC05 didn't received any data. can you help me?

Hello, I was trying to use this as an example to work with a similar setup. The difference is that I have a Sensor Shield v5.0 plugged into the Arduino and the HC-06 plugged into the shield. The shield is marked with only TX RX - + do you know if there is a way that I can convert SoftwareSerial BTserial(10, 11); // RX | TX to work with the Shield.

1 reply

As a follow up it looks like the RX, TX on the shield correspond to D0 and D1 on the Arduino so I'm currently trying them with the code to see if they work.