Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Neste tutorial Arduino Bluetooth, aprenderemos a usar o módulo HC-05 para controlar Arduino via comunicação Bluetooth. Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo para mais detalhes.

Visão Geral

Para este tutorial, fiz dois exemplos: controlar o Arduino usando um smartphone e controlar o Arduino usando um laptop ou PC. Para não sobrecarregar este tutorial, no meu próximo tutorial, aprenderemos como podemos configurar o módulo Bluetooth HC-05 e fazer uma comunicação Bluetooth entre duas placas Arduino separadas como dispositivos mestre e escravo.

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Antes de começarmos com o primeiro exemplo, controlando um Arduino usando um smartphone, vamos dar uma olhada mais de perto no módulo Bluetooth HC-05. Comparando-o com o módulo HC-06, que só pode ser definido como Escravo, o HC-05 pode ser definido como Mestre também, o que permite fazer uma comunicação entre duas placas Arduino separadas. Existem várias versões diferentes deste módulo, mas recomendo a que vem em uma placa breakout, porque assim é muito mais fácil de conectar. O módulo HC-05 é um módulo Bluetooth SPP (Serial Port Protocol), o que significa que ele se comunica com o Arduino via Comunicação Serial.

Você pode obter os componentes necessários para este tutorial Arduino em qualquer um dos sites abaixo:

  • Módulo Bluetooth HC-05
  • Placa Arduino
  • Protoboard e Jumpers

Esquemas do Circuito


Aqui está como precisamos conectar o módulo à placa Arduino.

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

O módulo específico que tenho pode ser alimentado de 3,6 a 6 volts, porque vem em uma placa breakout que contém um regulador de tensão. No entanto, o nível lógico de tensão dos pinos de dados é 3,3V. Portanto, a linha entre o Arduino TX (Pino de Transmissão, que tem saída 5V) e o RX do módulo Bluetooth (Pino de Recepção, que suporta apenas 3,3V) precisa ser conectada através de um divisor de tensão para não queimar o módulo. Por outro lado, a linha entre o pino TX do módulo Bluetooth e o pino RX do Arduino pode ser conectada diretamente porque o sinal de 3,3V do módulo Bluetooth é suficiente para ser aceito como nível lógico alto na placa Arduino.

Código Fonte do Exemplo de Comunicação Bluetooth Arduino

Agora, estamos prontos para fazer o código Arduino para habilitar a comunicação entre a placa Arduino e o smartphone. Faremos um exemplo simples, apenas ligando e desligando um LED, mas será bom o suficiente para entender a comunicação.

#define ledPin 7
int state = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400); // Taxa de comunicação padrão do módulo Bluetooth
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  if (state == '0') {
    digitalWrite(ledPin, LOW); // Desliga LED
    Serial.println("LED: OFF"); // Envia de volta, para o telefone, a String "LED: ON"
    state = 0;
  } else if (state == '1') {
    digitalWrite(ledPin, HIGH);
    Serial.println("LED: ON");
    state = 0;
  }
}

Descrição: Primeiro, precisamos definir o pino ao qual nosso LED será conectado e uma variável na qual armazenaremos os dados vindos do smartphone. Na seção setup, precisamos definir o pino do LED como saída e defini-lo como baixo imediatamente. Como mencionado anteriormente, usaremos a comunicação serial, então precisamos iniciar a comunicação serial a 38400 baud rate, que é a taxa de baud padrão do módulo Bluetooth. Na seção loop, com a função Serial.available(), verificaremos se há dados disponíveis na porta serial para serem lidos. Isso significa que, quando enviarmos dados para o módulo Bluetooth, essa declaração será verdadeira, então, usando a função Serial.read(), leremos esses dados e os colocaremos na variável "state". Então, se o Arduino receber o caractere '0', ele desligará o LED e, usando a função Serial.println(), enviará de volta ao smartphone, via porta serial, a String "LED: OFF". Além disso, resetaremos a variável "state" para 0 para que as duas linhas acima sejam executadas apenas uma vez. Note aqui que a variável "state" é inteira, então, quando recebemos o caractere '0' que vem do smartphone, o valor real da variável inteira "state" é 48, que corresponde ao caractere '0', de acordo com a tabela ASCII. É por isso que na declaração "if" estamos comparando a variável "state" a um caractere '0'. Por outro lado, se o caractere recebido for '1', o LED acenderá e a String "LED: ON" será enviada de volta.

