Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Arduino y Módulo Bluetooth HC-05 Tutorial Completo

En este tutorial de Arduino Bluetooth, aprenderemos cómo usar el módulo HC-05 para controlar Arduino a través de la comunicación Bluetooth. Puede ver el siguiente video o leer el tutorial escrito a continuación para obtener más detalles.

Resumen

Para este tutorial hice dos ejemplos, controlando el Arduino usando un teléfono inteligente y controlando el Arduino usando una computadora portátil o una PC. Para no sobrecargar este tutorial, en mi próximo tutorial aprenderemos cómo podemos configurar el módulo Bluetooth HC-05 y hacer una comunicación Bluetooth entre dos placas Arduino separadas como dispositivos maestros y esclavos.

Antes de comenzar con el primer ejemplo, controlar un Arduino usando un teléfono inteligente, echemos un vistazo más de cerca al módulo Bluetooth HC-05. Comparándolo con el módulo HC-06, que solo se puede configurar como esclavo, el HC-05 también se puede configurar como maestro, lo que permite establecer una comunicación entre dos placas Arduino separadas. Hay varias versiones diferentes de este módulo, pero recomiendo el que viene en una placa de conexión porque de esa manera es mucho más fácil estar conectado. El módulo HC-05 es un módulo Bluetooth SPP (Protocolo de puerto serie), lo que significa que se comunica con el Arduino a través de la comunicación serie.

Puede obtener los componentes necesarios para este tutorial de Arduino en cualquiera de los siguientes sitios:

Esquemas del circuito


Así es como necesitamos conectar el módulo a la placa Arduino.

El módulo particular que tengo puede alimentarse de 3,6 a 6 voltios, porque viene en una placa de conexiones que contiene un regulador de voltaje. Sin embargo, el nivel de voltaje lógico de los pines de datos es de 3,3 V. Por lo tanto, la línea entre Arduino TX (Pin de transmisión, que tiene una salida de 5 V) y el módulo Bluetooth RX (Pin de recepción, que solo admite 3,3 V) debe conectarse a través de un divisor de voltaje para no quemar el módulo. Por otro lado, la línea entre el pin TX del módulo Bluetooth y el pin RX de Arduino se puede conectar directamente porque la señal de 3,3 V del módulo Bluetooth es suficiente para ser aceptada como lógica alta en la placa Arduino.

Código fuente de ejemplo de comunicación Bluetooth de Arduino

Entonces, ahora estamos listos para crear el código Arduino para habilitar la comunicación entre la placa Arduino y el teléfono inteligente. Haremos un ejemplo simple, simplemente encendiendo y apagando un LED, pero será lo suficientemente bueno para entender la comunicación.

#define ledPin 7
int state = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
  if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }

 if (state == '0') {
  digitalWrite(ledPin, LOW); // Turn LED OFF
  Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON"
  state = 0;
 }
 else if (state == '1') {
  digitalWrite(ledPin, HIGH);
  Serial.println("LED: ON");;
  state = 0;
 } 
}Code language: Arduino (arduino)

Descripción: Primero debemos definir el pin al que se conectará nuestro LED y una variable en la que almacenaremos los datos provenientes del teléfono inteligente. En la sección de configuración, debemos definir el pin LED como salida y establecerlo bajo de inmediato. Como se mencionó anteriormente, usaremos la comunicación en serie, por lo que debemos comenzar la comunicación en serie a una velocidad de transmisión de 38400 baudios, que es la velocidad de transmisión predeterminada del módulo Bluetooth. En la sección de bucle con la función Serial.disponible() comprobaremos si hay datos disponibles en el puerto serie para leer. Esto significa que cuando enviemos datos al módulo Bluetooth, esta afirmación será cierta, por lo que, al usar la función Serial.read(), leeremos esos datos y los colocaremos en la variable "estado". Entonces, si el Arduino recibe el carácter '0', apagará el LED y usando la función Serial.println () enviará de vuelta al teléfono inteligente, a través del puerto serie, la cadena "LED:APAGADO". Además, restableceremos la variable "estado" a 0 para que las dos líneas anteriores se ejecuten solo una vez. Tenga en cuenta aquí que la variable de "estado" es un número entero, por lo que cuando recibimos el carácter '0' que proviene del teléfono inteligente, el valor real de la variable de "estado" entero es 48, que corresponde al carácter '0', según el ASCII table.. Es por eso que en la instrucción "si" estamos comparando la variable "estado" con un carácter '0'. Por otro lado, si el carácter recibido es '1', el LED se encenderá y se devolverá el String "LED:ON".

