Arduino Nano - BLE

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

Arduino Nano BLE

El propósito de este tutorial es:

Es importante tener en cuenta que este tutorial se centra en Bluetooth Low Energy (BLE, Bluetooth 4.0). Si necesita información sobre Bluetooth clásico (Bluetooth 2.0), consulte el tutorial similar Arduino Nano - Bluetooth.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Módulo Bluetooth BLE HM-10
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 HM-10

El HM-10 es un módulo BLE serial que actúa como un convertidor de serie a Bluetooth de baja energía. Tiene la capacidad de:

  • Recibir datos del pin Serial RX y transmitirlos a un dispositivo emparejado, como un teléfono inteligente, a través de BLE
  • Recibir datos de BLE (del dispositivo emparejado) y enviarlos al pin Serial TX

Cuando se utiliza un Arduino Nano para comunicarse con una aplicación para smartphone (Android/iOS), se llevan a cabo los siguientes pasos:

  • El Arduino Nano está conectado al módulo Bluetooth HM-10 a través de los pines Serial/SoftwareSerial.
  • El módulo Bluetooth HM-10 está emparejado con la aplicación para smartphone.
  • Los datos se envían desde el Arduino Nano a la aplicación para smartphone enviándolos al Serial/SoftwareSerial.
  • Los datos son recibidos por el Arduino Nano desde la aplicación para smartphone al leerlos desde el Serial/SoftwareSerial.
  • No se necesita código BLE adicional en el Arduino Nano.

Pinout del módulo BLE HM-10

Disposición de pines de BLE

El módulo HM-10 BLE tiene 6 pines:

  • Pin BKR: Este pin se utiliza para controlar el comportamiento del módulo. Los principiantes deben ignorar este pin.
  • Pin RX: Este es un pin de datos en serie, que debe conectarse al pin TX del Arduino Nano. Los datos recibidos por este pin se enviarán al Bluetooth.
  • Pin TX: Este es un pin de datos en serie, que debe conectarse al pin RX del Arduino Nano. Los datos recibidos vía BLE serán enviados a este pin como datos en serie.
  • Pin GND: Este es un pin de alimentación, que debe conectarse al GND de la fuente de alimentación.
  • Pin VCC: Este es un pin de alimentación, que debe conectarse a 3.3 V de la fuente de alimentación.
  • Pin ESTADO: Este pin indica los estados de funcionamiento:
    • Parpadeo en modo de espera - pulso de 500 ms;
    • Encendido en estado de conexión - nivel alto.

    ※ Nota:

    • Solo se requieren cuatro pines para el HM-10, que son VCC, GND, RX y TX.
    • Algunos fabricantes producen el HM-10 con solo estos cuatro pines.

Acerca de la aplicación Bluetooth Serial Monitor

Para usar la aplicación Bluetooth Serial Monitor, primero debe conectar su placa Arduino Nano a un módulo Bluetooth HM-10. Luego, descargue e instale la aplicación en su teléfono inteligente. Finalmente, abra la aplicación y establezca una conexión con el módulo Bluetooth HM-10.

Una vez que se completen los pasos, podrás transmitir y recibir datos desde el Arduino Nano como si estuvieras utilizando el Monitor Serial en el IDE de Arduino, sin tener que hacer ningún cambio al código existente del Arduino Nano ni añadir código específico de Bluetooth.

Diagrama de Cableado

Diagrama de cableado de Arduino Nano BLE

This image is created using Fritzing. Click to enlarge image

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

La tabla de cableado. Una tabla para el cableado.

Arduino Nano Pins HM-10 Bluetooth Pins
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

※ Nota:

El código de Arduino Nano puede utilizar otros pines sustituyendo el objeto Serial por una alternativa como Serial1, Serial2 o SoftwareSerial (si está disponible).

Cómo programar para Bluetooth

No se requiere programación específica de Bluetooth; solo es necesaria la programación en serie.

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

Para enviar datos desde una placa Arduino Nano a una aplicación Bluetooth en un teléfono inteligente, se puede utilizar el siguiente código de Arduino Nano. Este ejemplo muestra la transmisión del mensaje “Arduino aquí, ordéname!” desde el Arduino Nano a la aplicación para 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-ble */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Pasos R\u00e1pidos

  • Buscar dispositivos disponibles y seleccionar el módulo HM-10.