Agora, o código está pronto para ser enviado, mas, para fazer isso, precisamos desconectar as linhas TX e RX porque, ao fazer upload, o Arduino usa a comunicação serial, então os pinos RX (pino digital 0) e TX (pino digital 1) estão ocupados. Podemos evitar esta etapa se usarmos os outros pinos TX e RX da placa Arduino, mas, nesse caso, teremos que usar a biblioteca SoftwareSerial.h para a comunicação serial.

Relacionado: Como Configurar e Parear Dois Módulos Bluetooth HC-05 como Mestre e Escravo | Comandos AT

Conectando o Smartphone ao Módulo Bluetooth HC-05 e ao Arduino

Agora, estamos prontos para conectar o smartphone ao módulo Bluetooth e ao Arduino. O que precisamos fazer aqui é ativar o Bluetooth e o smartphone encontrará o módulo Bluetooth HC-05.

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Então, precisamos parear os dispositivos e a senha padrão do módulo HC-05 é 1234. Após parearmos os dispositivos, precisamos de um aplicativo para controlar o Arduino. Existem muitos aplicativos na Play Store para esse propósito que funcionarão com o código Arduino que escrevemos. No entanto, fiz meu próprio aplicativo personalizado para este tutorial usando o aplicativo online MIT App Inventor. Este é um aplicativo ótimo e fácil de usar para construir aplicativos Android e, no meu próximo tutorial, você pode encontrar um guia detalhado passo a passo de como construir seu próprio aplicativo Android personalizado para seu projeto Arduino.

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Você pode baixar o app que fiz para este exemplo aqui:

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC
Arduino Bluetooth Tutorial Exemplo Android App - 1.38 MB

Com o botão de conexão, conectaremos o smartphone ao módulo Bluetooth e o texto de status abaixo do botão nos dirá se conectamos com sucesso. Usando os botões "Turn ON" e "Turn OFF", podemos ligar e desligar o LED. O texto acima dos botões é o que o Arduino envia de volta ao smartphone quando um botão particular é pressionado.

Controlando Arduino Usando Laptop ou PC via Comunicação Bluetooth

Vamos ver como podemos controlar o Arduino via Bluetooth usando um Laptop ou PC. Primeiro, precisamos parear nosso laptop ao módulo Bluetooth HC-05 e podemos fazer isso nas Configurações de Bluetooth do Laptop. O laptop descobrirá o módulo HC-05 e, usando a senha '1234', parearemos os dispositivos.

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Uma vez que parearmos os dispositivos, no Gerenciador de Dispositivos do Laptop, em Portas (COM e LPT), duas novas entidades aparecerão nomeadas "Standard Serial over Bluetooth link". A partir daqui, podemos ver o número da porta COM da porta serial através da qual os dispositivos se comunicarão.

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Continuaremos com o mesmo exemplo anterior, ligando e desligando um LED e enviando de volta uma string para o laptop, então usaremos o mesmo código Arduino descrito anteriormente.

Código Fonte Processing IDE

Agora, usando o Processing IDE, faremos um programa para controlar o Arduino. Aqui está o código fonte.

import processing.serial.*;

Serial myPort;
String ledStatus = "LED: OFF";

void setup() {
  size(450, 500);
  myPort = new Serial(this, "COM5", 38400); // Inicia comunicação serial
  myPort.bufferUntil('\n'); // Define até qual caractere os dados da porta serial serão lidos. O caractere '\n' ou 'Nova Linha'
}

void serialEvent(Serial myPort) {
  // Verifica dados disponíveis na Porta Serial
  ledStatus = myPort.readStringUntil('\n'); // Lê os dados enviados do Arduino (a String "LED: OFF/ON") e coloca na variável "ledStatus"
}

