Introducción
Los módulos HC-05 y HC-06 son módulos de Bluetooth que podemos usar para conectar Arduino por Bluetooth.
Mucha gente puede tener la impresión de que el Bluetooth es una tecnología anticuada, que se usaba para trasmitir datos entre dispositivos, y que actualmente está en desuso. Nada más lejos de la realidad.
Bluetooth tiene la enorme ventaja de estar integrado de fábrica en la mayoría de dispositivos. Portátiles, Tablets, y Smartphones llevan integrado Bluetooth. Además, su uso es independiente del sistema operativo (Windows, Linux, Mac o Android).
Esto convierte a la tecnología Bluetooth en uno de los mejores medios para comunicarnos de forma inalámbrica con Arduino. Por ejemplo, puede ser empleado para controlar un robot desde el móvil o Tablet, o para recibir mediciones en un ordenador para registrarlas en un servidor web.
Incluso es posible programar Arduino de forma inalámbrica a través de Bluetooth.
Los dos módulos, HC-05 y HC-06, nos permiten conectar de forma sencilla un Arduino por Bluetooth. La diferencia entre ambos módulos es que el HC-06 sólo permite recibir comunicaciones (slave) mientras que el HC-05 puede recibirlas e iniciarlas (master and server). Por tanto el módulo HC-05 es superior en características técnicas.
¿Cómo funcionan los Módulos HC-05 y HC-06?
La comunicación Bluetooth es similar al uso del puerto serie normal. Por tanto, resulta muy versátil y muy sencillo de usar.
La diferencia principal es que, en lugar de un conectar un cable, debe emparejarse el módulo con un dispositivo. El proceso de emparejado depende del sistema operativo (y la versión del mismo) pero es, en general, un proceso sencillo.
Para establecer la comunicación desde el dispositivo, puede usarse el propio Serial Monitor del Arduino IDE. También se encontraran en todos los sistemas (Windows, Linux, Mac, o Android) las aplicaciones para establecer la comunicación por el puerto serie.
Por último, resulta muy sencillo integrar el uso del puerto serie (y por tanto del Bluetooth) en una gran variedad de lenguajes de programación, incluidos Java, C#, VB .Net, o Python, que disponen de funciones específicas para ellos.