This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[TUTORIAL] AppInventor. Android + Módulo Bluetooth + Arduino
#1
Me comprometí a hacer un tutorial y aquí lo tenéis, espero que os sirva de algo :one:




Módulo utilizado: JY-MCU HC-06

[Imagen: tiggzz1375687519553.jpg]



Esquema de conexiones:


[Imagen: Arduino%2BBluetooth.png]



Para explicar el uso de este módulo voy a usar esta sencilla aplicación que consiste en encender y apagar 3 leds diferentes. El aspecto de la aplicación podría ser una cosa así, el diseño es a gusto de cada uno Mola :


[Imagen: 4mXiNSq.jpg]


Este es el entorno donde vamos a trabajar:


[Imagen: Ag8Gzll.jpg]


A la derecha del editor nos aparecerá una lista con todos los elementos que estamos usando, es muy recomendable nombrar cada cosa para luego no volvernos locos en el editor de bloques.
Es fundamental añadir el cliente bluetooth para que funcione Sisi3 se encuentra en el menú de la izquierda, dentro de "Other stuff".


[Imagen: ekxV7r6.jpg]


Una vez tengamos hecho el diseño de la aplicación toca asignar funciones a cada elemento, para ello, abrimos el editor de bloques con el siguiente botón:


[Imagen: x2MS8AG.jpg]


Se nos abrirá esta ventana, donde iremos colocando los bloques que vamos a utilizar. En el menú de la izquierda podemos ver todos los que tenemos disponibles:


[Imagen: 7AjKktL.jpg]


Ahora vayamos por partes...

Empezaremos declarando la variable "MAC", asignándole la dirección de nuestro módulo bluetooth (podemos saber la dirección por ejemplo con la app Bluetooth Terminal - Link).
En el campo de texto donde pone "DIRECCION MAC", tendremos que poner la dirección tal cual nos aparece en el móvil, algo así: XX:XX:XX:XX:XX:XX


[Imagen: bofWlKJ.jpg]


Seguimos ahora con el botón para conectarnos con el módulo desde la aplicación.

- Realizamos una comprobación de la MAC del módulo para ver si está funcionando.

En el caso de que si lo esté:

- Cambia el texto del botón por "Desconectar"
- Cambia el color del texto a gris.
- Se envía una cadena de texto cualquiera para que el otro extremo "sepa con quien hablar".


[Imagen: 3YVE8GN.jpg]


Primero, al pulsar el botón de encender "on", tenemos que:

- Se envía un "1", que usaremos para encender en este caso el led rojo con el arduino.
- Desactivamos el botón de encender para este led.
- Activamos el botón de apagado (previamente en el diseño lo marcamos para que esté desactivado en el inicio).

Segundo, una vez desactivado el botón de encender y activado el de apagar "off", si pulsamos este último:

- Se envía una "A", que usaremos para apagar en este caso el led rojo con el arduino.
- Desactivamos el botón de apagar para este led.
- Activamos nuevamente el botón de encendido.


[Imagen: vOp2mgM.jpg]


(Las cadenas de caracteres que le enviamos al arduino, pueden ser cualquier texto, solo hay que poner luego lo mismo en la parte del código donde corresponda.)

De está forma quedaría para los 3 leds:


[Imagen: NPM9wtM.jpg]


Y este sería el resultado final, añadiéndole al botón "salir" la acción de cerrar la aplicación:


[Imagen: u5s7Efd.jpg]


Código de arduino para este ejemplo:

Código:
//Ejemplo de control de 3 LEDs mediante un módulo bluetooth y un dispositivo Android. SpainLabs.com

String dato;                                 //Variable de tipo cadena para guardar los datos recibidos
int rojo= 8;
int naranja= 9;
int verde= 10;

void setup() {
  Serial.begin(9600);                        //Iniciamos comunicación serial
  
  //Salidas digitales
  pinMode(rojo, OUTPUT);
  pinMode(naranja, OUTPUT);
  pinMode(verde, OUTPUT);
}

void loop() {
  while (Serial.available()) {
    delay(10);
     if (Serial.available() > 0) {
      char c = Serial.read();                //Cuando se recibe un dato, se guarda como carácter
      dato += c;                             //Cadena de caracteres formada por la suma de los datos recibidos
     }
  }
  if (dato.length() > 0) {                   //Comprueba que la variable "dato" tenga al menos un caracter
  
    if(dato == "1") {                        //Comparamos la cadena de caracteres con cada uno de los casos
      Serial.println("Encender led rojo");   //Muestra por el monitor serial la acción realizada
      digitalWrite(rojo, HIGH);              //Enciende el led rojo
    }
    if(dato == "A") {  
      Serial.println("Apagar led rojo");
      digitalWrite(rojo, LOW);
    }
    if(dato == "2") {
      Serial.println("Encender led naranja");
      digitalWrite(naranja, HIGH);
    }
    if(dato == "B") {
      Serial.println("Apagar led naranja");
      digitalWrite(naranja, LOW);
    }
    if(dato == "3") {                        
      Serial.println("Encender led verde");
      digitalWrite(verde, HIGH);
    }
    if(dato == "C") {
      Serial.println("Apagar led verde");
      digitalWrite(verde, LOW);
    }
     dato="";  //Declaramos la variable "vacía" para volver a guardar de nuevo caracteres y compararlos con cada uno de los casos
  }
}


