- Materiales necesarios
- Módulo Bluetooth (HC-05)
- Puertos STM32 USART
- Diagrama de circuito y conexiones
- Programación STM32F103C8
- Pasos para conectar el módulo Bluetooth con un teléfono Android
En el mundo actual, Bluetooth se ha vuelto muy popular y casi todos los dispositivos, como teléfonos móviles, computadoras portátiles y sistemas de información y entretenimiento para automóviles, utilizan Bluetooth para la comunicación inalámbrica. Bluetooth no solo se usa para transferir datos, sino también para controlar otros dispositivos Bluetooth de forma inalámbrica, como al usar auriculares Bluetooth, puede escuchar la canción de forma inalámbrica desde su teléfono móvil o puede usar el sistema de audio del automóvil para reproducir las canciones desde su teléfono móvil.
Bluetooth es una tecnología inalámbrica que funciona en la frecuencia de 2,4 GHz. La señal de Bluetooth normal está en un radio de 10 metros. Bluetooth es la tecnología inalámbrica más utilizada en proyectos integrados, siempre que el rango de comunicación sea limitado. Bluetooth tiene la ventaja adicional de su bajo consumo de energía y su bajo costo de operación. Generalmente se utiliza para interconectar microcontroladores con teléfonos inteligentes mediante aplicaciones Bluetooth.
Hemos visto la interfaz del módulo Bluetooth con otros microcontroladores como Arduino, 8051, PIC, etc. Ahora, en este tutorial, conectaremos un módulo Bluetooth HC-05 con STM32F103C8 y enciende / apaga un LED usando un móvil Android.
Materiales necesarios
- STM32F103C8
- Módulo Bluetooth (HC-05)
- LED
- Móvil Android
- Tablero de circuitos
- Cables de conexión
Software:
- Terminal Bluetooth (aplicación de Android)
Módulo Bluetooth (HC-05)
Se utiliza principalmente el módulo Bluetooth en proyectos integrados. Es un módulo Bluetooth en serie que utiliza comunicación en serie con un alcance inferior a 100 my funciona a 5 V (3,3 V mínimo). Se puede utilizar para conectar dos microcontroladores de forma inalámbrica y también con teléfonos móviles y portátiles. Como hay muchas aplicaciones de Android disponibles, es muy útil para realizar proyectos inalámbricos controlados por Bluetooth.
Utiliza comunicación USART y se puede conectar con microcontroladores que tengan protocolo de comunicación USART.
Tiene una antena integrada. Tiene configuraciones Maestro / Esclavo que se pueden cambiar en el modo de comando AT que es útil cuando solo un dispositivo debe enviar los datos (maestro a esclavo) como, por ejemplo, de PC (MASTER) a esclavo (cualquier MCU). Un maestro puede conectarse a otros dispositivos y el esclavo no se conecta a otra conexión que no sea el maestro.
Modos de operacion
Tiene dos modos AT Modo de comando y Modo de datos.
Cuando Bluetooth está encendido, ingresa al modo de datos por defecto. Este modo se puede utilizar para transferencias de datos. Para ingresar al modo AT Command durante el encendido, debemos presionar el botón presente en el módulo para cambiar la configuración predeterminada del módulo, como configuraciones maestro / esclavo.
Pines del módulo Bluetooth
- Pin EN (ENABLE): este pin se utiliza para configurar el modo de datos o el modo de comando AT. Por defecto está en MODO DATOS. Cuando se presiona el botón durante el encendido, pasa al modo de comando AT.
- Pin de + 5V: se utiliza para suministrar energía al módulo
- Pin GND: se utiliza para tierra del módulo
- Pin TX: este pin se conecta al pin RX de MCU
- Pin RX: este pin está conectado al pin TX de MCU
- ESTADO: este pin indica el estado del módulo, consulte las indicaciones a continuación
Indicación LED
- Tiene un indicador LED (ROJO) que proporciona el estado del módulo Bluetooth.
- Cuando el módulo Bluetooth NO ESTÁ CONECTADO a ningún dispositivo, la señal baja y el LED rojo parpadea continuamente, lo que indica que el módulo NO ESTÁ EMPAREJADO.
- Cuando el módulo Bluetooth está CONECTADO a cualquier dispositivo, la señal se pone ALTA y el LED rojo parpadea con algún retraso, lo que indica que el módulo está EMPAREJADO.
Consulte nuestros otros proyectos para obtener más información sobre el módulo Bluetooth HC-05 con otros microcontroladores:
- Coche de juguete controlado por Bluetooth usando Arduino
- Sistema de automatización del hogar controlado por Bluetooth usando 8051
- Luces controladas por voz usando Raspberry Pi
- Radio FM controlada por teléfono inteligente usando Arduino y procesamiento
- Coche robot controlado por teléfono móvil usando G-Sensor y Arduino
- Interfaz del módulo Bluetooth HC-06 con el microcontrolador PIC
Puertos STM32 USART
STM32F103C8 (BLUE PILL) Los puertos de comunicación en serie USART se muestran en la imagen de pin out a continuación. Estos son de color azul con (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Tiene tres canales de comunicación de este tipo.
Diagrama de circuito y conexiones
Las conexiones del circuito para la interfaz del módulo Bluetooth con STM32 se realizan como se muestra a continuación
Conexión entre STM32F103C8 y módulo Bluetooth (HC-05)
- El pin TX (PA9) del STM32F103C8 está conectado al pin RX del módulo Bluetooth.
- El pin RX (PA10) del STM32F103C8 está conectado al pin TX del módulo Bluetooth.
- El pin VCC (+ 5V) del módulo Bluetooth está conectado al pin 5V de STM32F103C8.
- El pin GND del módulo Bluetooth está conectado al pin GND de STM32F103C8.
Otras conexiones
- El pin (PA0) de STM32 (Blue Pill) está conectado al pin positivo del LED a través de una resistencia en serie. El LED que se utiliza aquí es de color mixto.
- El led de otro pin está conectado a GND de STM32.
Programación STM32F103C8
La interfaz de Bluetooth con STM32 es igual que arduino y la programación en STM32 es igual que Arduino IDE. Vea este tutorial para programar STM32 con USB usando Arduino IDE.
Como ya se dijo, en este proyecto, conectaremos un módulo Bluetooth (HC-05) con STM32F103C8 y usaremos un teléfono inteligente Android con la aplicación de Android Terminal Bluetooth para encender y apagar el LED.
Nota: El pin RX y TX debe eliminarse al cargar el código en STM32F103C8.
El código completo para este proyecto se proporciona al final de este tutorial con un video de demostración.
Codificar para este proyecto es muy simple. Se pueden usar los mismos códigos de Arduino, pero solo se debe cambiar el pin. Debido a que tenemos tres juegos de pines USART en STM32F103C8, debemos especificar el pin correcto que usamos para conectar el módulo Bluetooth.
1. Primero necesitamos nombrar los pines con su número de pin respectivo con el tipo de datos int de la siguiente manera
const int pinout = PA0;
2. A continuación, necesitamos tener una variable para almacenar datos en serie desde el móvil Android. Los datos pueden ser un carácter o un número entero de la siguiente manera
char inputdata = 0;
3. A continuación, en la configuración nula (), debemos iniciar la comunicación en serie entre STM32 Blue Pill y el módulo Bluetooth dando una velocidad en baudios de 9600
Serial1.begin (9600);
Usamos Serial1 aquí porque conectamos HC-05 a TX1 y RX1 de STM32.
También podemos usar Serial2 o Serial3 pero, en consecuencia, el pin debe estar conectado.
4. Se envía un mensaje de introducción como datos en serie al serial1, es decir, al módulo Bluetooth HC05. Este módulo envía datos a la aplicación de terminal Bluetooth del móvil Android. Entonces usamos las siguientes declaraciones
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH CON STM32 \ n");
5. A continuación, debemos configurar el modo pin (PA0) como salida, ya que conectamos el led a este pin.
pinMode (pinout, SALIDA);
6. A continuación, en el bucle vacío (), ejecutamos los siguientes datos para leer los datos en serie y encender / apagar el LED en consecuencia
bucle vacío () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED ENCENDIDO \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED APAGADO \ n"); } } }
Aquí usamos la instrucción if porque este código solo se ejecuta cuando el puerto Serial1 tiene algún dato recibido del módulo Bluetooth que explique por qué se usa esta declaración Serial1.available ()> 0 . De lo contrario, si no entra, espera hasta que comience la comunicación en serie. Ahora almacena los datos recibidos en una variable inputdata = Serial1.read (). Luego verifica el valor enviado desde la aplicación del terminal Bluetooth. Entonces, si el valor es 1, imprime el LED ENCENDIDO y hace que el pin (PA0) vaya ALTO mediante la declaración digitalWrite (pinout, HIGH) y si el valor es 0, imprime el LED APAGADO y hace que el pin (PA0) vaya a BAJO.
Pasos para conectar el módulo Bluetooth con un teléfono Android
Paso 1: - Abra Bluetooth desde el móvil después de cargar el código en STM32 desde Arduino IDE y darle energía al circuito. RECUERDE eliminar el pin RX y TX mientras se carga el código
Paso 2: - En los dispositivos disponibles, seleccione HC-05 e ingrese la contraseña como 1234
Paso 3: - Después del emparejamiento, abra la aplicación Terminal Bluetooth y seleccione conectar un dispositivo y seleccione HC-05 como se muestra a continuación
Paso 4: - Después de conectarse con el Módulo Bluetooth HC-05, proporcione valores en el terminal 1 o 0 para encender y apagar el LED. También recibirá un mensaje de que el LED está encendido o apagado.