Para usar el código y establecer una conexión entre una placa Arduino Nano y un teléfono inteligente utilizando BLE, siga estos pasos:

  • Descarga e instala la Bluetooth Serial Monitor App en tu teléfono inteligente.
  • Según el diagrama de cableado, conecta el módulo Bluetooth HM-10 a la placa Arduino Nano.
  • Abre el IDE de Arduino, copia el código proporcionado y súbelo a la placa Arduino Nano. Si tienes dificultad para subir el código, desconecta los pines TX y RX del módulo Bluetooth, sube el código y luego vuelve a conectar los pines RX/TX.
  • Abre el Monitor Serial en el IDE de Arduino.
  • En tu teléfono inteligente, abre la app Bluetooth Serial Monitor y cambia al modo BLE.
  • Busca dispositivos disponibles y selecciona el módulo HM-10.
Aplicación de Monitor Serie Bluetooth
  • Conecta el teléfono inteligente al módulo Bluetooth HM-10.
Emparejamiento del Monitor Serial Bluetooth
  • Echa un vistazo al resultado en la aplicación de Android.
Aplicación de Monitor Serial Bluetooth
  • Observa la salida mostrada 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!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Si sigues los pasos necesarios y ejecutas el código, verás que los datos que se muestran en el Monitor Serial del IDE de Arduino y en la aplicación de Android serán los mismos.

Aplicación Bluetooth envía datos a Arduino Nano

El código que se muestra a continuación realiza las siguientes tareas:

  • Enviando datos desde la aplicación Bluetooth a la placa Arduino Nano
  • La placa Arduino Nano lee los datos entrantes y luego envía una respuesta de vuelta al dispositivo 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-ble */ // 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

Aquí están los pasos para usar el código con Arduino Nano y una aplicación para Android:

  • Abre el IDE de Arduino y copia el código proporcionado.
  • Haz clic en el botón Subir para transferir el código a la placa Arduino Nano.
  • Abre el Monitor Serial desde el IDE de Arduino.
  • Inicia la aplicación de Android y empareja con el módulo Bluetooth HM-10 siguiendo las instrucciones dadas en un ejemplo anterior.
  • Después de conectarte, escribe "LED ON" o "LED OFF" en la aplicación de Android y pulsa el botón "ENVIAR".
Aplicación de Monitor Serial Bluetooth
  • La placa Arduino Nano recibirá los datos y mostrará una respuesta en el puerto serie. Después, estos datos se transmitirán a la aplicación Bluetooth. Por último, el resultado se puede ver en la aplicación Android.
Aplicación de Monitor Serial Bluetooth
  • Revise la salida que se muestra 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  

Una vez que haya terminado los pasos anteriores, observará que los datos mostrados en el Monitor Serial del IDE de Arduino y en la aplicación de Android coinciden.

Código de Arduino Nano - Controla un LED con una app para smartphone vía BLE

El siguiente código de ejemplo para Arduino Nano utiliza los comandos “ON” y “OFF” obtenidos a través de la aplicación Bluetooth Serial Monitor 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-ble */ #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 } } }

Puede encontrar más información sobre las instrucciones en el tutorial titulado Arduino Nano controla LED vía Bluetooth/BLE. Para una visión más detallada de las instrucciones, consulte el Arduino Nano controla LED vía Bluetooth/BLE tutorial.

Código de Arduino Nano - Controlar un servomotor con una app para smartphone mediante BLE

  1. El código de Arduino Nano a continuación se utiliza para recibir un valor de ángulo desde la aplicación Bluetooth Serial Monitor. 2. Este valor de ángulo se utiliza luego para controlar el ángulo de un 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-ble */ #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); } } }

Puede obtener una visión más detallada de las instrucciones en el tutorial Arduino Nano controla el motor servo mediante Bluetooth/BLE. Para ver las instrucciones con más detalle, por favor consulte el tutorial Arduino Nano controla el motor servo mediante Bluetooth/BLE. Si desea entender mejor las instrucciones, por favor consulte el tutorial Arduino Nano controla el motor servo mediante Bluetooth/BLE.

Si encuentras útil la aplicación Bluetooth Serial Monitor, por favor califícala con 5 estrellas en Play Store. ¡Agradecemos mucho tu apoyo!

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!