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
Requirements:
-Arduino
-Bluetooth-Module (HC-05, HC-06, ...)
-Android-Device
-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");
BTserial.print(",");
BTserial.print("1234.0");
BTserial.print(",");
BTserial.print("1234 hPa");
BTserial.print(",");
BTserial.print("500 ml/s");
BTserial.print(",");
BTserial.print(sensorValue);
BTserial.print(";");
//message to the receiving device
delay(20);
}
Step 2: Android App "Arduino Bluetooth Data"
The following app intents to process the incoming measuring-data and visualisates them:
https://play.google.com/store/apps/details?id=com....
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:
BTserial.print(yourownValue);
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!