Para comunicar Arduino con un Pc, Tablet o Smartphone a través de Bletooth, La opción mas simple es usar un módulo HC-05, HC-06. JDY-30, o JDY-31 Aquí descibiremos el HC-05 y el JDY-31
Se necesita alimentar el módulo HC-05 a 5V con la salida de 5V de Arduino y GND, y la comunicación serie con Arduino se realiza a través de dos cables (Transmisión TX y Recdepción RX) conectados a 2 pines que no sean el 0 y el 1. En teoría el pin RX recibe una señal digital de 3,3V, pero con los 5V de una salida de Arduino funciona bien, en algunos tutoriales se usa un divisor de tensión, pero yo no lo uso y me va funcionando tanto en el HC-05 como en JDY-31.
La velocidad de comunicación por defecto es de 38400 baudios en el HC-05 y de 9600 baudios en el JDY-31.
Es importante que los cables a través de los que se realiza la comunicación serie sean lo más cortos posibles, yo he tenido problemas con cables Dupont de 20cm
NOTA: En algunos clones de Arduino, hay que alimentar el HC-05 desde otra fuente de tensión que no sea el pin 5V de Arduino
Desconectado (idle): Un parpadeo cada medio segundo. Al alimentar el módulo HC-05 vemos que el led rojo , indica que no hay conexión bluetooth
Conectado: Doble parpadeo cada segundo. Indica que está conectado con un dispositivo por bluetooth.
- AT1: Un parpadeo cada medio segundo. Para entrar en este modo hay que empezar en modo desconectado y apretar el pulsador del HC-05 que hay junto al pin ES. Permite el envío de comandos AT a velocidad normal (9600baudios).
- AT2: Un parpadeo cada dos segundos. Para entrar en este modo hay que mantener apretado el pulsador del HC-05 y después conectar la alimantación del módulo HC-05. Admite comandos AT que se usan para configurar el módulo a 38.400 baudios a través del monitor serie de Arduino (ver programa de ejemplo al final de la página)
Comandos AT Básicos:
Comando Uso
------------- ----------------
AT Comprobar comunicación, la respuesta debe ser OK
AT+ADDR Dirección MAC
AT+NAME? Nombre
AT+NAME Para que responda a este comando, en algunos modelos hay que pulsar el pulsador junto al pin VCC
AT+NAME=NEW_NAME Cambiar nombre
AT+PSWD PIn Bluetooth
AT+PSWD=NEW_PSWD Cambiar el Pin
AT+ORGL Resetear a estado de fabrica
AT+UART configuracion UART: baudios, bit de parada, bit de paridad
NOTA: En algunos clones de Arduino, hay que alimentar el JDY-31 desde otra fuente de tensión que no sea el pin 5V de Arduino
Modo comando (idle): Un parpadeo cada segundo. Al alimentar el módulo JDY-31 vemos que el led rojo parpadea, indicando que no hay conexión bluetooth. En este modo el JDY-31 está listo para recibir comandos AT a 9600 bits/s seguidos por CR+LF.
Conectado, emulación serie: El led rojo deja de parpadear. Indica que está conectado con un dispositivo por bluetooth. MUY IMPORTANTE a la hora de programar el envío de datos por Bluetooth (por ejemplo usando app inventor), los datos se quedan en el buffer de salida del JDY-31 hasta que se envía CR+LF.
Comandos AT Básicos:
Comando Uso
------------- ----------------
AT (ESTE COMADO NO FUNCIONA CON ESTE CIRCUITO, NI LO INTENTES!!)
AT+VERSION imprime la versión del firmware
AT+NAME imprime el nombre del dispositivo, por defecto JDY-31-SPP
AT+PIN imprime el pin para vincular el dispositivo por defecto 1234
AT+LADDR imprime la dirección MAC del dispositivo
AT+NAME<NEW_NAME> Cambia el nombre a NEW_NAME, por defecto JDY-31-SPP
AT+PIN<NEW_PIN> Cambia el pin a NEW_PIN, por defecto 1234
Al final de la página se incluyen dos programas de ejemplo que yo uso para configurar los módulos descritos usando comandos AT a través del "serial monitor" de Arduino.
Los comandos de Ubuntu para conectar un módulo bluetooth los he sacado de aquí:
En este enlace se muestra una app para controlar el encendido de tres Leds Usando un smartphone, me he basado en algunas cosas para hacer la mía.
Otro enlace que explica los distintos pines del HC-05 y como usarlos
Sketch para hacer un termómetro bluetooth: enlace
Página que muestra como configurar un puerto serie virtual sobre Bluetooth en nuestro ordenador: enlace
Página con una breve descripción de los módulos JDY-30 y JDY-31: enlace
Vídeo que muestra como configurar y programar el JDY-31: enlace