Arduino-Android
Buetooth - hc05
Encender 4 leds mediante bluetooth
Buetooth - hc05
Encender 4 leds mediante bluetooth
xsetaseta@gmail.com
El utilizar el móvil para actuar sobre un circuito siempre me resulto tentador.
Ahora con los teléfonos android es relativamente fácil.
Para mi primera aplicación en android he utilizado el lenguaje basic, por su facilidad de uso y su curva de aprendizaje pequeña.
Como interprete de basic he utilizado una versión comercial en su modo trial BASIC4Android.
Esquema del circuito.
Circuito montado.
Módulo HC05.
La comunicación entre el dispositivo android y el arduino se hace mediante el módulos Bluetooth HC05.
Es un simple modulo que emplea la comunicación serie (Tx/Rx), en nuestro caso utilizaremos un puerto serie por sofware mediante los pins 2 y 3 del arduino.
En mi caso utilizo otra versión mas antigua del módulo HC05 que esta preprogramado a una velocidad de 38400 y con la contraseña 1234. En el módulo original HC05 viene a una velocidad de 9600, esto es lo que debéis cambiar en el programa arduino.
Programa arduino |
#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins //Aquí conectamos los pins RXD,TDX del módulo Bluetooth. SoftwareSerial BT(2,3); //2 RX, 3TX. char entrada[100]="LedFelipe"; int contador; boolean stringComplete = true; void setup() { pinMode(13, OUTPUT); for(contador=4;contador<=13;contador++) pinMode(contador, OUTPUT); BT.begin(38400); //Velocidad del puerto del módulo Bluetooth //BT.begin(9600); //Velocidad del puerto del módulo Bluetooth para el modelo normal HC05 Serial.begin(9600); //Abrimos la comunicación serie con el PC y establecemos velocidad digitalWrite(13, LOW); } void loop() { if(Serial.available()) { BT.write(Serial.read()); } while (BT.available()) { char inChar = (char)BT.read(); entrada[contador]=inChar; if (inChar == '\n') { stringComplete = true; entrada[contador]=0; } contador++; /* Serial.print(contador); Serial.print("-"); Serial.print(inChar,DEC); Serial.print("-"); */ } if (stringComplete) { if(!strcmp(entrada,"0Dig13")){digitalWrite(13, LOW); goto salto0;} if(!strcmp(entrada,"1Dig13")){digitalWrite(13, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig12")){digitalWrite(12, LOW); goto salto0;} if(!strcmp(entrada,"1Dig12")){digitalWrite(12, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig11")){digitalWrite(11, LOW); goto salto0;} if(!strcmp(entrada,"1Dig11")){digitalWrite(11, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig10")){digitalWrite(10, LOW); goto salto0;} if(!strcmp(entrada,"1Dig10")){digitalWrite(10, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig9")){digitalWrite(9, LOW); goto salto0;} if(!strcmp(entrada,"1Dig9")){digitalWrite(9, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig8")){digitalWrite(8, LOW); goto salto0;} if(!strcmp(entrada,"1Dig8")){digitalWrite(8, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig7")){digitalWrite(7, LOW); goto salto0;} if(!strcmp(entrada,"1Dig7")){digitalWrite(7, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig6")){digitalWrite(6, LOW); goto salto0;} if(!strcmp(entrada,"1Dig6")){digitalWrite(6, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig5")){digitalWrite(5, LOW); goto salto0;} if(!strcmp(entrada,"1Dig5")){digitalWrite(5, HIGH); goto salto0;} if(!strcmp(entrada,"0Dig4")){digitalWrite(4, LOW); goto salto0;} if(!strcmp(entrada,"1Dig4")){digitalWrite(4, HIGH); goto salto0;} BT.print(" Error->"); Serial.print(" Error->"); goto salto1; salto0: BT.print(" OK->"); Serial.print(" OK->"); salto1: BT.println(entrada); Serial.println(entrada); contador=0; stringComplete = false; } } |
El programa arduino funciona de la siguiente forma:
Escucha el puerto serie que proviene del modulo bluetooth. Cuando detecta una orden como 1Dig13 la procesa y enciende el led colocado en la salida Digital 13. Si la orden es errónea devuelve un error al dispositivo android.
En la parte del android el programa está realizado en basic, se llama LedFelipe.
El funcionamiento es el siguiente:
Al abrir el programa debemos conectarnos a un dispositivo bluetooth que ya debemos tener asociado previamente.
En nuestro caso es OBDII, que es el modulo bluetooth conectado al arduino.
Veremos que si se conecta correctamente nos aparecerá la palabra conectado y se quedara fijo el led del módulo HC05.
Ahora espera que se mande una orden, se puede escribir o pulsando alguno de los botones escribe la orden.
Pulsando el boton Send mandamos la orden, que el arduino procesará devolviendo OK o Error .
El programa basic es bastante sencillo por lo cual no merece mucha explicación, para el que quiera revisarlo o cambiarlo adjunto los archivos.
Programa LedFelipe
Vídeo de su funcionamiento.
FICHEROS
Saludos.
JUAN GALAZ
Bibliografía:
http://diymakers.es/arduino-bluetooth/
http://english.cxem.net/arduino/arduino4.php
http://www.instructables.com/id/Andruino-A-Simple-2-Way-Bluetooth-based-Android-C/step1/How-to-use-ArduDroid/
http://www.instructables.com/id/Cheap-2-Way-Bluetooth-Connection-Between-Arduino-a/?ALLSTEPS
http://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/
http://www.basic4ppc.com/
http://www.extremadura-web.es/Blog/2012/10/29/comunicacion-bluetooth-serie-arduino-y-basic4android/
http://iesromerovargas.es/recursos/elec/sol/basic4android.htm
demasiados errores en la programacion del archivo, pero funcional para practicar con android. gracias
ResponderEliminarNo entiendo lo de errores en la programacion del archivo.
ResponderEliminar¿En la parte del android o arduino? Funcionar funciona.