Serial AT Commands con Arduino
Una de las grandes dificultades a la hora de poseer un dispositivo controlado con comandos
AT como un Bluetooth o un GPRS, es ser capaces de acceder al modo de configuración
para introducir estos comandos sin morir de aburrimiento en el intento.
Para ahorrar tiempo describiremos diferentes maneras de acceder a estos dispositivos
mediante comandos AT.
Para este ejemplo disponemos de un módulo Bluetooth HC-05 que podemos conectar al
puerto Serial de Arduino. Resumidamente hemos de conectar los pines de recepción (RX)
y transmisión (TX); que por defecto son los pines 0 y 1 respectivamente de nuestra placa
con los pines de transmisión (TX) y recepción (RX) del módulo de forma inversa; tal y
como se indica en la figura.
Lo más importante a tener en cuenta es que debemos de activar el modo de configuración
del Bluetooth a través de el PIN EN o KEY, que debe de estar activo con un voltaje y que
en este caso conectacmos al pin de 3,3V.
ATENCIÓN: Hay algunos módulos HC-05 que disponen de un botón diminuto y que hay
que apretar antes de conectarlo a la alimentación. En el momento en el que entre en modo
configuración; el LED parpadeará más lento de lo normal y podemos verificar que ha
cambiado de modo.
Arduino Serial AT Commands con Arduino
Serial AT Commands con Arduino
adrian May 24, 2015Arduino, Experience
Una de las grandes dificultades a la hora de poseer un dispositivo controlado con comandos
AT como un Bluetooth o un GPRS, es ser capaces de acceder al modo de configuración
para introducir estos comandos sin morir de aburrimiento en el intento.
Para ahorrar tiempo describiremos diferentes maneras de acceder a estos dispositivos
mediante comandos AT.
Para este ejemplo disponemos de un módulo Bluetooth HC-05 que podemos conectar al
puerto Serial de Arduino. Resumidamente hemos de conectar los pines de recepción (RX)
y transmisión (TX); que por defecto son los pines 0 y 1 respectivamente de nuestra placa
con los pines de transmisión (TX) y recepción (RX) del módulo de forma inversa; tal y
como se indica en la figura.
Lo más importante a tener en cuenta es que
debemos de activar el modo de configuración del Bluetooth a través de el PIN EN o KEY,
que debe de estar activo con un voltaje y que en este caso conectacmos al pin de 3,3V.
ATENCIÓN: Hay algunos módulos HC-05 que disponen de un botón diminuto y que hay
que apretar antes de conectarlo a la alimentación. En el momento en el que entre en modo
configuración; el LED parpadeará más lento de lo normal y podemos verificar que ha
cambiado de modo.
El siguiente código es una manera de poder comunicarse en modo configuración a través de
la placa Arduino. Desgraciadamente este modo requiere conectar y desconectar los cables
en el PIN 0 y 1 cada vez que se carga el programa, ya que la Arduino UNO, solo dispone
de estos dos pines para definir el Serial.
void setup(){
Serial.begin(38400);
Serial.println("AT+ADDR");
}
void loop(){
while (Serial.available()){
Serial.write(Serial.read());
}
}
Arduino Serial AT Commands con Arduino
Serial AT Commands con Arduino
adrian May 24, 2015Arduino, Experience
Una de las grandes dificultades a la hora de poseer un dispositivo controlado con comandos
AT como un Bluetooth o un GPRS, es ser capaces de acceder al modo de configuración
para introducir estos comandos sin morir de aburrimiento en el intento.
Para ahorrar tiempo describiremos diferentes maneras de acceder a estos dispositivos
mediante comandos AT.
Para este ejemplo disponemos de un módulo Bluetooth HC-05 que podemos conectar al
puerto Serial de Arduino. Resumidamente hemos de conectar los pines de recepción (RX)
y transmisión (TX); que por defecto son los pines 0 y 1 respectivamente de nuestra placa
con los pines de transmisión (TX) y recepción (RX) del módulo de forma inversa; tal y
como se indica en la figura.
Lo más importante a tener en cuenta es que
debemos de activar el modo de configuración del Bluetooth a través de el PIN EN o KEY,
que debe de estar activo con un voltaje y que en este caso conectacmos al pin de 3,3V.
ATENCIÓN: Hay algunos módulos HC-05 que disponen de un botón diminuto y que hay
que apretar antes de conectarlo a la alimentación. En el momento en el que entre en modo
configuración; el LED parpadeará más lento de lo normal y podemos verificar que ha
cambiado de modo.
El siguiente código es una manera de poder comunicarse en modo configuración a través de
la placa Arduino. Desgraciadamente este modo requiere conectar y desconectar los cables
en el PIN 0 y 1 cada vez que se carga el programa, ya que la Arduino UNO, solo dispone
de estos dos pines para definir el Serial.
void setup(){
Serial.begin(38400);
Serial.println("AT+ADDR");
}
void loop(){
while (Serial.available()){
Serial.write(Serial.read());
}
En este código introducimos los comandos AT desde el programa (NO desde el terminal) y
podemos ver la respuesta, pero no es la forma más cómoda.
A través de la librería SoftwareSerial se pueden cambiar estos dos pines para establecer la
comunicación y realizar lo anterior en tiempo real.
#include <SoftwareSerial.h>
SoftwareSerial BT(10,11); // RX | TX
long bps=38400;
void setup(){
Serial.begin(bps);
BT.begin(bps);
Serial.println("AT");
BT.println("AT");
}
void loop(){
String B= "." ;
if (BT.available()){
char c = BT.read() ;
Serial.print(c);
}
if (Serial.available()){
char c = Serial.read();
BT.print(c);
}
}
Si queremos seguir interactuando en tiempo real debemos buscar otras soluciones que
detallamos a continuación.
Otra de las opciones es utilizar una placa Arduino con varios puertos Serial; en este caso la
placa Arduino Mega dispone de varios pines serie Serial1(TX1, RX1); Serial2(TX2,
RX2); Serial3(TX3, RX3)
Éste código es de los más cómodos para utilizar, ya que podemos enviar, como recibir en el
momento la información de configuración a través del monitor. Así que no necesitaremos cargar
continuamente distintos sketches para configurar el módulo. Con esta opción tambén se pueden
conectar varios módulos Bluetooth y poder intercambiar información entre ellos, que es un buen
modo de desarrollo y aprendizaje para este fin.
void setup(){
Serial.begin(38400);
Serial1.begin(38400);
Serial1.println("AT");
}
void loop(){
while (Serial1.available()){
Serial.write(Serial1.read());
}
delay(50);
while (Serial.available()){
Serial1.write(Serial.read());
}
delay(50);
}
Por último tenemos una opción adicional que no requiere una placa intermediaria entre el
ordenador y el módulo Bluetooth. Y es la utilización de un adaptador USB UART
Este adaptador sigue siendo una comunicación serie conectada como los ejemplos anteriores en
sus pines RX y TX.
En lugar de instalar un programa en una placa; que en este caso no tenemos, lo que haremos será
abrir un terminal de comunicación a través de este USB para introducir comandos AT de forma
directa. Para Linux utilizo un terminal llamado Cutecom. En este terminal es necesario configurar
la comunicación a 38400 baudios, a 8 bits de paridad y 1 de bit de parada. Tal y como aparece en
la figura.
Cuando introduzcamos los distintos comandos podremos ver la respuesta en el momento.
Así que ya podemos jugar comodamente con los comandos Hayes de nuestros
dispositivos.
No solo podemos utilizar módulos Bluetooth, sino que también se pueden conectar otros
dispositivos como un GPRS SIM900 del que hablamos anteriormente.
P.D.: Acordáos de pulsar el botón del Bluetooth para habilitar el modo de configuración. Si
no funciona puede ser por esa tonteria y podemos perder mucho tiempo.