Prueba de comandos Bluetooth AT

Bluetooth es un estándar de tecnología inalámbrica popular diseñado para intercambiar datos en distancias cortas. Bluetooth es tan común que ahora forma parte de los teléfonos inteligentes y está presente en muchos dispositivos integrados. Muchos dispositivos portátiles también utilizan Bluetooth para emparejarse con sus accesorios o co-dispositivos. La interfaz Bluetooth utiliza ondas de radio UHF en la banda ISM de 2,4 GHz a 2,485 GHz. Fue inventada por el proveedor de telecomunicaciones Ericsson en 1994 y desarrollada por el Bluetooth Special Interest Group. Una conexión Bluetooth tiene un alcance de 10M a 100M.
Hacer que los dispositivos integrados sean compatibles con Bluetooth es una tendencia popular. El módulo Bluetooth HC-05 es un módulo Bluetooth de uso común y ampliamente disponible que se puede agregar a un proyecto integrado para habilitar Bluetooth. El módulo puede funcionar como Maestro y Esclavo. El módulo se conecta a un microcontrolador mediante comunicación serie. Es básicamente un transceptor de radio de 2,4 GHz con velocidad de datos V2.0+ mejorada con modulación de 3 Mbps. El módulo puede funcionar en dos modos:
1. Modo de trabajo de conexión automática
2. Solicitar modo de trabajo de respuesta
En modo de trabajo automático, el módulo puede funcionar en cualquiera de las tres funciones: Maestro, Esclavo y Loopback. En este modo, el módulo sigue la ruta estándar para establecer conexión e intercambiar datos. En el modo de respuesta a solicitud, el usuario puede configurar parámetros de control enviando comandos AT. Para ingresar al modo AT, el pin 34 del módulo debe estar conectado a la fuente de alimentación.
Los módulos tienen seis pines de uso común, además de pines de entrada/salida programables y pines para comunicación vía UART, SPI, USB y PCM síncrono. El pin 34 es un pin de entrada/salida programable designado como pin clave.
Para configurar el módulo en modo AT, el pin clave del módulo debe estar conectado al microcontrolador. Inicialmente debe configurarse en lógica BAJA y, una vez encendido el módulo, debe configurarse en lógica ALTA para ingresar al modo AT. Si el pin del interruptor es inicialmente lógico ALTO, la velocidad en baudios para la comunicación en serie con el módulo se establecerá en 38,400 bits por segundo, incluso antes de que el módulo esté listo para ingresar al modo de trabajo de respuesta a solicitud. La velocidad en baudios deseada para la inicialización del módulo es de 9600 bits por segundo y se establece en el valor cuando el pin del interruptor está en ALTO después de encender el módulo.
En este proyecto, se utiliza Arduino Pro Mini para pasar comandos AT al módulo Bluetooth. La placa Arduino se conecta al módulo Bluetooth y al puerto serie virtual de una computadora de escritorio. Los comandos AT se pasan desde una aplicación de hiperterminal al Arduino Pro Mini. La placa Arduino escribe estos comandos en el módulo Bluetooth. Las respuestas del módulo Bluetooth se leen en serie y se pasan a la aplicación hiperterminal en el escritorio.
El boceto de Arduino simplemente crea y abre dos puertos de comunicación en serie para intercambiar datos entre el módulo Bluetooth y la computadora de escritorio. El código Arduino se escribe en el IDE de Arduino y se escribe en la placa mediante 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 –

