Archivo de la categoría: Bluetooth

Conectividad IoT

Una de las principales ventajas de Arduino es que podemos dotarlo de comunicación de una forma sencilla añadiendo un shield o una breakout board y dispondremos de casi cualquier tipo de comunicación tanto de acceso a Internet como de para comunicar arduinos entre sí o con otros dispositivos de una red privada.

Articulo interesante redes: https://www.artik.io/blog/2015/iot-101-networks

Articulo interesante conectividad: https://www.artik.io/blog/2015/iot-101-connectivity

Leer este white paper: http://www.ti.com/lit/wp/swry017/swry017.pdf

Guía de conectividad de IoT:  https://www.ibm.com/developerworks/library/iot-lp101-connectivity-network-protocols/index.html

Interesante artículo sobre redes para IoT: https://www.redeweb.com/articulos/software/11-redes-inalambricas-fundamentales-para-internet-de-las-cosas/

IOT primeras redes IoT en Holanda y Corea: http://blogthinkbig.com/nace-la-primera-y-la-segunda-red-para-internet-de-las-cosas/

Muy buena explicación de comunicaciones: https://learn.adafruit.com/alltheiot-transports/introduction

Redes Inalámbricas IoT

ZigBee

ZigBee es una tecnología inalámbrica más centrada en aplicaciones domóticas e industriales. Los perfiles ZigBee PRO y ZigBee Remote Control (RF4CE) se basan en el protocolo IEEE 802.15.4, una tecnología de red inalámbrica que opera a 2,4GHz en aplicaciones que requieren comunicaciones con baja tasa de envío de datos dentro de áreas delimitadas con un alcance de 100 metros, como viviendas o edificios.

IEEE 802.15.4 es un estándar que define el nivel físico y el control de acceso al medio de redes inalámbricas de área personal con tasas bajas de transmisión de datos (low-rate wireless personal area network, LR-WPAN). El grupo de trabajo IEEE 802.15 es el responsable de su desarrollo. También es la base sobre la que se define la especificación de ZigBee, cuyo propósito es ofrecer una solución completa para este tipo de redes construyendo los niveles superiores de la pila de protocolos que el estándar no cubre.

ZigBee/RF4CE tiene algunas ventajas significativas como el bajo consumo en sistemas complejos, seguridad superior, robustez, alta escalabilidad y capacidad para soportar un gran número de nodos. Así, es una tecnología bien posicionada para marcar el camino del control wireless y las redes de sensores en aplicaciones IoT y M2M.

  • Estándar: ZigBee 3.0 basado en IEEE 802.15.4
  • Frecuencia: 2.4GHz
  • Alcance: 10-100m
  • Velocidad de transferencia: 250kbps

XBee

es el nombre comercial del Digi de una familia de módulos de comunicación por radio y están basados en el estándar zigbee, pero digi tiene muchos Xbee y algunos son zigbee estándar y otros son propietarios o modificaciones del estándar. Existen muchos módulos Xbee basados en el estándar IEEE 802.15.4

Más información: https://aprendiendoarduino.wordpress.com/2016/11/16/zigbeexbee/

WiFi

Normalmente la conectividad WiFi es la opción obvia elegida por los desarrolladores dada la omnipresencia de WiFi en entornos domésticos y comerciales: existe en la actualidad una extensa infraestructura ya instalada que transfiere datos con rapidez y permite manejar grandes cantidades de datos. Actualmente, el standard WiFi más habitual utilizado en los hogares y en muchas empresas es el 802.11n, ofreciendo un rendimiento significativo en un rango de cientos de megabits por segundo, muy adecuado para la transferencia de archivos, pero que consume demasiada potencia para desarrollar aplicaciones IoT.

  • Estándar: Basado en 802.11n
  • Frecuencia: 2,4GHz y 5GHz
  • Alcance: Aproximadamente 50m
  • Velocidad de transferencia: hasta 600 Mbps, pero lo habitual es 150-200Mbps, en función del canal de frecuencia utilizado y del número de antenas (el standard 802.11-ac ofrece desde 500Mbps hasta 1Gbps)

Bluetooth

Bluetooth es una de las tecnologías de transmisión de datos de corto alcance más establecidas, muy importante en el ámbito de la electrónica de consumo. Las expectativas apuntan a que será clave para desarrollar dispositivos wearable, ya que permitirá el establecimiento de conexiones IoT, probablemente a través de un smartphone.

