- Componentes requeridos
- Diagrama de circuito del módulo Bluetooth ESP8266 HC-05
- Módulo Bluetooth HC-05
- Uso de un terminal Bluetooth en serie (aplicación de Android)
- Programación de NodeMCU ESP8266 para interfaz Bluetooth
Hoy en día, el Bluetooth se ha convertido en una parte integral de los dispositivos digitales y viene incorporado en la mayoría de los dispositivos, como teléfonos inteligentes, computadoras portátiles, PC, cámaras, relojes, bandas de ejercicios y muchos más. Bluetooth siempre ha sido el protocolo dominante en la comunicación inalámbrica desde que fue descubierto. Aunque la tecnología Bluetooth es fundamentalmente un sistema de reemplazo de cables, también aprovecha un puente universal a las redes de datos existentes y un mecanismo de conexión ad hoc para varios dispositivos en varias configuraciones. Hemos utilizado el módulo Bluetooth HC05 y HC06 con muchos otros microcontroladores para que se comuniquen de forma inalámbrica:
- Interfaz Bluetooth HC-05 con STM32F103C8 Blue Pill: LED de control
- Interfaz del módulo Bluetooth HC-05 con el microcontrolador AVR
- Robot controlado por Android usando el microcontrolador 8051
- Controlar Raspberry Pi GPIO usando la aplicación de Android a través de Bluetooth
- Coche de juguete controlado por Bluetooth usando Arduino
Hoy conectaremos el módulo Bluetooth HC-05 con el popular módulo Wi-Fi ESP8266 y controlaremos un LED de forma inalámbrica enviando comandos a través de Bluetooth. Este LED se puede reemplazar por un relé y un aparato de CA para construir una aplicación de automatización del hogar.
Componentes requeridos
Hardware:
- NodeMCU ESP8266
- Módulo Bluetooth HC-05
Software:
- IDE de Arduino
- Terminal Bluetooth serie (aplicación de Android): para monitorear datos Bluetooth en teléfonos inteligentes.
Diagrama de circuito del módulo Bluetooth ESP8266 HC-05
El diagrama de circuito para conectar el módulo Bluetooth HC-05 con NodeMCU ESP8266 es muy simple y se muestra a continuación:
Se necesita un módulo Bluetooth externo con ESP8266 ya que no tiene Bluetooth incorporado como ESP32. ESP32 tiene incorporado Bluetooth Low Energy (BLE) y Classic Bluetooth, sobre los cuales hemos cubierto algunos tutoriales anteriormente:
- Servidor ESP32 BLE - Servicio GATT para indicación de nivel de batería
- Cliente ESP32 BLE: conexión a una banda de fitness para activar una bombilla
- Cómo usar Bluetooth serie en ESP32
Módulo Bluetooth HC-05
HC-05 es un módulo Bluetooth en serie. Se puede configurar mediante comandos AT. Puede funcionar en tres configuraciones diferentes (Master, Slave, Loop back). En nuestro proyecto lo usaremos como esclavo. Las características del módulo HC-05 incluyen,
- Sensibilidad típica de -80dBm.
- Tasa de baudios predeterminada: 9600bps, 8 bits de datos, 1 bit de parada, sin paridad.
- Código PIN de emparejamiento automático: código PIN predeterminado “1234” o “0000”.
- Tiene 6 pines.
- Los pines Vcc y Gnd se utilizan para alimentar el HC-05.
- Los pines Tx y Rx se utilizan para comunicarse con el microcontrolador.
- Habilitar pin para activar el módulo HC-05. cuando está bajo, el módulo está deshabilitado
- Estado pin actúa indicador de estado. Cuando no está emparejado / conectado con ningún otro dispositivo Bluetooth, el LED parpadea continuamente. Cuando está conectado / emparejado con cualquier otro dispositivo Bluetooth, el LED parpadea con un retraso constante de 2 segundos.
Para obtener más información sobre el módulo Bluetooth, consulte nuestros otros proyectos relacionados con Bluetooth.
Uso de un terminal Bluetooth en serie (aplicación de Android)
Usar esta aplicación es muy fácil y requiere pocos pasos. Las capturas de pantalla se muestran a continuación con pasos. Simplemente empareje el HC-05 con el teléfono inteligente. El código predeterminado es '0000' o '1234', pero la mayoría de las veces funciona '1234'.
- Primero descargue e instale la aplicación Luego vaya a los dispositivos para encontrar el Módulo HC-05. Seleccione el módulo HC-05 buscado en la aplicación. Si no lo encuentra, compruebe si el HC-05 está correctamente alimentado.
- Después de hacer clic en el HC-05, se conectará. Ahora escriba cualquier mensaje en el cuadro de mensaje y envíelo. Se imprimirá en el Arduino Serial Monitor.
Programación de NodeMCU ESP8266 para interfaz Bluetooth
Para programar el NodeMCU ESP8266 usando ArduinoIDE, simplemente conéctelo desde una computadora portátil o PC con un cable micro USB y abra Arduino IDE. Para este tutorial, se utilizarán la serie de hardware y la serie de software. La serie de hardware se utilizará para leer y escribir datos en Arduino Serial Monitor y la serie de software se utilizará para comunicarse con HC-05. Como siempre, el código completo y el video de demostración se proporcionan al final del tutorial.
Inicialmente, incluya la biblioteca de serie de software, ya que se utilizará en este tutorial.
#incluir
Defina el pin RX y TX para la comunicación serial del software, también defina el pin led conectado a NodeMCU. Estamos usando el LED interno de NodeMCU que está en el Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Inicie la serie de software y hardware a una velocidad de 9600 baudios. Establezca Led Pin como salida. Imprime un mensaje de bienvenida y depuración.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, SALIDA); Serial.println ("Iniciado…");
En primer lugar, lea desde el módulo Bluetooth y defina un caso en el que si el módulo Bluetooth recibe "B" del teléfono, el LED comienza a parpadear conectado a D4 de NodeMCU; de lo contrario, si recibe "S", el LED deja de parpadear. No usamos delay () aquí. Pero Arduino 'millis' se utilizará para no obstaculizar el rendimiento de Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); cambiar (datos) { caso 'B': ledB = "parpadear"; romper; caso 'S': ledB = "detener"; romper; predeterminado: descanso; } }
Se define el milis y se establece el retardo en 500 ms, es decir, el led parpadeará cada 500 ms. También puede configurar el retardo del led cambiando el valor de 'intervalo'. El estado del led se alternará.
currentMillis largo sin firmar = millis ();
if (ledB == "parpadeo") { Serial.println ("parpadeo iniciado"); if (currentMillis - previousMillis> = intervalo) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
Y esto finalizará la programación de NodeMCU para que parpadee el LED de forma inalámbrica mediante Bluetooth. También puede cambiar el programa para realizar diferentes tareas con LED como el LED puede ser reemplazado por un relé con aparato de CA para hacer un proyecto de domótica Bluetooth. En caso de cualquier duda o sugerencia, diríjase a nuestro foro o comente a continuación.