ARDUINO: Comunicación SERIAL con módulo Bluetooth



En esta práctica se verá la comunicación serial con el módulo bluetooth HC-06, también podrán hacerlo con el HC-05, les recordamos que esta es la base para que aprendan a usarlo, también es necesario que carguen el programa antes de conectar el módulo a los pines RX y TX del Arduino, ya que si no se hace esto, el programa no se cargará.

La aplicación que se usará la pueden bajar de este enlace: Descargar app

Materiales:

  • 1x Arduino

  • 1x HC-06 o HC-05

  • 1x Módulo Relay

  • Fuente de 5V

  • 1x Protoboard

  • Jumpers

Esquema de montaje

Para esta práctica se quiso poner el ejemplo de prender un foco mediante una señal enviada por bluetooth desde nuestro teléfono móvil, cabe recalcar que el módulo bluetooth debe de estar apareado con su teléfono.

 

Código

Se realizó un código normal, se definió la inicialización del serial a 9600 baudios pues también es la velocidad de nuestro módulo bluetooth, recuerde que ambos extremos deben de tener la misma velocidad. En el setup está lo interesante, ya que con esta condición dentro del if detectará si tenemos datos, los datos que se enviarán son la letra A y B, recuerden que el serial solo acepta ASCII y por eso se usan caracteres.

Ahora, si hay datos entrará dentro del if y esos datos se le asignan a la variable dato, aquí está lo interesante, usamos un switch case que se explicó en los primeros temas, el switch recibe como parámetro de casos la variable dato y es ahí cuando entra en los case, recuerde que usamos char y van entre comillas ‘’, si se recibe la letra A entonces enviamos un pulso alto para activar nuestro relevador y se prende el foco, permanece prendido hasta que se envíe la letra B, será cuando se envíe un pulso bajo al relevador.

También se usa un default para que no haya problemas de ruido y de acciones por si solas del relevador, como podrá observar es muy fácil hacer eso y controlar cargas, motores, etc. Si usted amplía los casos y usa un módulo con un mayor número de relevadores, podrá controlar muchísimas cosas en su casa o trabajo, obviamente también habrá que diseñar una aplicación móvil, claro esto se le deja al lector ya que también debe de tener la iniciativa de investigar por sí solo.

#define FOCO 2

char dato;

void setup() {
  Serial.begin(9600);
  pinMode(FOCO, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    dato = Serial.read();
  }
  switch (dato) {
    case 'A':
      digitalWrite(FOCO, HIGH);
      break;
    case 'B':
      digitalWrite(FOCO, LOW);
      break;
    default:
      digitalWrite(FOCO, LOW);
      break;
  }
}