
Arduino Android App: Parte II
Ya vimos como conectarnos a dispositivos BT. Ahora veamos como comunicarnos con esos dispositivos!
Requisitos:
- Computadora (mac)
- Arduino UNO
- Arduino IDE
- Modulo Bluetooth HC-05
- LED & Resistor 220O
- Android Studio (http://developer.android.com/sdk/installing/index.html?pkg=studio)

Ahora vamos a crear una aplicación para Android y un sketch para Arduino y hacer que se comuniquen de forma sencilla para controlar una LED.
Iniciemos con la Arduino Sketch:
[code]
#include <SoftwareSerial.h>
SoftwareSerial mySerial(6, 5);
int dataFromBT;
void setup() {
Serial.begin(57600);
Serial.println(“LEDOnOff Starting…”);
// The data rate for the SoftwareSerial port needs to
// match the data rate for your bluetooth board.
mySerial.begin(115200);
pinMode(13, OUTPUT);
}
void loop() {
if (mySerial.available())
dataFromBT = mySerial.read();
if (dataFromBT == ‘0’) {
// Turn off LED
digitalWrite(13, LOW);
} else if (dataFromBT == ‘1’) {
// Turn on LED
digitalWrite(13, HIGH);
}
}
[/code]
Sencillamente leemos la data entrando por el Serial y si es ‘1’ encendemos la LED, si es ‘0’ la apagamos.
Ahora sigamos con la Android App:
Luego creamos un nuevo proyecto con Actividad vacía o en blanco, llamada MainActivity.java. Estos son los archivos finales. En este proyecto Android usamos alrededor de 15 imports. Interesante notar los imports para java.io.OutputStream que usaremos para enviar datos esta vez.
Nuevamente en onCreate creamos el Bluetooth Adapter y aquí mismo creamos 2 botones con sus listeners para conectarlos a una acción donde una manda un 0 y otra manda un 1. Luego tenemos algunos métodos de mantenimiento como onResume, onPause, checkBTState y errorExit. Finalmente tenemos el método sendData que se encarga de enviar informacion del android al arduino-BT-client. Este es el método importante donde usamos un stream para enviar los datos a través del comando:
[code]outStream.write(msgBuffer);[/code]
Corremos la app en el celular y podremos buscar dispositivos con BT y conectarnos a ellos y controlar una LED. Ahora veamos como enviar y recibir datos mas específicos.