Ahora el código está listo para ser cargado, pero para hacerlo necesitamos desconectar las líneas TX y RX porque al cargar el Arduino usa la comunicación serial, por lo que los pines RX (pin digital 0) y TX (pin digital 1) están ocupados. Podemos evitar este paso si usamos los otros pines TX y RX de la placa Arduino, pero en ese caso tendremos que usar la biblioteca SoftwareSerial.h para la comunicación serial.

Relacionado: Cómo configurar y emparejar dos módulos Bluetooth HC-05 como maestro y esclavo | Comandos AT

Conectando el Smartphone al Módulo Bluetooth HC-05 y al Arduino

Ahora estamos listos para conectar el teléfono inteligente al módulo Bluetooth y al Arduino. Lo que debemos hacer aquí es activar el Bluetooth y el teléfono inteligente encontrará el módulo Bluetooth HC-05.

Luego necesitamos vincular los dispositivos y la contraseña predeterminada del módulo HC-05 es 1234. Después de vincular los dispositivos, necesitamos una aplicación para controlar el Arduino. Hay muchas aplicaciones en Play Store para este propósito que funcionarán con el código Arduino que escribimos. Sin embargo, hice mi propia aplicación personalizada para este tutorial utilizando la aplicación en línea MIT App Inventor. Esta es una aplicación excelente y fácil de usar para crear aplicaciones de Android y en mi próximo tutorial puede encontrar una guía detallada paso a paso sobre cómo crear su propia aplicación de Android personalizada para su proyecto Arduino.

Puedes descargar la aplicación que hice para este ejemplo aquí:

Aplicación Android de ejemplo del tutorial de Arduino Bluetooth

1 archivo(s) 1.38 MB Descargar

Con el botón conectar conectaremos el smartphone al módulo Bluetooth y el texto de estado debajo del botón nos indicará si nos hemos conectado correctamente. Mediante los botones “Turn ON” y “Turn OFF” podemos encender y apagar el LED. El texto encima de los botones es el que Arduino envía al teléfono inteligente cuando se presiona un botón en particular.

Controlar Arduino usando una laptop o PC mediante comunicación Bluetooth

Veamos cómo podemos controlar el Arduino a través de Bluetooth usando una computadora portátil o una PC. Entonces, primero debemos emparejar nuestra computadora portátil con el módulo Bluetooth HC-05 y podemos hacerlo desde la Configuración de Bluetooth de la computadora portátil. La computadora portátil descubrirá el módulo HC-05 y usando la contraseña '1234' emparejaremos los dispositivos.

Una vez que emparejemos los dispositivos en el Administrador de dispositivos de la computadora portátil, en Puertos (COM y LPT), aparecerán dos nuevas entidades denominadas "Serie estándar sobre enlace Bluetooth". Desde aquí podemos ver el número de puerto COM del puerto serie a través del cual se comunicarán los dispositivos.

Seguiremos con el mismo ejemplo anterior, encendiendo y apagando un LED y enviando una cadena a la computadora portátil, por lo que usaremos el mismo código Arduino que se describió anteriormente.

Procesamiento del código fuente IDE

Ahora, utilizando el IDE de procesamiento, crearemos un programa para controlar el Arduino. Aquí está el código fuente.

import processing.serial.*;
Serial myPort;
String ledStatus="LED: OFF";

void setup(){
  size(450, 500);
  myPort = new Serial(this, "COM5", 38400); // Starts the serial communication
  myPort.bufferUntil('\n'); // Defines up to which character the data from the serial port will be read. The character '\n' or 'New Line'
}
void serialEvent (Serial myPort){ // Checks for available data in the Serial Port
  ledStatus = myPort.readStringUntil('\n'); //Reads the data sent from the Arduino (the String "LED: OFF/ON) and it puts into the "ledStatus" variable
}

