Objetivos

 

  • Presentar el nuevo estándar de Bluetooth 4.0 o Low Energy. 
  • Conocer un módulo sencillo para ello, el HC-08.
  • Ver como programar el intercambio de mensajes.
  • Presentar las Apps que permiten esta comunicación con Apple IOS y Android
  •  

    Material requerido.

     

    Imagen de Arduino UNO  Arduino Uno o similar.
    Modulo Bluetooth HC-06 Modulo Bluetooth HM-10
    Cables Dupont Macho-Hembra Cables Dupont Macho-Hembra

     

     

    Bluetooth Low Energy BLE

     

    Ya hace algún tiempo que estuvimos probando los módulos Bluetooth V2 con nuestros Arduinos y hay varias sesiones previas dedicadas a este tema y a jugar con unos pequeños módulos como el HC-05 y el HC-06.

    Estos módulos BlueTooth son muy sencillos de manejar y se comportan como receptores simples que nos envían por una puerta serie todo lo que recibe y emiten mediante el BlueTooth todo lo que les enviemos  a dicha puerta serie.

    Vimos también que estos módulos disponían de un modo característico de entrar en modo Comandos AT, con los que podíamos programar con mayor o menor comodidad ciertas características del módulo como la velocidad de la puerta serie y similares.

    Actualmente este tipo de módulos son muy baratos, y sencillos de manejar lo que les convierte en unos componentes ideales para enviar datos a nuestros Arduinos desde cualquiera de los móviles que llevamos en el bolsillo.

    Pero había un problema. Los equipos de Apple no aceptan la conexión con este tipo de módulos porque aparentemente requieren la versión 4.0 del Bluetooth  y rechazan las versiones previas como la 2.0 que eran bastante frecuentes hasta hace relativamente poco.

    En sesiones previas hicimos algunas pruebas para vincular nuestros teléfonos o tabletas Bluetooth 2.0 con Arduino, pero Apple siguiendo su costumbre iba por libre y no había manera de conectar.

    Pero con el tiempo han ido apareciendo módulos como los que conocemos que soportan el protocolo Bluetooth V4.0 o Low Energy al alcance de todos los bolsillos y los fabricantes chinos han empezado a suminístrarlos de forma accesible, tales como los modelos HC-08 y HC-10.

    Como ya hace algún tiempo conseguí uno de estos modulitos HC-08, ha llegado el momento de hacer pruebas con él y ver lo que pasa y comprobar que podemos usar nuestros IPhone e Ipad para conectar con nuestros Arduinos.

     

    Que aporta el Bluetooth 4.0 o Low Energy

     

    ¿Qué es el nuevo Bluetooth 4.0? Pues un nuevo protocolo diseñado pensando en disminuir todo lo posible las necesidades de energía de los dispositivos que lo usan, y de sobre todo de la propia comunicación que tradicionalmente ha sido de consumo insaciable.

    Se le suele llamar también BLE por Bluetooth Low Energy, o simplemente Bluetooth LE. No he conseguido demasiada información en internet sobre los consumos reales que podemos esperar, en primer lugar porque hay muchos factores que pueden modificar ese consumo y en segundo lugar porque no parece haber muchas ganas de mojarse con el tema.

    Así que abundan informaciones del tipo de “Consume mucho menos que las versiones previas” o “XXX ha conseguido un par de años de uso con una batería típica”  y demás tonterías. A pesar de todo, parece que hay consenso en que mejora bastante el consumo previo, pero de datos fiables nada de nada, al menos por ahora, aunque se habla de consumos entre 10 y 20 mA

    Pero en realidad lo que de verdad me interesaba era la posibilidad de usar mi IPhone o Ipad con Arduino sin tener que empeñar un ojo para pagar el modulito BlueTooth y aquí estamos con ello.

    No quiero dejar pasar la ocasión de comentar, que aparentemente además de disminuir el consumo de energía de estos módulos, también ha bajado la distancia a la que se puede hacer una comunicación efectiva con este nuevo protocolo, de los 100m anteriores a la mitad actualmente, aunque no he podido probarlo por mí mismo.

    Tal vez si algún lector que conozca del tema nos puede ilustrar con comentarios al respecto, que serían muy bienvenidos.

     

    El módulo BlueTooth HC-08

     

    Es un pequeño modulo muy al estilo de los que ya conocemos y de patillaje muy similar, que nos convierte la información que llega vía BT a puerta serie y viceversa:

    Imagen frontal

    Imagen posterior

    Este módulo HC-08 se puede utilizar directamente para enviar y recibir mensajes a través del Bluetooth sin más que pinchar sus pines serie Rxd y Txd a los correspondientes de nuestro Arduino y con el programa adecuado no necesitamos más.

    Podemos hacer un pequeño montaje para entrar en modo de comandos AT y probar  la comunicación con el modulo Bluetooth. Para ello basta con arrancarlo mientras mantenemos en HIGH su pin ENABLE. La conexión es completamente similar a la que usamos con el modulo HC_06:

    Esquema protoboard

    Con esto ya podemos empezar a programar el modulo mediante comandos AT:

    salida a pantalla

    No he encontrado demasiados comandos AT para este módulo y probando he ido viendo que acepta un subset de los habituales comandos que vimos con los módulos HC-05 y HC-06

     

    Comando Funcion
    AT Devuelve OK
    AT+NAMEPrometec Establece Prometec como el nombre que publicara en BT
    AT+NAME Devuelve el nombre que publica el modulo en BT
    AT+VERSION Devuelve la versión del firm
    AT+PASSWD1234 Establece 1234 como nueva contraseña de acceso
    AT+PASSWD? Devuelve la contraseña actual del modulo
    AT+BAUD? Devuelve la velocidad de comunicación de la puerta serie
    AT+BAUDn Establece la velocidad de comunicación de la puerta serie, donde n va de 1 a 8 para velocidades de 1200, 2400, 9600, 19200, 83400, 57600 y 115200 respectivamente:

     

    Nota: EL modulo debe ser reseteado para que el cambio de velocidad se establezca

    AT+STATUS Devuelve un resumen de situación

    Seguro que me habré dejado más de un comando disponible, pero estos módulos no están demasiado bien documentados y para complicar más la situación los diferentes fabricantes pueden cargar diferentes juegos de comandos AT dependiendo de sus gustos. Así que tendréis que probar que comandos aceptan o no.

     

    Estableciendo la comunicación con tu móvil


     

    La conexión del módulo es trivial y basta con alimentarlo y conectar la puerta serie:

    Protoboard

    Podemos usar un programa sencillo para establecer la comunicación, en el que simplemente copiamos lo que llega el BT a la puerta serie y viceversa:

    #include <SoftwareSerial.h>
    SoftwareSerial BT1(4,2);      // RX, TX recorder que se cruzan
    
    void setup()
       { Serial.begin(9600);
         Serial.println("Enter AT commands:");
         BT1.begin(9600);
       }
    
    void loop()
       {  if (BT1.available())
              Serial.write(BT1.read());  
    
          if (Serial.available())
             { char c = Serial.read() ;
               Serial.print(c);
               BT1.print(c);
             }
       }

    Ahora vamos a necesitar una aplicación que nos permita enviar mensajes entre nuestro Arduino y digamos un IPhone por ejemplo. Uno podría pensar que algo así no tendría dificultad, pero localizar esta aplicación me ha llevado un par de horas, durante las cuales me he frustrado con todo tipo de aplicaciones inútiles que no hacían más que marear.

    Finalmente he encontrado una que cumple bastante bien con la misión de enviar y recibir menajes de texto entre Arduino y mi IPhone 4S, se llama JBWave y podéis descargarla de la appStore sin problemas.

    • Para que no todo sea fácil y Apple pueda dar por el saco suficientemente, me he encontrado con que esta aplicación corre bien en mi IPhone 4S, pero no en mi Ipad 3. 

    Aquí os dejo un pequeño video ilustrando el proceso de conexión y envió de mensajes en ambas direcciones:

     

    Usando Android con Bluetooth 4.0 LE

     

    Ya habíamos visto cómo usar las versiones previas de Bluetooth con teléfonos Android en sesiones anteriores, pero ya que estamos presentando la conexión con la nueva versión Bluetooth 4.0 de baja energía, o BLE, dejaríamos la sesión un poco coja sin pasar revista al mismo tema con los teléfonos de Google.

    Esto viene causado porque la App que veíamos en la sesión de la HC-05 llamada BT SPP, no reconoce el nuevo formato y por eso debemos presentar otra que realice las mismas funciones.

    Esta nueva App se llama “HMBLE terminal”. Es una aplicación muy similar a la que vimos en su día y a la que he usado para Apple. Podéis usar exactamente el mismo montaje hardware y software de control, y su comportamiento es en todo similar

    En este pequeño video os mostramos el use de la App con el HC-08 para pasar mensajes de texto entre nuestro Arduino y el móvil Android

    Pues eso es todo por hoy, confío en que veáis que es igual de fácil usar el nuevo protocolo con los Iphone que con los Android.

     

    Resumen de la sesión

     

  • Hemos presentado el modulo BlueTooth HC-08.
  • Hemos visto las diferencias con el los modulos que ya conociamos como el HC-05 y HC-06.
  • Hemos visto que Apps usar para transeferir mensajes mediante Android y Apple IOS.
  •