Tutorial de Arduino en español.
Juan Antonio Villalpando
Volver al índice del tutorial
____________________________
68B.- Bluetooth. App Inventor. Comandos AT. Monitor Serie.
______________________________________________________________________________
1.- Comunicación entre App Inventor y Arduino por Bluetooth mediante el Monitor Serie.
p9A0_bluetooth_AT.aia
- La aplicación le envía un mensaje al Arduino por Bluetooth y se muestra en el Monitor Serie. El módulo Bluetooth está conectado a los terminales 2 y 3. Utiliza la librería <SerialSoftware.h> y la variable BT.
- Arduino mediante el Monitor Serie le envía un mensaje a la aplicación.
- Conectamos los cables de datos a los terminales 2 y 3 de Arduino.
App_MonitorSerie.ino |
// Juan A. Villalpando
// http://kio4.com/arduino/68B_Bluetooth_AI2_ComandosAT.htm
#include <SoftwareSerial.h>
SoftwareSerial BT(2,3);
String texto = "";
void setup(){
BT.begin(9600);
Serial.begin(9600);
}
void loop(){
if(BT.available()) {
Serial.write(BT.read());}
if(Serial.available()){
texto = Serial.readStringUntil('\n');
Serial.println(texto);
texto = texto + '\n';
BT.write(texto.c_str());}
}
|
______________________________
- Diseño.
______________________________
- Bloques.
______________________________________________________________________________
2.- Tenemos dos módulos Bluetooth. La app le envía comandos AT a un módulo y éste lo envía a otro.
p9A0_bluetooth_AT.aia
- La aplicación le envía un mensaje con comandos AT al módulo Bluetooth conectado a los terminales 2 y 3. Utiliza la librería <SerialSoftware.h> y la variable BT.
- El código de Arduino mediante Serial.println, pasa el comando AT al módulo conectado a los terminales 0 y 1.
Default parameter: Baud rate:9600N81, ID: linvor, Password:1234
AT
AT+BAUDx
AT+NAMEname
AT+PINxxxx
AT+PN
AT+PO
AT+PE
AT+VERSION
______________________________
- Diseño.
______________________________
- Bloques.
- Otro módulo parecido es el HC-05, este puede funcionar como servidor o cliente. Posiblemente tengas que configurarle la velocidad mediante los comandos AT para adaptarlo a App Inventor. Viene con 38400 baudios y tendrás que cambiarlo a 9600. Observa que tiene 6 terminales y un botón.
_________________________________
- Configuración. Cambio de baudios.
- Vamos a cambiarle los baudios de 38400 a 9600 mediante los comandos AT.
_______________________
- Comandos AT.
- Para programar con los comando AT cargamos en el Arduino este programa.
AT.ino |
#include <SoftwareSerial.h>
SoftwareSerial BT(10,11);
void setup()
{
BT.begin(38400);
Serial.begin(38400);
// BT.begin(9600);
// Serial.begin(9600);
}
void loop(){
if(BT.available()) {Serial.write(BT.read());}
if(Serial.available()){BT.write(Serial.read());}
}
|
- Programación en MODE 2.
- Para entrar en este modo de programación, desconectamos el cable de 5 V. Pulsamos el botoncito que tiene el módulo y estando pulsado ese botoncito, conectamos el cable de 5 V. Soltamos el botoncito.
- El LED del módulo parpadeará lentamente.
- Vamos al Monitor Serie, lo ponemos a 38400, ya en el Modo 2 esa es su velocidad de programación.
- Escribimos AT
- Debemos obtener OK
- Para ver los baudios a los que está configurado escribimos:
AT+UART?
- Obtenemos:
+UART: 38400,0,0
- Para cambiarlo a 9600 escribimos.
AT+UART=9600,0,0
- Ya lo tenemos configurado a 9600.
- En este tutorial tenemos más información:
- https://naylampmechatronics.com/blog/24_configuracion-del-modulo-bluetooth-hc-05-usando-comandos-at.html
------------------------------------------------
- El Modo 1 de programación se realiza alimentando al módulo y una vez alimentado pulsando el botoncito.
- En este modo la velocidad de conexión será la última que tuviera configurada.
- Utilizamos este modo cuando conocemos a los baudios que tiene configurado, si no lo conocemos podemos utilizar el Modo 2 ya que en ese modo la programación siempre es a 38400.
_________________________________________________________________
- Vamos a realizar una aplicación con App Inventor.
- Arduino generará dos números aleatorios del 0 al 100 con dos decimales, observa el código.
- Por ejemplo:
48.25,71.53
- Cada 3 segundos enviará ese par de números separado por coma, mediante Bluetooth a la aplicación.
_________________________________
- Arduino IDE. Carga del Sketch.
- Desconectamos todos los cables del módulo y cargamos este programa:
Aleatorio_BT.ino |
const unsigned long interval= 3000;
unsigned long previousMillis;
unsigned long currentMillis;
String send_this;
void setup() {
Serial.begin(9600);
}
void loop() {
currentMillis = millis();
if (currentMillis - previousMillis >= interval){
float t = random(0,10000) / 100.0;
float h = random(0,10000) / 100.0;
send_this = String(t,2) + "," + String(h,2);
Serial.println(send_this);
previousMillis = millis();
}
}
|
- Observa que no he incluido la librería <SoftwareSerial.h>
- Eso es porque ahora conectaremos el módulo a los terminales 0 y 1.
_________________________________
- App Inventor.
p9A0i_bluetooth_aleatorios_V2.aia
- Esta aplicación recibirá el par de números separado por coma mediante Bluetooth
- Convertirá ese dato a una lista de dos elementos.
- Mostrará cada elemento.
_____________________
- Diseño.
_____________________
- Bloques.
_______________________________
|