void draw(){
  background(237, 240, 241);
  fill(20, 160, 133); // Green Color
  stroke(33);
  strokeWeight(1);
  rect(50, 100, 150, 50, 10);  // Turn ON Button
  rect(250, 100, 150, 50, 10); // Turn OFF Button
  fill(255);
  
  textSize(32);
  text("Turn ON",60, 135);
  text("Turn OFF", 255, 135);
  textSize(24);
  fill(33);
  text("Status:", 180, 200);
  textSize(30);
  textSize(16);
  text("Program made by Dejan Nedelkovski,\n     www.HowToMechatronics.com", 80, 320);

  text(ledStatus, 155, 240); // Prints the string comming from the Arduino
  
  // If the button "Turn ON" is pressed
  if(mousePressed && mouseX>50 && mouseX<200 && mouseY>100 && mouseY<150){
    myPort.write('1'); // Sends the character '1' and that will turn on the LED
    // Highlighs the buttons in red color when pressed
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(50, 100, 150, 50, 10);
  }
  // If the button "Turn OFF" is pressed
  if(mousePressed && mouseX>250 && mouseX<400 && mouseY>100 && mouseY<150){
    myPort.write('0'); // Sends the character '0' and that will turn on the LED
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(250, 100, 150, 50, 10);
  }
}Code language: Arduino (arduino)

Descripción:  Necesitamos incluir la biblioteca Serial y crear un objeto serial para habilitar la comunicación serial, así como definir una variable String para el estado del led. En la sección de configuración, debemos configurar el tamaño de la ventana del programa e iniciar la comunicación en serie. En cuanto al número de puerto COM aquí, debemos probar uno de los dos números de puerto COM que notamos anteriormente en el administrador de dispositivos. La siguiente línea define el almacenamiento en búfer del puerto serie y, en nuestro caso, eso es hasta que haya una nueva línea y, de hecho, hay una nueva línea cada vez que Arduino envía la cadena "LED:APAGADO" o "LED ENCENDIDO" debido a println ( ) función. A continuación, utilizando la función serialEvent() comprobamos si hay datos disponibles en el puerto serie para leer. Si es así, utilizando la función readStringUntil() leeremos los datos del puerto serie que se ha enviado desde Arduino y, en nuestro caso, esa es la cadena "LED:OFF" o "LED:ON".

En la función principal draw(), que se repite constantemente, hacemos todos los gráficos y funciones del programa. Entonces, primero debemos establecer el color de fondo, el color de relleno, el tamaño y el color del trazo y, usando la función rect(), dibujamos los dos botones. Usando la función text(), imprimimos todo el texto, incluida la cadena ledStatus que proviene del Arduino. Lo que queda ahora es hacer que los botones sean funcionales. Entonces, al usar la primera declaración "si", limitamos el área del botón "Encender", de modo que cuando se presiona el botón, el carácter '1' se enviará a través del puerto serie al Arduino y eso encenderá el LED. Las siguientes líneas for se utilizan para resaltar el botón cuando se presiona. El mismo procedimiento se aplica al botón "Apagar".

Ahora el programa está listo, así que cuando hagamos clic en el botón ejecutar, el programa activará automáticamente la comunicación Bluetooth entre la computadora portátil y el Arduino. El módulo Bluetooth HC-05 comenzará a parpadear cada dos segundos, lo que indica que el módulo está conectado y podremos controlar el LED con nuestra computadora portátil.

Gracias por este tutorial, pero no olvide consultar mi próximo tutorial donde aprenderemos cómo podemos configurar el módulo Bluetooth HC-05 y establecer una comunicación Bluetooth entre dos placas Arduino separadas como dispositivos maestros y esclavos.

Además, siéntase libre de hacer cualquier pregunta en la sección de comentarios a continuación y no olvide consultar mi colección de proyectos Arduino.


Proceso de manufactura

  1. Tutorial de bloqueo RFID de Arduino
  2. Generador de ondas JX
  3. Módulo GPS u-blox LEA-6H 02 con Arduino y Python
  4. Un sistema de detección de caídas basado en Arduino, Windows y Azure
  5. Control de coche con Arduino Uno y Bluetooth
  6. Tutorial del sensor de huellas dactilares Arduino
  7. Reloj de alarma ArduRadio
  8. Máquina de café inteligente con Arduino y Bluetooth
  9. Raspberry Pi y portátil Arduino
  10. rDUINOScopio
  11. Control inteligente de termostato, ventilación y luces con Bluetooth