El nuevo Bluetooth de baja energía, también conocido como Bluetooth LE o Bluetooth Smart, es otro protocolo importante para desarrollar aplicaciones IoT. Se caracteriza por ofrecer un alcance similar al de la tecnología Bluetooth normal pero con un consumo de energía significativamente reducido.

Es importante destacar que la versión 4.2, gracias a la incorporación del Internet Protocol Support Profile, permite conectarse directamente a internet mediante IPv6/6LoWPAN. Esto facilita el utilizar la infraestructura IP existente para gestionar dispositivos Bluetooth Smart basado en “edge computing”.

  • Estándar: Bluetooth 4.2
  • Frecuencia: 2,4GHz (ISM)
  • Alcance: 50-150m (Smart/LE)
  • Velocidad de transferencia: 1Mbps (Smart/LE)

Thread

En la actualidad, el protocolo de red más innovador basado en IPv6 es Thread. Diseñado para domótica, está basado en 6LowPAN, y del mismo modo que aquel, no es un protocolo de aplicaciones IoT como Bluetooth o ZigBee. Se diseñó como un complemento WiFi, puesto que aunque la tecnología Wi-Fi funciona muy bien en dispositivos de consumo, tiene limitaciones al utilizar en configuraciones de domótica.

Lanzado a mediados del 2014 por Thread Group, este protocolo sin canon de uso se basa en varios protocolos como IEEE 802.15.4, IPv6 y 6LoWPAN.

Es una solución resistente basada en IP para aplicaciones IoT.

Diseñado para trabajar sobre chips IEEE 802.15.4 ya existentes de fabricantes como Freescale y Silicon Labs, Thread es compatible con redes de topología de malla al utilizar radio transceptores IEEE802.15.4, siendo capaz de manejar hasta 250 nodos con altos niveles de autenticación y cifrado.

Una actualización de software relativamente sencilla permite a los usuarios utilizar thread en dispositivos ya compatibles con IEEE 802.15.4.

  • Estándar: Thread, basado en IEEE802.15.4 y 6LowPAN
  • Frecuencia: 2,4GHz (ISM)
  • Alcance: N/A
  • Velocidad de transferencia: N/A

Red de telefonía móvil

Cualquier aplicación IoT que necesite funcionar en grandes áreas puede beneficiarse de las ventajas de la comunicación móvil GSM/3G/4G.

La red de telefonía móvil es capaz de enviar grandes cantidades de datos, especialmente a través de 4G, aunque el consumo de energía y el coste económico de la conexión podrían ser demasiado altos para muchas aplicaciones.

Sin embargo, puede ser ideal para proyectos que integren sensores y que no requieran un ancho de banda muy grande para enviar datos por Internet.

  • Estándares: GSM/GPRS/EDGE (2G), UMTS/HSPA (3G), LTE (4G)
  • Frecuencias: 900 / 1800 / 1900 / 2100
  • Alcance: hasta 35km para GSM; hasta 200km para HSPA
  • Velocidad de transferencia (descarga habitual): 35-170kps (GPRS), 120-384kbps (EDGE), 384Kbps-2Mbps (UMTS), 600kbps-10Mbps (HSPA), 3-10Mbps (LTE)

Neul

El concepto de este sistema es similar al de Sigfox y funciona en la banda sub-1GHz. Neul aprovecha pequeños fragmentos de la “banda blanca” de las estaciones de TV para ofrecer alta escabilidad, amplia cobertura y bajo costes.

Este sistema se basa en el chip Iceni, que se comunica utilizando los “banda blanca” de la radio para acceder al espectro UHF de alta calidad. Ya está disponible debido a la transición analógica a la televisión digital.

La tecnología de comunicaciones que utiliza se llama Weightless, que es una nueva tecnología de red inalámbrica ampliada diseñada para aplicaciones IoT que compite contra las soluciones GPRS, 3G, CDMA y LTE WAN.

La velocidad de transferencia de datos puede ir de unos bits por segundo hasta 100 Mbps en el mismo enlace. Desde el punto de vista del consumo, los dispositivos consumen tan solo de 20 a 30 mA, es decir, de 10 a 15 años de autonomía con 2 pilas AA.

Para poder emplear esta tecnología hay que tener en cuenta la decisión que se haya tomado acerca del uso de las frecuencias de la banda blanda.

  • Estándar: Neul
  • Frecuencia: 900MHz (ISM), 458MHz (UK), 470-790MHz (espacios en blanco)
  • Alcance: 10km
  • Velocidad de transferencia: Desde unos pocos bps hasta 100kbps

6LoWPAN

