Arduino Nano - Bluetooth

Este tutorial te enseña cómo usar Arduino Nano para controlar el módulo Bluetooth HC-05. En detalle, aprenderemos:

Arduino Nano Bluetooth

El propósito de este tutorial:

Este tutorial se centra en Bluetooth Clásico (Bluetooth 2.0). Si necesita información sobre Bluetooth Low Energy - BLE (Bluetooth 4.0), consulte este tutorial similar: Arduino Nano - Bluetooth Low Energy

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Módulo Bluetooth HC-05
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo Bluetooth HC-05

HC-05 es un módulo Bluetooth serie que funciona como un convertidor de serie a Bluetooth. Realiza las siguientes tareas:

  • Recibir datos desde el pin RX del puerto serie y transmitirlos al dispositivo emparejado (como un teléfono inteligente) a través de Bluetooth
  • Obtener datos desde Bluetooth (del dispositivo emparejado) y enviarlos al pin TX del puerto serie

Específicamente, con respecto a Arduino Nano que se comunica con una aplicación para smartphones (Android/iOS):

  • El Arduino Nano está conectado a un módulo Bluetooth HC-05 a través de los pines Serial/SoftwareSerial.
  • El módulo Bluetooth HC-05 está vinculado a la aplicación del teléfono inteligente.
  • El Arduino Nano envía datos a la aplicación del teléfono inteligente mediante Serial/SoftwareSerial.
  • El Arduino Nano recibe datos de la aplicación del teléfono inteligente leyéndolos desde Serial/SoftwareSerial.
  • No se necesita código especial de Bluetooth en el Arduino Nano.

Disposición de pines del módulo Bluetooth HC-05

Disposición de pines de Bluetooth

El módulo Bluetooth HC-05 tiene 6 pines:

  • Pin de habilitación/clave: Este pin se usa para alternar entre Modo de Datos (configurado en BAJO) y Modo de Comando (configurado en ALTO). Si no está conectado, está en modo de datos por defecto.
  • Pin VCC: pin de alimentación, este pin debe conectarse al +5V de la fuente de alimentación.
  • Pin GND: pin de alimentación, este pin debe conectarse al GND de la fuente de alimentación.
  • Pin TX: Pin de datos seriales, este pin debe conectarse al pin RX de Arduino Nano. Los datos recibidos a través de Bluetooth se enviarán a este pin como datos seriales.
  • Pin RX: Pin de datos seriales, este pin debe conectarse al pin TX de Arduino Nano. Los datos recibidos desde este pin serán enviados a Bluetooth.
  • Estado: El pin de estado está conectado al LED incorporado; puede usarse como retroalimentación para comprobar si el Bluetooth está funcionando correctamente.

Sin embargo, para realizar funciones básicas, solo cuatro pines del módulo Bluetooth HC-05 son necesarios para conectarse al Arduino Nano.

El módulo Bluetooth HC-05 también tiene dos componentes integrados:

  • Un LED que indica el estado del Módulo:
    • Parpadea una vez cada dos segundos, lo que indica que el Módulo ha entrado en el Modo de Comando
    • Parpadeo rápido indica que está esperando una conexión en el Modo de Datos
    • Parpadeo dos veces por segundo indica una conexión exitosa en el Modo de Datos
  • Un botón que puede usarse para controlar el pin Key/Enable para seleccionar el modo de operación (Modo de Datos o Modo de Comando)

Cómo funciona

El módulo Bluetooth HC-05 tiene dos modos de operación:

  • Modo de datos, que se utiliza para transmitir y recibir datos con el dispositivo conectado
  • Modo de comandos, que se utiliza para configurar los ajustes

Afortunadamente, el módulo Bluetooth HC-05 es capaz de funcionar con Arduino Nano sin necesidad de configuración, utilizando la configuración predeterminada.

HC-05 Configuración predeterminada

Default Bluetooth Name “HC-05”
Default Password 1234 or 0000
Default Communication Slave
Default Mode Data Mode
Default Data Mode Baud Rate 9600, 8, N, 1
Default Command Mode Baud Rate 38400, 8, N, 1

Acerca de la Aplicación Bluetooth Serial Monitor

La aplicación Bluetooth Serial Monitor es una aplicación móvil que tiene una interfaz de usuario similar al Monitor Serial del IDE de Arduino. Se comunica con un dispositivo Arduino Nano vía Bluetooth. Puedes interactuar con el Arduino Nano como si estuviera conectado al Monitor Serial de un PC, sin necesidad de añadir ningún código especial para el módulo Bluetooth en tu código de Arduino Nano. Para ello, sigue estos pasos:

  • Conecta el Arduino Nano a un módulo Bluetooth HC-05
  • Instala la aplicación Bluetooth Serial Monitor App en tu teléfono inteligente
  • Abre la aplicación y empareja con el módulo Bluetooth HC-05

Ahora puedes enviar y recibir datos desde Arduino Nano de la misma forma que el Monitor Serial del IDE de Arduino. No es necesario modificar el código existente de Arduino Nano ni añadir código Bluetooth al nuevo código de Arduino Nano.

Diagrama de Cableado

Diagrama de cableado de Arduino Nano con Bluetooth

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Tabla de cableado. Diagrama de cableado. Diagrama de cableado

Arduino Nano Pins HC-05 Bluetooth Pins
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
Enable/Key (NOT connected)
State (NOT connected)

※ Nota:

Puedes utilizar otros pines del Arduino Nano modificando el objeto Serial en el código del Arduino Nano para usar otro Serial1, Serial2,..., o SoftwareSerial si está disponible.