Sistema de automação residencial baseado na Internet
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:
Tabela listando conexões de circuito entre o módulo Bluetooth HC-05 e o Arduino Pro Mini
Fig. 2: Tabla que enumera las conexiones del circuito entre el módulo Bluetooth HC-05 y el Arduino Pro Mini
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.
El módulo Bluetooth HC-05 admite los siguientes comandos AT:
Y.No Dominio Respuesta Parámetro
1 EN EL DE ACUERDO
dos EN+REINICIAR DE ACUERDO
3 ¿EN+VERSIÓN? +VERSIÓN: DE ACUERDO Parámetro: versión de firmware
4 EN+ORGL DE ACUERDO
5 ¿AL+FIN? +DIRECCIÓN: DE ACUERDO Parámetro: dirección del módulo Bluetooth
6 EN+NOMBRE= DE ACUERDO Parámetro: nombre del módulo Bluetooth (predeterminado: HC-05)
¿EN+NOMBRE? +NOMBRE: OK (/FALLO) Parámetro: nombre del módulo Bluetooth (predeterminado: HC-05)
7 ¿AT+NOMBRER? 1. +NOMBRE: OK 2. FALLA Param1,Param 2: la dirección del dispositivo Bluetooth
8 EN+ROL= DE ACUERDO Parámetro: 0- Esclavo 1-Maestro 2-Esclavo-Lazo
¿PAPEL AT+? +ROLLO: DE ACUERDO Parámetro: 0- Esclavo 1-Maestro 2-Esclavo-Lazo
9 EN+CLASE= DE ACUERDO Parámetro: Clase de dispositivo
¿CLASE AT+? 1. + CLASE: OK 2. FALLA Parámetro: Clase de dispositivo
10 AT+IAC= 1. OK 2. FALLO Parámetro: GIAC (predeterminado: 9e8b33)
AT+IAC +IAC: DE ACUERDO Parámetro: GIAC (predeterminado: 9e8b33)
11 EN+INQM= , , 1. OK 2. FALLO Parámetro: 0——inquiry_mode_standard 1——inquiry_mode_rssi Param2: Número máximo de dispositivos Bluetooth para responder a Param3: Tiempo de espera (1-48: 1,28 s a 61,44 s)
¿AT+INQM? +INQM: , , DE ACUERDO Parámetro: 0——inquiry_mode_standard 1——inquiry_mode_rssi Param2: Número máximo de dispositivos Bluetooth para responder a Param3: Tiempo de espera (1-48: 1,28 s a 61,44 s)
12 AT+PSWD= DE ACUERDO Parámetro: código PIN (predeterminado 1234)
¿AT+PSWD? +PSWD: DE ACUERDO Parámetro: código PIN (predeterminado 1234)
13 EN+UART= , , DE ACUERDO Parám1: Baudios Parám2: Bit de parada Parám3: Paridad
¿AT+UART? +UART= , , DE ACUERDO Parám1: Baudios Parám2: Bit de parada Parám3: Paridad
14 AT+MODOC= DE ACUERDO Parámetro: 0 – conecta dirección fija 1 – conecta cualquier

dirección 2 – bucle esclavo

¿AT+ CMODO? + MODO C: DE ACUERDO Parámetro: 0 – conecta dirección fija 1 – conecta cualquier dirección 2 – bucle esclavo
15 EN+UNIR= DE ACUERDO Parámetro: Dirección fija (predeterminado 00:00:00:00:00:00)
¿AT+ CONECTAR? + ENCENDER: DE ACUERDO Parámetro: Dirección fija (predeterminado 00:00:00:00:00:00)
dieciséis EN+POLAR= DE ACUERDO Parámetro1: 0- LED de disparo bajo de PIO8 1- Disparador alto de PIO8

LED de parámetro 2: 0- LED de unidad baja de PIO9 1- LED de unidad alta de PIO9

¿EN+POLAR? + POLAR= , DE ACUERDO Parámetro1: 0- LED de unidad baja de PIO8 1- LED de unidad alta de PIO8 Param2: 0- LED de unidad baja de PIO9 1- LED de unidad alta de PIO9
17 EN+PIO= , DE ACUERDO Parámetro1: número de PIO Param2: nivel de PIO 0-bajo 1-alto
18 EN+IPSCAN= , , , DE ACUERDO Parámetro1: Intervalo de tiempo de consulta

Param2: duración de la consulta Param3: intervalo de búsqueda Param4: duración de la llamada

¿AT+IPSCAN? +IPSCAN: , , , DE ACUERDO Parám1: intervalo de tiempo de consulta Parám2: duración de la consulta Param3: intervalo de búsqueda Param4: duración de la llamada
19 EN+OLFEAR= , , , DE ACUERDO Param1: Tiempo máximo Param2: Tiempo mínimo Param3: Tiempo de reintento Param4: Tiempo de espera
¿AT+ olfatear? +OLIFERAR: , , , DE ACUERDO Param1: Tiempo máximo Param2: Tiempo mínimo Param3: Tiempo de reintento Param4: Tiempo de espera
20 EN+SENM= , 1. OK 2. FALLO Parámetro1:

0——sec_mode0+apagado

1——sec_mode1+ no_seguro

2——sec_mode2_ servicio

3—— tinta sec_mode3_l

4——sec_mode_unknown

Parámetro2:

0——hci_enc_mod e_off

1——hci_enc_mod e_pt_to_pt

2——hci_enc_mod e_pt_to_pt_and_b elenco

¿AT+SENM? +SENM: , DE ACUERDO Parámetro1:

0——sec_mode0+apagado

1——sec_mode1+ no_seguro

2——sec_mode2_servicio

3—— tinta sec_mode3_l

4——sec_mode_unknown

Parámetro2:

0——hci_enc_mod e_off

1——hci_enc_mod e_pt_to_pt

2——hci_enc_mod e_pt_to_pt_and_b elenco

21 AT+PMSAD= DE ACUERDO Parámetro: dirección del dispositivo autenticado
22 AT+ RMAD DE ACUERDO
23 AT+FSAD= 1. OK 2. FALLO Parámetro: Dirección del dispositivo
24 ¿AT+ADCN? +ADCN: DE ACUERDO Parámetro: Recuento de dispositivos
25 ¿AT+MRAD? +MRAD: DE ACUERDO Parámetro: Dirección del dispositivo recién autenticado
26 ¿ESTADO AT+? + ESTADO: DE ACUERDO Parámetro: “INICIALIZADO” “LISTO” “EMPAREJADO” “EMPAREJADO” “CONSULTA” “CONECTANDO” “CONECTADO” “DESCONECTADO” “NUKNOW”
27 EN+INICIACIÓN 1. OK 2. FALLO
28 AT+INQ +INQ: , , …. DE ACUERDO Parámetro1: Dirección Parámetro2: Clase de dispositivo Parámetro3: Intensidad de la señal RSSI
29 EN+INQC DE ACUERDO
30 EN+PAR= , 1. OK 2. FALLO Parámetro1: Dirección del dispositivo. Parámetro2: Tiempo de espera.
31 EN+ENLACE= 1. OK 2. FALLO Parámetro: Dirección del dispositivo
32 EN+DISCO 1. +DISC: ÉXITO OK 2. +DISC:LINK_LOSS OK 3. +DISC:NO_SLC OK 4. +DISC:TIMEOUT OK 5. +DISC:ERROR OK Parámetro: Dirección del dispositivo

33 EN+ENSNIFF= DE ACUERDO Parámetro: Dirección del dispositivo
34 EN+ EXSNIFF = DE ACUERDO Parámetro: Dirección del dispositivo

Fig. 3: Tabla que enumera los comandos AT del Módulo Bluetooth HC-05 y su respuesta

Durante la prueba del módulo Bluetooth, se pasaron los siguientes comandos para los cuales se recibió la respuesta proporcionada en la siguiente tabla.
Tabela listando codificação de cores para terminais do servo motor
Fig. 4: Diagrama de circuito del proyecto de prueba de comando Bluetooth AT basado en Arduino
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. Durante las pruebas, se observó que la velocidad en baudios inicialmente debe establecerse en 9600 bits por segundo, pero luego debe establecerse en 38400 bits por segundo para ejecutar comandos AT.
Consulte el código Arduino para aprender cómo la placa Arduino administra los datos en serie entre el escritorio y el módulo Bluetooth.

Guía de programación –

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.
Nota: Obtenga el código completo en la sección de códigos.
Esto completa el boceto de Arduino para el proyecto de prueba del módulo Bluetooth. Tome una computadora, monte el circuito, inicie una aplicación de hiperterminal y ensúciese las manos. Es hora de probar.

Código fuente del proyecto

###

 //Programa para
 #incluir
 SoftwareSerial mySerial(10, 11); // RX, TX
 configuración nula {
 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);
 }



###

Vídeo del proyecto

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.