6LowPAN (IPv6 Low-power wireless Personal Area Network) es una tecnología inalámbrica basada en IP muy importante. En vez de tratarse de una tecnología de protocolos de aplicaciones IoT, como Bluetooth o ZigBee, 6LowPAN es un protocolo de red que permite mecanismos de encapsulado y compresión de cabeceras. Esta tecnología ofrece libertad de banda de frecuencia y capa física, por lo que se puede utilizar a través de múltiples plataformas de comunicaciones, como Ethernet, Wi-Fi, 802.15.4 y sub-1GHz ISM.

Una característica clave es la introducción de la pila IPv6 (protocolo de internet versión 6), una innovación clave en el avance de IoT en los últimos años, ya que con IPv6 se ofrecen aproximadamente 5 x 10E28 direcciones IP a nivel global, permitiendo que cualquier objeto o dispositivo embebido tenga su propia dirección IP única para conectarse a Internet.

Ha sido diseñada especialmente para el hogar y la automatización de edificios proporcionando un mecanismo de transporte básico para producir sistemas de control complejos e interconexión de dispositivos de un modo económico a través de una red inalámbrica de bajo consumo.

Diseñada para enviar paquetes IPv6 sobre redes IEEE 802.15.4, para luego implementar protocolos superiores como TCP, UDP, HTTP, COAP, MQTT y websockets, 6LowPAN es una red de topología en malla robusta, escalable y auto-regenerativa. Los routers pueden encaminar datos enviados a otros dispositivos, mientras que los hosts permanecen inactivos mucho tiempo.

  • Estándar: RFC6282
  • Frecuencia: adaptable a múltiples capas físicas como Bluetooth Smart (2.4GHz), ZigBee o comunicación RF de bajo consumo (sub-1GHz)
  • Alcance: N/A
  • Velocidad de transferencia: N/A

LoRaWAN

Es una especificación de una red LPWAN (Low Power Wide Area Network) propuesta por la LoRa Alliance y pensada para comunicar dispositivos de bajo coste y bajo consumo alimentados por baterías. La especificación cubre las capas PHY y MAC de la red, dejando a las aplicaciones el resto de capas. En la banda ISM de 868MHz (915 MHz en otras regiones), con un bitrate de hasta decenas de kbps (de 0.3 kbps hasta  50 kbps).

Enlaces:

Esta tecnología se parece en algunos aspectos a Sigfox y a Neul. LoRaWAN está diseñada para implementar redes de área amplia (WAN) con características específicas para soportar comunicaciones móviles, bidireccionales, económicas y seguras para aplicaciones de IoT, M2M, ciudades inteligentes y aplicaciones industriales.

Optimizada para bajo consumo de energía y para ofrecer amplias redes con millones y millones de dispositivos, sus velocidades de transferencia de datos van desde 0,3 kbps hasta 50 kbps.

  • Estándar: LoRaWAN
  • Frecuencia: Varias
  • Alcance: 2-5km (entorno urbano), 15km (entorno rural)
  • Velocidad de transferencia: 0,3-50 kbps.

Z-Wave

Z-Wave es una tecnología RF de bajo consumo diseñada inicialmente para productos de domótica como controladores de iluminación y sensores. Optimizado para la comunicación fiable de baja latencia de pequeños paquetes de datos, alcanza velocidades de datos de hasta 100kbit/s, opera en la banda de sub-1 GHz y es robusta frente a interferencias de Wi-Fi y otras tecnologías inalámbricas en el rango 2,4 GHz como Bluetooth o ZigBee. Es totalmente compatible con redes de topología de malla, no necesita un nodo coordinador y es muy escalable, permitiendo controlar hasta 232 dispositivos.

Z-Wave utiliza un protocolo más simple que otras tecnologías lo que permite una mayor rapidez en el desarrollo, pero el único fabricante de chips compatibles es la empresa Sigma Design, en comparación con la multitud de empresas que ofrecen productos de otras tecnologías inalámbricas como ZigBee o Bluetooth.

  • Estándar: Z-Wave Alliance ZAD12837 / ITU-T G.9959
  • Frecuencia: 900MHz (Banda ISM)
  • Alcance: 30m
  • Velocidad de transferencia: 9,6/40/100kbit/s

NFC

NFC (Near Field Communication) es una tecnología que permite dos vías simultáneas de interacción segura entre dispositivos electrónicos, siendo especialmente adecuada para smartphones, permitiendo a los consumidores realizar transacciones de pago, acceder al contenido digital y conectar dispositivos electrónicos, todo ellos sin contacto. Esencialmente, amplía la capacidad de la tecnología contacless de las tarjetas inteligentes permitiendo conexiones punto a punto y modos de funcionamiento activos y pasivos.

  • Estándar: ISO/IEC 18000-3
  • Frecuencia: 13.56MHz (ISM)
  • Alcance: 10cm
  • Velocidad de transf.: 100–420kbps