void draw() {
  background(237, 240, 241);
  fill(20, 160, 133); // Cor Verde
  stroke(33);
  strokeWeight(1);
  rect(50, 100, 150, 50, 10); // Botão Turn ON
  rect(250, 100, 150, 50, 10); // Botão Turn OFF
  fill(255);
  textSize(32);
  text("Turn ON", 60, 135);
  text("Turn OFF", 255, 135);
  textSize(24);
  fill(33);
  text("Status:", 180, 200);
  textSize(30);
  textSize(16);
  text("Programa feito por Dejan Nedelkovski,\n www.HowToMechatronics.com", 80, 320);
  text(ledStatus, 155, 240); // Imprime a string vinda do Arduino

  // Se botão "Turn ON" for pressionado
  if (mousePressed && mouseX > 50 && mouseX < 200 && mouseY > 100 && mouseY < 150) {
    myPort.write('1'); // Envia caractere '1' e isso ligará o LED
    // Destaca botões em vermelho quando pressionados
    stroke(255, 0, 0);
    strokeWeight(2);
    noFill();
    rect(50, 100, 150, 50, 10);
  }
  // Se botão "Turn OFF" for pressionado
  if (mousePressed && mouseX > 250 && mouseX < 400 && mouseY > 100 && mouseY < 150) {
    myPort.write('0'); // Envia caractere '0' e isso desligará o LED
    stroke(255, 0, 0);
    strokeWeight(2);
    noFill();
    rect(250, 100, 150, 50, 10);
  }
}

Descrição: Precisamos incluir a biblioteca Serial e criar um objeto serial para habilitar a comunicação serial, bem como definir uma variável String para o status do LED. Na seção setup, precisamos definir o tamanho da janela do programa e iniciar a comunicação serial. Quanto ao número da porta COM, aqui precisamos tentar um dos dois números de porta COM que notamos anteriormente no gerenciador de dispositivos. A próxima linha define o buffer da porta serial e, no nosso caso, é até haver uma nova linha e, na verdade, há uma nova linha cada vez que o Arduino envia a String "LED: OFF" ou "LED ON" por causa da função println(). Em seguida, usando a função serialEvent(), verificamos se há dados disponíveis na porta serial para serem lidos. Se houver, usando a função readStringUntil(), leremos esses dados da porta serial que foram enviados do Arduino e, no nosso caso, é a String "LED: OFF" ou "LED: ON".

Na função principal draw(), que se repete constantemente, fazemos todos os gráficos e funções do programa. Primeiro, definimos a cor de fundo, a cor de preenchimento, o tamanho e a cor do traço e, usando a função rect(), desenhamos os dois botões. Usando a função text(), imprimimos todos os textos, incluindo a string ledStatus que vem do Arduino. O que resta agora é tornar os botões funcionais. Então, usando a primeira declaração "if", delimitamos a área do botão "Turn ON", então, quando o botão for pressionado, o caractere '1' será enviado pela porta serial para o Arduino e isso ligará o LED. As próximas quatro linhas são usadas para destacar o botão quando pressionado. O mesmo procedimento vale para o botão "Turn OFF".

Domine Bluetooth Arduino: Tutorial do Módulo HC‑05 para Controle via Smartphone e PC

Agora, o programa está pronto. Quando clicarmos no botão executar, o programa ativará automaticamente a comunicação Bluetooth entre o laptop e o Arduino. O módulo Bluetooth HC-05 começará a piscar a cada dois segundos, o que indica que o módulo está conectado e poderemos controlar o LED usando nosso Laptop.

Isso é tudo para este tutorial, mas não se esqueça de conferir meu próximo tutorial, onde aprenderemos como podemos configurar o módulo Bluetooth HC-05 e fazer uma comunicação Bluetooth entre duas placas Arduino separadas como dispositivos mestre e escravo.

Também, sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo e não se esqueça de conferir minha coleção de Projetos Arduino.

Processo de manufatura

  1. Crie uma Fechadura RFID Segura com Arduino – Guia Passo a Passo
  2. Gerador de Ondas JX – Oscilador DDS Compatível com Arduino com Display OLED
  3. Módulo GPS u-blox LEA‑6H 02: Guia de Integração com Arduino e Python
  4. Sistema Avançado de Detecção de Quedas com Arduino, Windows IoT e Azure Cloud
  5. Controle Remoto de Carro com Arduino Uno e Bluetooth: Guia Passo a Passo
  6. Projeto Sensor de Impressão Digital com Arduino Nano – Tutorial Completo
  7. ArduRadio: Relógio Despertador DIY com Rádio FM Baseado em Arduino
  8. Cafeteira Inteligente com Arduino com Controle Bluetooth e Monitoramento de Temperatura
  9. Construa um Laptop com Raspberry Pi 3 e Arduino: Guia Passo a Passo
  10. Kit de Projeto Arduino Due: TFT, GPS, RTC, Sensores, Bluetooth e Joystick – Lista Completa de Componentes