Montaje en protoboard:

[Imagen: WEc3k7X.png]

IMPORTANTE:

- El código para emparejar el módulo bluetooth con el dispositivo, suele ser "1234".
- Si se usan los pines 0 y 1 del arduino (Rx y Tx), a la hora de cargar el sketch hay que desconectarlos y una vez se haya cargado los volvemos a conectar. En el caso de que queráis usar otros pines digitales para no tener problema con esto, tendréis que usar la librería SoftwareSerial.h. Aquí podéis encontrar más información: http://arduino.cc/es/Reference/SoftwareSerial


AppInventor: http://appinventor.mit.edu/explore/classic.html
AppInventor 2: http://ai2.appinventor.mit.edu/

Versión para descargar (Windows): http://beta.appinventor.mit.edu/learn/se...ndows.html

Animaros a realizar algún proyecto implementando esto y lo publicáis aquí en el foro!! :yeah:


Si tenéis alguna pregunta, duda o sugerencia ponedla aquí en el hilo Mola
  Responder
#2
Muy buen tuto, yo próximamente voy a empezar un proyecto utilizando el modulo bluetooth HC-05, en cuanto termine lo comparto, con toda la info y datos que he recopilado
  Responder
#3
Otro con el proyecto. Me lo pido Gran sonrisa
  Responder
#4
diego_eko escribió:Muy buen tuto, yo próximamente voy a empezar un proyecto utilizando el modulo bluetooth HC-05, en cuanto termine lo comparto, con toda la info y datos que he recopilado
Diferencia entre le HC-06 y el HC-05??
  Responder
#5
Cita:Una simple diferencia es que el módulo HC-06 funciona como Slave solamente, y el HC-05 funciona como Master y Slave, básicamente es eso, lo cual podría condicionarnos algún desarrollo, pero la realidad es que el HC-06 tiene un valor menor y nos sirve tanto para enviar y recibir (siempre y cuando utilicemos de a uno por vez, por este tema de Maestro y Esclavo).
  Responder
#6
cna escribió:
Cita:Una simple diferencia es que el módulo HC-06 funciona como Slave solamente, y el HC-05 funciona como Master y Slave, básicamente es eso, lo cual podría condicionarnos algún desarrollo, pero la realidad es que el HC-06 tiene un valor menor y nos sirve tanto para enviar y recibir (siempre y cuando utilicemos de a uno por vez, por este tema de Maestro y Esclavo).


Osea que en el 06, la comunicacion es bidireccional pero no simultanea, y en el 05, es simultanea?
  Responder
#7
Gran tutorial, a ver si mañana despues de clase puedo ponerme un rato y le meto mano al bluetooth y me creo algun programilla Mola
Ayudanos a crear el mapa de usuarios de Spain Labs!!!
  Responder
#8
Me lo apunto para en un rato libre ponerme a ello, a ver que sale.

Gracias Mola
  Responder
#9
way!! quiero hacerlo pero no tengo módulo bluetooth! Triste
  Responder
#10
dreasic escribió:way!! quiero hacerlo pero no tengo módulo bluetooth! Triste

http://www.ebay.com/itm/Wireless-Serial-6-Pin-Bluetooth-RF-Transceiver-Module-HC-05...
http://www.ebay.com/itm/Wireless-Serial-4-Pin-Bluetooth-RF-Transceiver-Module-HC-06...

:roll:
  Responder
#11
Muy buen tutorial. La parte de app inventor me puede servir de ayuda.

Solo remarcar una cosa. Si alguien pretende usar el HC-06, que tenga en cuenta que los terminales RX y TX trabajan a 3,3V, osea que no pueden enchufarle un Arduino UNO. Tendrán que hacer, al menos en el RX del bluetooth un cambio de tensión, ya sea con un convertidor lógico o con un divisor de tensión.
  Responder
#12
Hola, iba a seguir este fantástico tutorial, pero me ha surgido un problema con el modulo HC-05, el caso es que consigo enviarle comandos desde el puerto serial del arduino, pero cuando desconecto el pin KEY para poder sincronizar con el móvil no se sincroniza, no aparece en la lista de dispositivos ni nada. Ya he probado con varios móviles y no se si es que esta estropeado el modulo o estoy haciendo algo mal, agradezco vuestra ayuda!

Gracias de antemano!
  Responder
#13
KamikaceDixit escribió:Hola, iba a seguir este fantástico tutorial, pero me ha surgido un problema con el modulo HC-05, el caso es que consigo enviarle comandos desde el puerto serial del arduino, pero cuando desconecto el pin KEY para poder sincronizar con el móvil no se sincroniza, no aparece en la lista de dispositivos ni nada. Ya he probado con varios móviles y no se si es que esta estropeado el modulo o estoy haciendo algo mal, agradezco vuestra ayuda!