nRF24

Este dispositivo NRF2401, integra en un único chip, toda la electrónica y bloques funcionales precisos, para establecer comunicaciones RF (Radio Frecuencia) entre dos o más puntos a diferentes velocidades, (Hasta 2  Mb/seg) con corrección de errores y protocolo de reenvío cuando es necesario, sin intervención del control externo, lo que nos permite aislarnos de todo el trabajo sucio y complicado relacionado con la transmisión física.

Información de producto: http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01

Sigfox

Es una solución de conectividad celular mundial para el Internet of Things pensada para comunicaciones de baja velocidad que permite reducir los precios y el consumo de energía para los dispositivos conectados. La solución de conectividad SIGFOX se basa en una infraestructura de antenas y de estaciones de base totalmente independientes de las redes existentes.

En la red SIGFOX se transmiten mensajes de 12 bytes, pudiendo enviar 140 mensajes al día.

Sigfox trabaja con fabricantes como Texas Instruments, Atmel, Silicon Labs y otros para poder ofrecer distintos tipos de SOC, transceptores y componentes de conexión a su red. En el caso de smartphones y tablets, actualmente no son compatibles con esta red, pero, al no tener licencia de uso, su inclusión sería realmente económica y sencilla.

Es una alternativa de amplio alcance es Sigfox, que en términos de alcance está entre Wi-Fi y la comunicación móvil. Utiliza bandas ISM, que se pueden utilizar sin necesidad de adquirir licencias.

Sigfox responde a las necesidades de muchas aplicaciones M2M que funcionan con una batería pequeña y solo requieren niveles menores de transferencia de datos, allí donde WiFi se queda demasiado corto y la comunicación móvil es muy cara y consume demasiada energía.

Sigfox utiliza una tecnología llamada Ultra Narrow Band (UNB) diseñada para funcionar con bajas velocidades de transferencias de 10 a 1.000 bits por segundo.

Solo consume 50 microvatios (la comunicación móvil consume 5.000 microvatios) además de poder mantenerse en stand-by 20 años con una batería 2.5Ah (0,2 años para comunicaciones móviles).

Esta tecnología es robusta, energéticamente eficiente y funciona como una red escalable que puede comunicarse con millones de dispositivos móviles a lo largo de muchos kilómetros cuadrados. Así pues, es adecuada para aplicaciones M2M como: contadores inteligentes, monitores médicos, dispositivos de seguridad, alumbrado público y sensores ambientales.

El sistema Sigfox utiliza los transceptores inalámbricos que funcionan en la banda sub-1GHz ofreciendo un rendimiento excepcional, mayor alcance y un consumo mínimo.

  • Estándar: Sigfox
  • Frecuencia: 900MHz
  • Alcance: 30-50km (ambientes rurales), 3-10km (ambientes urbanos)
  • Velocidad de transferencia: 10-1000bps

Más información: https://www.rs-online.com/designspark/eleven-internet-of-things-iot-protocols-you-need-to-know-about

Anuncios

Comunicaciones IoT

Esta conferencia sobre IoT con Arduino fue expuesta el 1 de abril de 2017 con motivo del Arduino Day. Puedes ver el video de la conferencia completa en http://www.innovarioja.tv/index.php/video/ver/1661


Una de las principales ventajas de Arduino es que podemos dotarlo de comunicación de una forma sencilla añadiendo un shield o una breakout board y dispondremos de casi cualquier tipo de comunicación tanto de acceso a Internet como para comunicar arduinos entre sí o con otros dispositivos en una red privada.

Conectividad, tecnologías para conectar el HW con Internet o una red

  • Ethernet
  • WiFi
  • Buses de campo industriales (Modbus, RS485, etc…)
  • Zigbee/XBee
  • LoWaRan, LPWAN, LoWPAN
  • Sigfox (se transmiten mensajes de 12 bytes, pudiendo enviar 140 mensajes al día)

Ultra Narrow Band:

  • Bluetooth/wifi/NFC/ANT+ y los beacons
  • nRF24L01 is a highly integrated, ultra low power (ULP) 2Mbps RF transceiver IC for the 2.4GHz ISM (Industrial, Scientific and Medical) band.
  • NB-IoT: es la solución propuesta por los fabricante de equipamiento LTE para dar cobertura a IoT desde la redes celulares ya existentes.
  • Satélite
  • LTE/3G
  • IEEE 802.11ah la wifi sub 1GHz

