App iOS para conectar con periférico bluetooth 4.0

1
10129

Conectar iOS con emisor de bluetooth 4.0.

0. Índice de
contenidos.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Mac Book Pro 17″ (2,93 Ghz Intel Core 2 Duo, 8 GB DDR3)
  • Sistema Operativo: Mac OS X Mavericks 10.9
  • Xcode, Version 5.0.2
  • Polar H6, como emisor de bluetooth.
  • iPod touch 5, como receptor de bluetooth.

2. Introducción.

Viendo que se empiezan a salir hasta debajo de las piedras dispositivos con Bluetooth 4.0 LE (Low Energy), que pueden emitir durante años en algunos casos, y la amplia baraja de opciones que se podrían hacer con esta tecnología, vamos a ver cómo crear una app para iOS y recoger los datos de este tipo de dispositivos.

La aplicación mostrará por pantalla en el iPod los datos que reciba del dispositivo de monitorización por bluetooth, en adelante PolarH6 (por el modelo del dispositivo).

Primero vamos a ver cómo funcionan este tipo de dispositivos, y lo más básico es explicar los roles que tienen. En este caso, el iPod hará el rol de Central, que será el que pida datos al periférico (PolarH6). La estructura es como un servicio cliente servidor, en la que el iPod es el cliente (pide datos) y PolarH6 es el servidor (envía datos).

Bien, ahora que sabemos los roles, tenemos que ver cómo se transmiten los datos. Primero se mandan lo que se conoce como paquetes publicitarios, que se usan para encontrar el dispositivo (u otros usos como los iBeacons). Éstos paquetes contienen poca información, por lo que para nuestra aplicación nos hará falta conectarnos con el dispositivo.

Para conectarnos, PolarH6 tiene una serie de servicios, y cada servicio tiene una o varias características. Por ejemplo, el servicio de monitorización tiene dos características, los latidos por minuto (bpm) y la altura del dispositivo en el cuerpo.

Adentrándonos más en la materia, es pasar lo que hemos explicado a código, y para eso, el framework CoreBluetooth nos proporciona tres clases que encajan con el periférico (CBPeripheral), con los servicios (CBService) y con las características (CBCharacteristic). Estos objetos serán necesarios en nuestra app, ya explicaremos cómo los incluimos.

3. Al lío.

Bueno vamos a empezar por crear un proyecto nuevo en Xcode. Para ello vamos a File –> New –> Project… y elejimos Single View Aplication.

Damos a siguiente e introducimos los datos que nos faltan, por ejemplo así:

Bien, ahora vamos a configurar ViewController.h, agregamos la librería CoreBluetooth y los protocolos que vamos a necesitar.

Lo siguiente es crearnos unas constantes con la identificación de los servicios que vamos a monitorizar, en este caso serán el de la frecuencia cardíaca y el nivel de batería.

Ahora vamos a crear las constantes para las características que nos interesan, que tendrán el UUID por convención, sacados de esta página.

Ahora agregamos las propiedades del periférico y la central que usaremos luego.

Ahora vamos a poner métodos que nos harán falta para la interfaz y el manejo de los objetos, como sus callbacks. Se explica en el código su propósito.

Ya tenemos todo lo que necesitamos en nuestro .h, ahora vamos a implementar el .m (ViewController.m).

Bien, abrimos el fichero y lo primero en implementar son los métodos relativos al bluetooth, por lo que ponemos lo siguiente (explicado en el propio código):

Ahora vamos a implementar los métodos callback del protocolo CBPeripheralDelegate

Creamos los métodos que extraen la información que nos interesa.

Y ahora nos queda el último paso de código que es modificar el método viewDidLoad

Bien, ahora sólo nos queda arreglar la vista, para ello nos ayudaremos del storyboard. Abrimos el fichero Main.storyboard y tenemos que crear un UILabel donde se imprimirá la frecuencia cardíaca y un UITextView donde pondremos la batería que le queda.

Después de crearlos tenemos que conectarlos con las propiedades que hemos definido en ViewController.h (heartRateBPM y dataTextView).

Bien, ahora ya tenemos todo preparado para compilar y ejecutar. Si todo va bien nos debe de salir en la pantalla las pulsaciones y el nivel de la batería en los labels que hemos creado.

Referencias.

Éste tutorial está sacado gran parte de esta página en la que hay muchos tutoriales sobre iOS e investigación a partir del tutorial.

Además de repasar principios básicos y referencias de bluetooth de esta página.

Para descargar el proyecto pulsar aquí.

Conclusiones.

Hemos visto cómo es muy fácil crear una aplicación para iOS en pocos pasos y con un poco más de investigación se pueden llegar a crear grandes proyectos.

Para cualquier duda o aclaración, en los comentarios.

Un saludo.

1 Comentario

  1. Estimado, he comprado un smartwacht A9, lamentablement no lo puedo conectar con mi iphone 4.
    Me podrias ayudar

    Hay un app mediatekdevice, pero no reconoce reloj
    Gracias

Dejar respuesta

Please enter your comment!
Please enter your name here