Gracias de antemano!
Me pasa lo mismo el modulo bluetooth no me aparece en la lista de dispositivos visibles, has averiaguado algo? O lo has solucionado?
Saludos y gracias
  Responder
#14
Muy buen Tuto, lastima no uso Android ni windows Lengua, pero muy bueno gracias, esto ayudará a muchos
  Responder
#15
Buen tuto, yo el app inventor solo lo había visto de re ojo, en clase me machacaban más con el eclipse y el ADT.
"Enseñar es aprender dos veces".
  Responder
#16
Extraordinario tuto.
Una duda: ¿Sería útil esta aplicación para encender 16 led?
  Responder
#17
Hola kisiera saver si hay la posibilidad de hacer una aplicación en app inventos usando botones los cuales encenderán un led mientras se mantenga presionado dicho boton y una ves que uno suelte el botón automáticamente se apaga caro previa configuración en el programa del arduino. en otra palabras que se mande el carácter desde el celular y y deje de mandarlo en el momento k uno deje de pulsar dicho botón en el celular de ante mano GRACIAS
  Responder
#18
Hola a todos,

Recientemente me han regalado un kit de Arduino y ayer empecé a cacharrear con él. El caso es que esta mañana me he puesto con la conexión Bluettoth y Appinventor y en cosa de una hora lo tenía todo en marcha (aunque he tenido un problemilla que me ha retrasado otra hora). Me ha sorprendido lo rápido con lo que se montan las app (siguiendo un tutorial) y la forma en que se conecta con el móvil.

Al estar en la misma wifi el diseñador web y mi móvil, la aplicación se iba actualizando en tiempo real en mi móvil y podía ver los cambios de inmediato sin cables y sin emuladores...una pasada.

He usado el mismo código que aparece al principio del foro (muchas gracias), pero la app en appinventor cambia ligeramente por lo que voy a poner unas imágenes de como me ha quedado a mi. Decir también que además de los botones de encender y apagar el led, he añadido uno más como pulsador.

La app ha quedado así...
[Imagen: qQk9EHY.png]

Una vez diseñada la parte gráfica....
[Imagen: zsRJ0jg.png]

Están los botones de Conectar (que es un ListPicker) y Salir y luego 3 botones más por cada color.

El listPicker (botón conectar) tiene estos bloques..
[Imagen: FjpsgzU.png]

El botón Salir es muy sencillo...
[Imagen: stl7GzJ.png]

Y por último los botones de cada color...

Button3 es el de encender
Button4 es el de apagar
Button5 es el de pulsador
[Imagen: kAWY8LJ.png]
Para operar con el color rojo paso al arduino los valores "1" para encender y "A" para apagar

El resto de botones serían igual que estos pero con estos valores...
Para operar con el color amarillo paso al arduino los valores "2" para encender y "B" para apagar
Para operar con el color verde paso al arduino los valores "3" para encender y "C" para apagar

Como os decía al principio, lo he puesto en marcha muy rápido, luego me ha llevado 1h darme cuenta que tenía los led conectados del revés (es mi primer dia con electrónica  Blush)

La estructura de los botones tiene un bloque condicional IF THEN
  • Si el clientebluetooth está disponible
  • Entonces envía un texto a través de él.
Decir que el hecho de tener un botón de pulsador en la app no influye en el código arduino del principio del post ya que el pulsador actua como dos acciones del mismo botón "cuando está pulsado" y "cuando se suelta".

Un saludo a todos.
  Responder
#19
Muy bueno, aunque informático que se respete programa con eclipse o android studio. Meparto
"Enseñar es aprender dos veces".
  Responder
#20
(27-11-2015, 06:59 PM)Kurama escribió: Muy bueno, aunque informático que se respete programa con eclipse o android studio. Meparto

Para serte sincero, me instalé eclipse dos veces, y Android studio lo tengo instalado, pero aún no me he puesto con esto en serio.
La velocidad con la que haces una aplicación sencilla creo que no es comparable a no ser que tengas experiencia previa. El módulo bluetooth en Android Studio no sé ni por donde empezar. Pero poco a poco, tengo algo en mente y soy cabezón, jajaja
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  APORTE TUTORIAL: Construir un Medidor de CO2 casero con ESP8266 contra la COVID-19 Mariete 0 1,112 30-01-2021, 08:34 AM
Último mensaje: Mariete
  APORTE mp3 catalex y bluetooth hc 06 katxarix 0 873 18-04-2020, 10:20 AM
Último mensaje: katxarix
  CONSULTA AUMENTAR ALCANCE MÓDULO BLUETOOTH AT-09 CON ANTENA Alvaro Braca 3 2,704 14-03-2019, 09:12 AM
Último mensaje: Merenat
  APORTE Control de Persiana por bluetooth kuadri 0 1,467 16-06-2018, 11:33 PM
Último mensaje: kuadri
  Problema con bluetooth y comandos AT sejiozosky 41 17,481 06-05-2018, 11:48 AM
Último mensaje: Iván