Comunicaciones Arduino

Una de las principales ventajas de Arduino es que podemos dotarlo de comunicación de una forma sencilla añadiendo un shield o una breakout board y dispondremos de casi cualquier tipo de comunicación tanto de acceso a Internet como de para comunicar arduinos entre sí o con otros dispositivos de una red privada.

Ethernet: la forma más clásica de comunicar arduino mediante el shield de ethernet. https://www.arduino.cc/en/Main/ArduinoEthernetShield

Wifi: Hay múltiples formas de conectar Arduino a internet mediante wifi:

Bluetooth: https://aprendiendoarduino.wordpress.com/2016/11/13/bluetooth-en-arduino/

Zigbee/XBee: IEEE 802.15.4 es un estándar que define el nivel físico y el control de acceso al medio de redes inalámbricas de área personal con tasas bajas de transmisión de datos (low-rate wireless personal area network, LR-WPAN). El grupo de trabajo IEEE 802.15 es el responsable de su desarrollo. También es la base sobre la que se define la especificación de ZigBee, cuyo propósito es ofrecer una solución completa para este tipo de redes construyendo los niveles superiores de la pila de protocolos que el estándar no cubre.

XBee es el nombre comercial del Digi de una familia de módulos de comunicación por radio y están basados en el estándar zigbee, pero digi tiene muchos Xbee y algunos son zigbee estándar y otros son propietarios o modificaciones del estándar. Existen muchos módulos Xbee basados en el estándar IEEE 802.15.4

Más información: https://aprendiendoarduino.wordpress.com/2016/11/16/zigbeexbee/

LoRaWAN: es una especificación de una red LPWAN (Low Power Wide Area Network) propuesta por la LoRa Alliance y pensada para comunicar dispositivos de bajo coste y bajo consumo alimentados por baterías. La especificación cubre las capas PHY y MAC de la red, dejando a las aplicaciones el resto de capas. En la banda ISM de 868MHz (915 MHz en otras regiones), con un bitrate de hasta decenas de kbps (de 0.3 kbps hasta  50 kbps).

nRF24: Este dispositivo NRF2401, integra en un único chip, toda la electrónica y bloques funcionales precisos, para establecer comunicaciones RF (Radio Frecuencia) entre dos o más puntos a diferentes velocidades, (Hasta 2  Mb/seg) con corrección de errores y protocolo de reenvío cuando es necesario, sin intervención del control externo, lo que nos permite aislarnos de todo el trabajo sucio y complicado relacionado con la transmisión física.

Información de producto: http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01

Sigfox: es una solución de conectividad celular mundial para el Internet of Things pensada para comunicaciones de baja velocidad que permite reducir los precios y el consumo de energía para los dispositivos conectados. La solución de conectividad SIGFOX se basa en una infraestructura de antenas y de estaciones de base totalmente independientes de las redes existentes.

En la red SIGFOX se transmiten mensajes de 12 bytes, pudiendo enviar 140 mensajes al día.

Sigfox trabaja con fabricantes como Texas Instruments, Atmel, Silicon Labs y otros para poder ofrecer distintos tipos de SOC, transceptores y componentes de conexión a su red. En el caso de smartphones y tablets, actualmente no son compatibles con esta red, pero, al no tener licencia de uso, su inclusión sería realmente económica y sencilla.

Bluetooth en Arduino

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:

  • Facilitar las comunicaciones entre equipos móviles.
  • Eliminar los cables y conectores entre estos.
  • Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.

Se denomina Bluetooth al protocolo de comunicaciones diseñado especialmente para dispositivos de bajo consumo, que requieren corto alcance de emisión y basados en transceptores de bajo costo.

Los dispositivos que incorporan este protocolo pueden comunicarse entre sí cuando se encuentran dentro de su alcance. Las comunicaciones se realizan por radiofrecuencia de forma que los dispositivos no tienen que estar alineados y pueden incluso estar en habitaciones separadas si la potencia de transmisión es suficiente. Estos dispositivos se clasifican como “Clase 1”, “Clase 2” o “Clase 3” en referencia a su potencia de transmisión.

Los dispositivos con Bluetooth también pueden clasificarse según su capacidad de canal:

Versión Ancho de banda
Versión 1.2 1 Mbit/s
Versión 2.0 + EDR 3 Mbit/s
Versión 3.0 + HS 24 Mbit/s
Versión 4.0 32 Mbit/s

