En el proyecto anterior, se analizó cómo se puede configurar el módulo Bluetooth para operar en el modo de trabajo de solicitud de respuesta. El proyecto anterior también detalló los comandos AT disponibles para el módulo Bluetooth HC-05. Los comandos AT solo se pueden utilizar en el modo de trabajo de solicitud de respuesta. Los comandos AT son muy útiles y se pueden utilizar para cambiar o configurar varios parámetros de control del módulo. En este proyecto, se utilizarán y probarán algunos de los comandos AT. El proyecto demostrará el uso de comandos AT para cambiar el nombre del dispositivo, la contraseña, el modo y la velocidad en baudios del módulo. Al final de la demostración, se restaurarán las configuraciones predeterminadas mediante comandos AT.
El circuito utilizado para probar los comandos AT es similar al circuito del proyecto anterior. El módulo Bluetooth está interconectado con un Arduino Pro Mini y la placa Arduino está conectada a una computadora. Los comandos AT se pasan a la placa Arduino a través de una aplicación de hiperterminal que luego la placa Arduino pasa en serie al módulo Bluetooth. Las respuestas del módulo Bluetooth, a su vez, son leídas en serie por la placa Arduino y pasadas a la aplicación Hyper Terminal para mostrarlas en el escritorio.
El Arduino Pro Mini puede enviar comandos AT y devolver respuestas controlando la comunicación en serie entre el módulo Bluetooth y la computadora. El boceto de Arduino para esto se escribió en el IDE de Arduino y se grabó en la placa usando AVR Dude.
Componentes necesarios –
1. Arduino ProMini
2. Módulo Bluetooth HC-05
3. Computadora de escritorio o portátil
4. Cable USB
Herramientas de software necesarias –
1. ArduinoIDE
2. Cualquier aplicación de escritorio Hyper Terminal como Arduino Serial Monitor
Conexiones de circuito –
Figura 1: Prototipo de proyecto de prueba de comando Bluetooth AT basado en Arduino
El Arduino Pro Mini gestiona el intercambio de datos entre la aplicación serie del ordenador de sobremesa y el módulo Bluetooth. El circuito se ensambla de la siguiente manera:
Fuente de alimentación: el circuito funciona con una batería que alimenta directamente la placa Arduino y el módulo Bluetooth.
Módulo Bluetooth HC-05: el módulo Bluetooth HC-05 es un módulo de protocolo de puerto serie. Opera en la banda ISM de 2,4 GHz con V2.0 + EDR (Enhanced Data Rate). Puede funcionar en modo Maestro y Esclavo. El módulo Bluetooth tiene seis pines: Habilitar, VCC, Tierra, Transmitir datos (TxD), Recibir datos (RxD) y Estado. Los pines Enable y State no se utilizan y, por lo tanto, no están conectados al circuito. Los pines VCC y Tierra están conectados a VCC y Tierra comunes. Los pines TxD y RxD del módulo están conectados a los pines 10 y 11 del Arduino Pro Mini respectivamente. Estas conexiones se resumen en la siguiente tabla:
Fig. 2: Tabla que enumera las conexiones del circuito entre el Arduino Pro Mini y el módulo Bluetooth HC-05
Además de estas conexiones, el pin 34 del módulo está conectado al pin 9 del Arduino Pro Mini.
Computadora de escritorio: la computadora está conectada a la placa Arduino mediante un cable USB y transfiere datos en serie a la placa a través de una comunicación en serie virtual utilizando una aplicación de hiperterminal.
Cómo funciona el proyecto –
El dispositivo del proyecto recibe los comandos AT ingresados por el usuario de la aplicación hiperterminal. Los comandos se leen en serie mediante comunicación en serie virtual y se pasan al módulo Bluetooth. El módulo Bluetooth responde a los comandos AT y las respuestas se leen nuevamente en serie y se transfieren a la aplicación de escritorio.
En primer lugar, se probó el comando AT para cambiar el nombre del módulo Bluetooth. La mayoría de los módulos vienen con un nombre predeterminado. Al igual que el módulo utilizado durante la prueba tenía un nombre: hC-2010-06-01. Muchos módulos pueden tener el mismo nombre. Cuando se utilizan comandos AT, se puede asignar cualquier nombre definido por el usuario al módulo. Como si hubiera muchos módulos, se les puede dar nombres como Bluetooth 1, Bluetooth 2, Bluetooth 3, etc. Durante las pruebas, el nombre del módulo se cambió a Engineers Garage.
Primero, se verificó el nombre del módulo actual pasando el siguiente comando:
AT+NOMBRE
A lo que la respuesta recibida fue la siguiente –
EN+NOMBRE = +NOMBRE:hC-2010-06-01
Luego, se asignó el nuevo nombre al módulo pasando el siguiente comando:
AT+NOMBRE = GARAJE DE INGENIEROS
Para verificar el cambio de nombre, nuevamente se envió el siguiente comando:
¿EN+NOMBRE?
A lo que la respuesta recibida fue la siguiente –
AT+NOMBRE = GARAJE DE INGENIEROS
Para verificar la contraseña actual, se pasó el siguiente comando:
AT+PSWD
A lo que la respuesta recibida fue la siguiente –
AT+PSWD = +PSWD:1234
Luego se asignó la nueva contraseña al módulo pasando el siguiente comando:
EN+PSWD=996696
Para verificar el cambio de contraseña, nuevamente se envió el siguiente comando:
¿AT+PSWD?
A lo que la respuesta recibida fue la siguiente –
+PSWD=996696
Para verificar la función actual del módulo, se pasó el siguiente comando:
EN+PAPEL
A lo que la respuesta recibida fue la siguiente –
+PAPEL:0
Luego, la nueva función se asignó al módulo pasando el siguiente comando:
EN+PAPEL=1
Para verificar el cambio en la función del dispositivo, nuevamente se envió el siguiente comando:
¿EN+PAPEL?
A lo que la respuesta recibida fue la siguiente –
+PAPEL=1
El módulo Bluetooth puede tener dos funciones: esclavo o maestro. Configurar la función en 0 convierte al dispositivo en esclavo, mientras que configurar la función en 1 lo convierte en el dispositivo maestro.
Finalmente, se cambió la velocidad en baudios. Para verificar la velocidad en baudios actual, se pasó el siguiente comando:
EN+UART
A lo que la respuesta recibida fue la siguiente –
AT+UART = 38400,0,0
Para cambiar la velocidad en baudios, se pasó el siguiente comando:
EN+UART=9600,1,0
Para verificar la velocidad en baudios modificada, se pasó el siguiente comando:
¿AT+UART?
A lo que la respuesta recibida fue la siguiente –
+UART=9600,1,0
En el comando AT+UART, el primer parámetro es la velocidad en baudios para la comunicación en serie, el segundo parámetro es el bit de parada que se establece en un solo bit si se pasa 0 y se establece en 2 bits si se pasa 1 y el tercer parámetro es bit de paridad que se puede establecer en 0 o 1.
Por lo tanto, durante las pruebas de los comandos AT, se cambiaron los siguientes parámetros de control:
Fig. 3: Tabla que enumera los comandos AT del módulo Bluetooth HC-05 y los cambios en sus configuraciones predeterminadas
Los comandos AT para cambiar estos parámetros de control se resumen en la siguiente tabla:
Fig. 4: Tabla que enumera los comandos AT para cambiar los parámetros de control
Para restaurar, se deben pasar las configuraciones predeterminadas del módulo Bluetooth después del comando AT –
¿AT+ORGL?
Estas respuestas se observaron en la aplicación Hyper Terminal. Si no se reciben respuestas en la aplicación de escritorio, se deben verificar las conexiones del circuito y verificar la velocidad de transmisión. La velocidad en baudios del puerto serie del software y del módulo Bluetooth debe ser la misma para permitir que se ejecuten los comandos AT.
Guía de programación –
El boceto Arduino gestiona la comunicación de datos entre la computadora y el módulo Bluetooth. Para habilitar la comunicación serie virtual, es necesario importar SoftwareSerial.h. Se crea una instancia de un objeto de tipo serie de software y se asigna a los pines 10 y 11 del Arduino.
#incluir
SoftwareSerial mySerial(10, 11); //RX,TX
Se llama a la función de configuración y la velocidad en baudios para comunicarse con la PC se establece en 9600 bits por segundo. El pin 9, que está conectado al pin 34 del módulo Bluetooth, está configurado para salida digital y configurado en lógica ALTA usando los métodos pinMode y digitalWrite. Algunos mensajes iniciales se envían en serie a la aplicación del hiperterminal y la velocidad en baudios del puerto serie del software se establece en 38.400 bits por segundo para la comunicación con el módulo Bluetooth.
configuración vacía {
Serie.begin(9600);
pinMode(9,SALIDA); escritura digital (9, ALTO);
Serial.println(“Taller de ingenieros:”);
Serial.println(“Ingrese comandos AT:”);
miSerial.begin(38400);
}
Se llama a la función de bucle en la que se comprueba la respuesta del módulo Bluetooth y, si está disponible, se escribe en el puerto serie. Del mismo modo, si hay algún comando AT de escritorio disponible, se leerá y escribirá en el módulo Bluetooth.
bucle vacío.
Nota : consulte la sección de códigos para obtener la codificación completa.
Esto completa el boceto de Arduino para el proyecto de configuración del módulo Bluetooth. Tome una computadora, monte el circuito, inicie una aplicación de hiperterminal y ensúciese las manos. Es hora de personalizar tu módulo.
Código fuente del proyecto
###
//Programa para #incluirSoftwareSerial mySerial(10, 11); // RX, TX configuración vacía { Serie.begin(9600); pinMode(9,SALIDA); escritura digital (9, ALTO); Serial.println("Garaje de ingenieros:"); Serial.println("Ingrese comandos AT:"); miSerial.begin(38400); } bucle vacío { si (mySerial.disponible) Serial.write(mySerial.read); si (Serie.disponible) mySerial.write(Serial.read); } ###