Bluetooth + móbil

Descrición

bluetooth

Imos conectar ao Arduíno un módulo Bluetooth, o que nos vai permitir comunicarnos co ordenador ou cun dispositivo móbil sen utilizar cable (máximo 10m).

As prácticas están relacionadas coa realización de aplicacións móbiles con App Inventor, que podes ver nesta sección.

Os módulos Bluetooth máis comúns para Arduíno son os HC-05 (6 pins) e HC-06 (4 pins).

O HC-06 só pode actuar como escravo, e o HC-05 pode actuar como mestre ou como escravo.

Montaxe

hc-05Pins do módulo bluetooth:

O que imos utilizar aquí é o módulo HC-05, pero podes usar igualmente un HC-06, que só ten os pins VCC, GND, TX e RX

  • VCC e GND son os pins de alimentación.
  • Tx e Rx son os pins de comunicación serie (transmisión e recepción de datos).

Estes non os imos usar:

  • State: Podemos conectar un LED a este pin para visualizar cando se comuniquen datos. Non o imos usar
  • Key: Utilízase para configurar o módulo bluetooth (cambiar o nome, contrasinal, parámetros, etc.)

bluetooth_proteccion

Protección do módulo bluetooth:

O pin de recepción de datos Rx do módulo bluetooth non debería superar unha voltaxe de 3,3V, así que se traballamos con 5V deberiamos protexer o módulo.

Se conectamos un divisor de tensión tal e como aparece na imaxe, con resistencias de 100Ω e 220Ω, ao pin Rx chegarán como máximo 3,4V cando o pin Tx do Arduíno envíe 5V, polo que evitaremos que o módulo se queime cando o utilizamos de maneira continua.

Conexións:

Para facer a primeira práctica debemos conectar os pins Tx e Rx de forma cruzada cos Tx e Rx de Arduíno, como vimos na sección de comunicación entre Arduínos, pero desta maneira debemos desconectar o módulo bluetooth cada vez que queiramos cargar un programa, pois os pins serie Tx e Rx tamén son usados polo cable USB para a comunicación serie co ordenador. Esta configuración é útil cando queremos substituír o cable USB por bluetooth na comunicación co ordenador, pero non para o uso simultáneo.

Tamén existe a posibilidade de habilitar outros pins do Arduíno como pins Tx e Rx a través da librería SoftwareSerial.h. É o que imos facer na segunda práctica establecendo Rx no pin 10 e Tx no pin 11. Esta configuración é útil cando queremos manter o USB para a comunicación co ordenador e o bluetooth para comunicarnos con outro dispositivo, como por exemplo un teléfono móbil.

Estas son as conexións para a primeira e a segunda práctica respectivamente:

bluetooth_proteccion1bluetooth_proteccion2

Programas

1. Acender e apagar un LED

1. Acender e apagar un LED: Imos acender e apagar un LED desde o móbil utilizando unha app específica.

A maneira de programar é similar a como o fariamos coa consola serie. Neste caso imos indicar que un LED se acenda cando reciba un “a” e se apague cando reciba un “b”.

// Declaración de variables

int led=13;
char val;      // variable na que imos gardar os datos que enviamos

// Configuración

void setup() { 
  Serial.begin(9600);   // Iniciamos a comunicación co módulo Bluetooth
  pinMode(led, OUTPUT);  // Led como saúda
}

// Programa
 
void loop() { 
  
  while(! Serial.available());   // Agarda a que haxa datos no buffer
  val = Serial.read();           // asigna eses datos á variable val
  
  if( val =='a'){                // Se recibe "a" acende o LED
    digitalWrite(13, HIGH);
  }
  if( val =='b'){                // Se recibe "b" apaga o LED
    digitalWrite(13, LOW);
  }
  
}

Desconecta o módulo bluetooth desconectando o cable alimentación Vcc, instala este programa no Arduíno e volve a conectar o bluetooth.

2. Outros pins

2. Outros pins: Para non ter que andar a desconectar o módulo bluetooth cada vez que queremos cargar un programa na placa podemos habilitar a través de software outros pins do Arduíno para a comunicación serie. Imos utilizar a librería SoftwareSerial que vén por defecto no IDE e habilitar os pins 10 e 11 como Rx e Tx respectivamente. O módulo bluetooth debe conectarse de maneira cruzada con eses pins.

Isto vai permitirnos, ademais, poder utilizar a consola serie ao mesmo tempo que utilizamos a comunicación por bluetooth.

#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11); // RX, TX

// Declaración de variables

int led=13;
char val;      // variable na que imos gardar os datos que enviamos

// Configuración:

void setup() {
  
  // Bluetooth serie
  BT.begin(9600);       // Comunicación con Bluetooth
  Serial.begin(9600);   // Comunicación coa consola

  pinMode(led, OUTPUT);  // Led como saída
}

// Programa
 
void loop() { 
  
  while(! BT.available());   // Agarda a que haxa datos no buffer
  val = BT.read();           // asigna eses datos á variable val
  Serial.write(val);
  
  if( val =='a'){                // Se recibe "a" acende o LED
    digitalWrite(13, HIGH);
    Serial.println(" - Aceso");
  }
  if( val =='b'){                // Se recibe "b" apaga o LED
    digitalWrite(13, LOW);
    Serial.println(" - Apagado");
  }
  
}

Agora descarga a aplicación para Android Arduino bluetooth controller de Play Store.

app_bluetooth

Conecta co dispositivo HC-05 utilizando o contrasinal por defecto “1234”. Despois elixe “Switch mode” e configúrao de xeito que para acender envíe o carácter a e para apagar o carácter b.

app_1conectar app_2modo app_3config

Unha vez feito xa podes acender e apagar o LED desde o teu móbil.

Propostas

  1. Explora outras posibilidades da aplicación Arduino bluetooth controller ou busca outras aplicacións que poidan ser do teu interese. Hai moitas.
  2. Fai as túas propias aplicacións con App Inventor. Tes unha guía para traballar en tecnoloxia.org/appinventor

 


Deixa un comentario