La especificación de Bluetooth define un canal de comunicación a un máximo 720 kbit/s (1 Mbit/s de capacidad bruta) con rango óptimo de 10 m (opcionalmente 100 m con repetidores). Opera en la frecuencia de radio de 2,4 a 2,48 GHz con amplio espectro y saltos de frecuencia con posibilidad de transmitir en Full Duplex con un máximo de 1600 saltos por segundo. Los saltos de frecuencia se dan entre un total de 79 frecuencias con intervalos de 1 MHz; esto permite dar seguridad y robustez.

Tanto Bluetooth clásico como Bluetooth de baja energía aplican la característica de salto de frecuencia adaptativa (AFH – Adaptive Frequency Hopping) que detecta interferencias de. Por ejemplo, un dispositivo WLAN 802.11 b, g, n que transmite cercano, si se detecta tal interferencia, el canal se coloca automáticamente en la lista negra. Con el fin de manejar la interferencia temporal, un esquema implementado vuelve a intentar los canales de la lista negra y si la interferencia ha cesado el canal se puede utilizar. AFH impide que Bluetooth interfiera con otras tecnologías inalámbricas cercanas.

El hardware que compone el dispositivo Bluetooth está compuesto por dos partes:

  • un dispositivo de radio, encargado de modular y transmitir la señal.
  • un controlador digital, compuesto por una CPU, un procesador de señales digitales (DSP – Digital Signal Processor) llamado Link Controller (o controlador de Enlace) y de las interfaces con el dispositivo anfitrión.

El LC o Link Controller se encarga del procesamiento de la banda base y del manejo de los protocolos ARQ y FEC de la capa física; además, se encarga de las funciones de transferencia tanto asíncrona como síncrona, la codificación de audio y el cifrado de datos.

Bluetooth de baja energía, también denominada como Bluetooth LE, Bluetooth ULP (Ultra Low Power) y Bluetooth Smart, es una nueva tecnología digital de radio (inalámbrica) interoperable para pequeños dispositivos desarrollada por Bluetooth.

Los dispositivos BlueTooth pueden actuar como Masters o como Slaves. La diferencia es que un BlueTooth Slave solo puede conectarse a un master y a nadie más, en cambio un master BlueTooth, puede conectarse a varios Slaves o permitir que ellos se conecten y recibir y solicitar información de todos ellos, arbitrando las transferencias de información (Hasta un máximo de 7 Slaves).

Cada uno de los dispositivos que se identifican vía BlueTooth presentan una dirección única de 48 bits y además un nombre de dispositivo que nos sirva para identificarlo cómodamente a los humanos. Por eso cuando configuras tu móvil puedes especificar un nombre propio que será el que mostrarás a los demás cuando busquen tu teléfono en la inmediaciones.

La dirección propia también se puede identificar pero lógicamente, es un poco menos cómoda y tiene menos utilidad. Tampoco es raro establecer un protocolo IP sobre transporte BlueTooth, con lo que además de su identificación interna BlueTooth (Equivalente al MAC Ethernet) dispondrá de una dirección IP para conectarse a Internet. Por eso puedes conectarte vía Bluetooth a tu PC, por ejemplo, y a través de él conectarte a internet.

Así pues un nodo BlueTooth puede ser Master o Slave y dispone de una dirección única, así como de un nombre para identificarse y muy habitualmente también incluye un PIN de conexión o número de identificación que debe teclearse para ganar acceso al mismo.

Como el BlueTooth lo desarrolló Nokia para conectar teléfonos móviles, a otros dispositivos como auriculares, micrófonos o conexiones al audio del coche, existe un procedimiento definido que se llama Pairing (o emparejamiento) que vincula a dos dispositivos Bluetooth.

Cuando vinculas dos dispositivos BT, se inicia un proceso en el que ellos se identifican por nombre y dirección interna y se solicitan la clave PIN para autorizar la conexión.

Si el emparejamiento se realiza con éxito, ambos nodos suelen guardar la identificación del otro y cuando se encuentran cerca se vuelven a vincular sin necesidad de intervención manual. (Aunque para que tu BlueTooth pueda enviar o recibir música, debe aceptar otra norma posterior llamada Advanced Audio Distribution Profile (A2DP) y que en caso de ser algún sistema antiguo te impedirá la reproducción.)

Para manejar los módulos Bluetooth usamos comandos Hayes o AT: https://es.wikipedia.org/wiki/Conjunto_de_comandos_Hayes