Cómo programar para Bluetooth

No se necesita código específico para Bluetooth. Solo necesitamos utilizar el código Serial.

Arduino Nano envía datos a la aplicación Bluetooth en el teléfono inteligente

Para transmitir datos desde un Arduino Nano a una aplicación de Bluetooth en un teléfono inteligente, debe usarse el siguiente código con el Arduino:

En este ejemplo, haremos que Arduino Nano envíe “¡Arduino aquí, ordéname!” a la aplicación Bluetooth en un teléfono inteligente cada segundo.

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Pasos R\u00e1pidos

  • Descarga e instala la Bluetooth Serial Monitor App en tu teléfono inteligente.
  • Conecta el módulo Bluetooth HC-05 al Arduino Nano según el diagrama de cableado.
  • Abre el IDE de Arduino, copia el código y pégalo en el IDE.
  • Haz clic en el botón Subir del IDE de Arduino para cargar el código al Arduino Nano. Si no tiene éxito, desconecta los pines TX y RX del módulo Bluetooth, carga el código y luego vuelve a conectar los pines RX y TX.
  • Abre el Monitor Serial en el IDE de Arduino.
  • Abre la Bluetooth Serial Monitor App en tu teléfono y selecciona el modo Bluetooth Clásico.
Aplicación de monitor de serie Bluetooth
  • Conecta el módulo Bluetooth HC-05 a ello.
Emparejamiento del Monitor Serial Bluetooth
  • Consulta el resultado en la aplicación de Android.
Aplicación de Monitor Serial Bluetooth
  • Ver el resultado en el Monitor Serial del Entorno de Desarrollo Integrado de Arduino Nano.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Observarás que la información mostrada en el Monitor Serial del IDE de Arduino y en la aplicación de Android es la misma.

Aplicación Bluetooth envía datos a Arduino Nano

El siguiente código:

  • Transmite datos desde una aplicación Bluetooth a un Arduino Nano
  • Permite al Arduino Nano leer los datos y devolver una respuesta a la aplicación Bluetooth
/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins void setup() { Serial.begin(9600); } void loop() { Serial.println(F("Arduino here, command me!")); if (Serial.available()) { // if there is data comming String command = Serial.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { Serial.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { Serial.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Pasos R\u00e1pidos

  • Copia el código y ábrelo en el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y subir el código al Arduino Nano.
  • Abre el Monitor Serie en el IDE de Arduino.
  • Inicia la aplicación de Android y empareja con el módulo Bluetooth HC-05 como se hizo anteriormente.
  • Una vez conectado, escribe ya sea "LED ON" o "LED OFF" en la aplicación de Android y pulsa el botón "SEND".
Aplicación de Monitor Serial Bluetooth
  • Arduino Nano recibe los datos y imprime la respuesta en el puerto Serial.
  • Los datos se envían luego a la aplicación Bluetooth.
  • El resultado se puede ver en la aplicación de Android.
Aplicación de Monitor Serie Bluetooth
  • Ver la salida en el Monitor Serial del IDE de Arduino.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! LED ON LED is turned ON Arduino here, command me! Arduino here, command me! Arduino here, command me! LED OFF LED is turned OFF Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Notarás que la información que se muestra en el Monitor Serial del IDE de Arduino y en la aplicación de Android es la misma.

Código de Arduino Nano - Controlar el LED con una app para smartphone vía Bluetooth

El siguiente código de ejemplo para Arduino Nano está diseñado para aceptar dos comandos (“ON” y “OFF”) desde una aplicación Bluetooth Serial Monitor. Estos comandos se utilizan para encender/apagar un LED integrado.

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define LED_PIN 12 // The Arduino Nano pin connected to the LED SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // set the digital pin as output: } void loop() { if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { digitalWrite(LED_PIN, LOW); // turn off LED bluetooth.println("LED is turned OFF"); // reports action to smartphone app } else if (command == "LED ON") { digitalWrite(LED_PIN, HIGH); // turn on LED bluetooth.println("LED is turned ON"); // reports action to smartphone app } } }

Puedes ver una descripción más detallada de las instrucciones en el tutorial Arduino Nano controla LED vía Bluetooth/BLE.

Código de Arduino Nano - Control del motor servo con la aplicación para smartphone vía Bluetooth

El código de Arduino Nano a continuación recibe el valor del ángulo desde la aplicación Bluetooth Serial Monitor para controlar el ángulo del servomotor.

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ #include <Servo.h> #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define SERVO_PIN 12 // The Arduino Nano pin connected to the servo motor SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); bluetooth.begin(9600); servo.attach(SERVO_PIN); } void loop() { if (bluetooth.available()) { // if there is data comming int angle = bluetooth.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo bluetooth.print("Rotated servo to angle: ");// reports action to smartphone app bluetooth.println(angle); } else { bluetooth.print("Invalid angle: ");// reports invalid value to smartphone app bluetooth.println(angle); } } }

Puedes ver las instrucciones con más detalle en el Arduino Nano controls Servo Motor via Bluetooth/BLE tutorial.

Puedes obtener una mirada más exhaustiva de las instrucciones en el Arduino Nano controls Servo Motor via Bluetooth/BLE tutorial.

Para obtener una visión más completa de las instrucciones, por favor consulta el Arduino Nano controls Servo Motor via Bluetooth/BLE tutorial.

Si encuentra útil la aplicación Bluetooth Serial Monitor, por favor demuéstre su agradecimiento otorgándole una calificación de 5 estrellas en Play Store. ¡Su apoyo es muy apreciado!

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!