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!


  • Epilog Challenge 9

    Epilog Challenge 9
  • First Time Author Contest 2018

    First Time Author Contest 2018
  • Sew Warm Contest 2018

    Sew Warm Contest 2018

We have a be nice policy.
Please be positive and constructive.




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

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?


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!

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