Comandos AT básicos

  • AT+VERSION, versión del Firmware
  • AT+NAMEXXX, Programa el nombre que queremos presentar cuando alguien nos busque
  • AT+BAUDX, Fija la velocidad de comunicación entre el modulo y la consola según a la siguiente tabla:
    • 1 configura     1200bps
    • 2 configura     2400bps
    • 3 configura     4800bps
    • 4 configura     9600bps (Default)
    • 5 configura     19200bps
    • 6 configura     38400bps
    • 7 configura     57600bps
    • 8 configura     115200bps
  • AT+PINXXXX, configura el número de identificación personal, que se requerirá para establecer la vinculación
  • AT+ROLE Nos informa de si está configurado como Maestro 1, o como esclavo 0.
    • AT+ROLE1  Configura el modulo como Master.
    • AT+ROLE0  Configura el modulo como Slave.

Protocolo base de Bluetooth 802.15: https://es.wikipedia.org/wiki/IEEE_802.15

Los módulos HC-05 y HC-06 son Bluetooth V2. 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 suministrarlos de forma accesible, tales como los modelos HC-08 y HC-10.

El nuevo Bluetooth 4.0 es 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. Mejora bastante el consumo previo, pero la distancia también disminuye.

BLE: http://www.atmel.com/products/wireless/bluetooth/default.aspx

Un poco de teoría de bluetooth:

Más información:

Bluetooth con Arduino

Para dotar de comunicación bluetooth con Arduino podemos hacerlo de varia formas:

Los módulo más frecuentes en el mercado son los módulos HC-06 y HC-05 que son muy económicos y están disponibles independientes o en modo SHIELD y para zocalo XBEE.

Manual del módulo: https://core-electronics.com.au/attachments/guides/Product-User-Guide-JY-MCU-Bluetooth-UART-R1-0.pdf

Como el módulo BlueTooth es básicamente un nodo BT conectado a un interface serie, podríamos en principio conectar los pines RX y Tx a los equivalentes de Arduino en los pines 0 y 1 digitales, sin más que cruzarlos (BT Tx  a Arduino Rx y BT Rx a Aduano Tx) y de hecho muchos ejemplos en Internet utilizan este esquema y se comunican con el BT mediante las familiares instrucciones de Serial.print ().

Sin embargo, puesto que los pines 0 y 1 se utilizan en la comunicación serie de Arduino con el PC a través del USB y por tanto, si los usamos para comunicar con el modulo BT, perderíamos la conexión con el PC, es mejor usar otros pines.

Para ello tenemos que importar una librería que habilite la comunicación serie con otros pines como es la librería SoftwareSerial.

NOTA el módulo HC-06, a diferencia del HC-05, no espera un terminador de línea como \n, si no que salta por tiempo y debemos tenerlo en cuenta a la hora de hacer el programa de conexión con Arduino.

Un ejemplo de cómo convertir un coche RC en bluetooth:

Ejercicios Bluetooth

El módulo que vamos a usar para las prácticas es el HC-05 que tiene 6 patillas.

El módulo HC-05, que puede configurarse tanto como Master que como Slave, y que además dispone de bastante más parámetros de configuración y capacidades de interrogación.

Mientras que el HC-06 entra en modo de programación en cuanto lo enciendes y mientras no haya nadie conectado por Bluetooth, el HC-05 es ligeramente más complicado de colocar en modo comandos y requiere una cierta manera de arrancado, concretamente requiere que el pin KEY, (que no estaba conectado el caso del HC-06) esté en HIGH cuando encendemos el módulo.

Conexión a Arduino

Como el modulo HC-05 funciona a 3,3 V hay bastante controversia en internet respecto a  si debemos o no, poner divisores de tensión para acceder a los pines del módulo con Arduino. Pero por las pruebas hechas y los tutoriales en principio no es necesario usar un divisor de tensión y  los pines son tolerantes a 5V, pero hacerlo bajo vuestra responsabilidad.

Fijaros que al hacer esta conexión, el LED del módulo HC-05, parpadea continuamente. Esto indica que no está pareado o vinculado. Cuando conectes algo al módulo, esta luz se quedará fija y es la forma de saber si hay conexión o no.

También usaremos un terminal bluetooth en nuestro móvil como:

Para esta práctica usaremos esta configuración:

En primer lugar, para que el HC-05 entre en modo comandos AT, requiere que cuando se enciende el módulo, el pin KEY este HIGH. Por eso hemos conectado la tensión Vcc del módulo BlueTooth al pin 8 de nuestro Arduino.

NOTA: El módulo  que vamos a usar tiene un botón, este botón es el que debemos pulsar para poner el módulo en modo configuración (comandos AT). También para usar algunos de los comandos importantes como AT+NAME, es necesario pulsar el botón al ejecutar el comando y que guarde los cambio.

El consumo del módulo es mínimo y nuestro Arduino es capaz de alimentarlo sin problemas, por eso el módulo se encenderá cuando pongamos HIGH en el pin 8. Esto nos permitirá poner en HIGH el pin digital 9, al iniciar nuestro programa y después levantar el pin 9, de este modo cuando arranque entrará sin más en el modo de comandos AT.

El resto de los pines se conectan de forma que Txd y Rxd se deben conectar cruzados con los pines de comunicación de Arduino, que usaremos mediante la librería software Serial. El pin State refleja, la situación en la que se encuentra el módulo y por ahora no vamos a utilizarlo.

Con este procedimiento garantizamos que el modulo HC-05 entra solo en modo AT comandos, y que nuestra consola nos va a servir para programarlo.

Para mandar comandos AT usaremos este sketch:

#include <SoftwareSerial.h>
SoftwareSerial BT1(10, 11); // RX | TX
void setup()
  { pinMode(8, OUTPUT);        // Al poner en HIGH forzaremos el modo AT
    pinMode(9, OUTPUT);        // cuando se alimente de aqui
    digitalWrite(9, HIGH);
    delay (500) ;              // Espera antes de encender el modulo
    Serial.begin(9600);
    Serial.println("Levantando el modulo HC-06");
    digitalWrite (8, HIGH);    //Enciende el modulo
    Serial.println("Esperando comandos AT:");
    BT1.begin(38400); 
  }

void loop()
  {  if (BT1.available())
           Serial.write(BT1.read());
     if (Serial.available())
        BT1.write(Serial.read());
  }

También podemos usar directamente el FTDI con el siguiente pineado:

Si todo está bien conectado veremos en consola:

Lista de comandos AT:

AT COMMAND LISTING
COMMAND FUNCTION
AT Test UART Connection
AT+RESET Reset Device
AT+VERSION Query firmware version
AT+ORGL Restore settings to Factory Defaults
AT+ADDR Query Device Bluetooth Address
AT+NAME Query/Set Device Name
AT+RNAME Query Remote Bluetooth Device’s
AT+ROLE Query/Set Device Role
AT+CLASS Query/Set Class of Device CoD
AT+IAC Query/Set Inquire Access Code
AT+INQM Query/Set Inquire Access Mode
AT+PSWDAT+PIN Query/Set Pairing Passkey
AT+UART Query/Set UART parameter
AT+CMODE Query/Set Connection Mode
AT+BIND Query/Set Binding Bluetooth Address
AT+POLAR Query/Set LED Output Polarity
AT+PIO Set/Reset a User I/O pin

Referencia de los comandos AT:

Es importante comprender, que en cuanto conectemos algún dispositivo a nuestro modulo Bluettotth HC-05, la luz roja dejará de parpadear y automáticamente saldremos del modo de comandos AT para entrar en el de transporte de información, es decir, cualquier cosa que le enviemos, incluyendo comandos AT, se consideraran texto plano que se reenviará al otro extremos de la conexión Bluetooth.

NOTA para nuestro módulo el parpadeo de las luces es de la siguiente forma:

  • Modo AT (configuración): parpadeo lento
  • Modo normal sin nada conectado: parpadeo rápido
  • Modo normal conectado: parpadeo lento con doble parpadeo

Los valores por defecto del módulo usado son:

  • Name = HC-05
  • Password = 1234
  • Baud rate in communication mode = 9600
  • Baud rate in AT/Command mode = 38400

Probar a mandar comandos AT y luego salir de modo AT con AT+RESET y comunicar entre el móvil y Arduino usando la aplicación “Bluetooth spp tools pro”.

Basic Bluetooth

Hacer el ejercicio basic_bluetooth donde encenderemos el led 13 mandando un 1 y lo apagaremos mandando un 0 desde el móvil con la aplicación: Bluetooth spp tools pro. Enlace: https://play.google.com/store/apps/details?id=mobi.dzs.android.BLE_SPP_PRO

Ejercicio41 – Bluetooth: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio41-Bluetooth/basic_bluetooth

Interacción Móvil-Arduino

Usar ardudroid para controlar los pines de Arduino desde el móvil:

Mandar a Arduino los datos de los sensores del móvil con sensoduino

Para saber todo sobre el módulo bluetooth y hacer más ejercicios:

Más información: