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

Módulo Bluetooth Arduino e HC-05 Tutorial Completo


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

Visão geral


Para este tutorial fiz dois exemplos, controlando o Arduino usando um smartphone e controlando o Arduino usando um laptop ou um 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.

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

Você pode obter os componentes necessários para este tutorial do Arduino em qualquer um dos sites abaixo:
  • HC-05 Módulo Bluetooth …………….
  • Placa Arduino ………………………………
  • Breadboard e jump wires ……… 

Esquema do circuito



Veja como precisamos conectar o módulo à placa Arduino.

O módulo específico que tenho pode ser alimentado de 3,6 a 6 volts, pois vem em uma placa de fuga que contém um regulador de tensão. No entanto, o nível de tensão lógica dos pinos de dados é de 3,3 V. Assim, a linha entre o Arduino TX (Transmit Pin, que tem saída de 5V) e o módulo Bluetooth RX (Receive Pin, 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, pois o sinal de 3,3V do módulo Bluetooth é suficiente para ser aceito como uma lógica alta na placa Arduino.

Código-fonte do exemplo de comunicação Bluetooth do Arduino


Então, agora estamos prontos para fazer o código Arduino para permitir 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); // Default communication rate of the Bluetooth module
}

void loop() {
  if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }

 if (state == '0') {
  digitalWrite(ledPin, LOW); // Turn LED OFF
  Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON"
  state = 0;
 }
 else if (state == '1') {
  digitalWrite(ledPin, HIGH);
  Serial.println("LED: ON");;
  state = 0;
 } 
}Code language: Arduino (arduino)

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 de configuração, precisamos definir o pino do LED como saída e configurá-lo para baixo imediatamente. Como mencionado anteriormente, usaremos a comunicação serial, portanto, precisamos iniciar a comunicação serial na taxa de transmissão de 38400, que é a taxa de transmissão padrão do módulo Bluetooth. Na seção de 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 esta declaração será verdadeira, então usando a função Serial.read() vamos ler esses dados e colocá-los na variável “state”. Assim, se o Arduino receber o caractere '0' ele desligará o LED e usando a função Serial.println() ele enviará de volta para o smartphone, via porta serial, a String “LED:OFF”. Além disso, redefiniremos a variável “state” para 0 para que as duas linhas acima sejam executadas apenas uma vez. Observe 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 o ASCII table.. É por isso que na declaração “if” estamos comparando a variável “state” com 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 carregado, mas para isso precisamos desconectar as linhas TX e RX porque ao fazer o upload o Arduino usa a comunicação serial para que os pinos RX (digital pin 0) e TX (digital pin1) estejam 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 emparelhar 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.

Em seguida, precisamos emparelhar os dispositivos e a senha padrão do módulo HC-05 é 1234. Depois de emparelharmos os dispositivos, precisamos de um aplicativo para controlar o Arduino. Existem muitos aplicativos na Play Store para esse fim que funcionarão com o código do Arduino que escrevemos. No entanto, criei meu próprio aplicativo personalizado para este tutorial usando o aplicativo online do MIT App Inventor. Este é um aplicativo ótimo e fácil de usar para criar aplicativos Android e no meu próximo tutorial você pode encontrar um guia passo a passo detalhado sobre como criar seu próprio aplicativo Android personalizado para o seu projeto Arduino.

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

Exemplo de tutorial de Bluetooth do Arduino para Android

1 arquivo(s) Download de 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 informará 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 é aquele que o Arduino está enviando de volta ao smartphone quando um determinado botão é pressionado.

Controlando o Arduino usando um laptop ou PC via comunicação Bluetooth


Vamos ver como podemos controlar o Arduino via Bluetooth usando um Laptop ou um PC. Então, primeiro precisamos emparelhar nosso laptop com o 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', emparelharemos os dispositivos.

Assim que emparelharmos os dispositivos no Laptop Device Manager, em Ports (COM &LPT), duas novas entidades aparecerão denominadas “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.

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.

Processando o código-fonte do IDE


Agora usando o Processing IDE vamos fazer 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); // Starts the serial communication
  myPort.bufferUntil('\n'); // Defines up to which character the data from the serial port will be read. The character '\n' or 'New Line'
}
void serialEvent (Serial myPort){ // Checks for available data in the Serial Port
  ledStatus = myPort.readStringUntil('\n'); //Reads the data sent from the Arduino (the String "LED: OFF/ON) and it puts into the "ledStatus" variable
}

void draw(){
  background(237, 240, 241);
  fill(20, 160, 133); // Green Color
  stroke(33);
  strokeWeight(1);
  rect(50, 100, 150, 50, 10);  // Turn ON Button
  rect(250, 100, 150, 50, 10); // Turn OFF Button
  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("Program made by Dejan Nedelkovski,\n     www.HowToMechatronics.com", 80, 320);

  text(ledStatus, 155, 240); // Prints the string comming from the Arduino
  
  // If the button "Turn ON" is pressed
  if(mousePressed && mouseX>50 && mouseX<200 && mouseY>100 && mouseY<150){
    myPort.write('1'); // Sends the character '1' and that will turn on the LED
    // Highlighs the buttons in red color when pressed
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(50, 100, 150, 50, 10);
  }
  // If the button "Turn OFF" is pressed
  if(mousePressed && mouseX>250 && mouseX<400 && mouseY>100 && mouseY<150){
    myPort.write('0'); // Sends the character '0' and that will turn on the LED
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(250, 100, 150, 50, 10);
  }
}Code language: Arduino (arduino)

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 de configuração, precisamos definir o tamanho da janela do programa e iniciar a comunicação serial. Quanto ao número da porta COM, precisamos tentar um dos dois números da porta COM que notamos anteriormente no gerenciador de dispositivos. A próxima linha define o buffer da porta serial e no nosso caso é até que haja uma nova linha e na verdade haja uma nova linha toda vez que o Arduino enviar a String “LED:OFF” ou “LED ON” por causa do println( ) função. Em seguida, usando a função serialEvent() verificamos se há dados disponíveis na porta serial para serem lidos. Se sim, usando a função readStringUntil() vamos ler esses dados da porta serial que foi enviada do Arduino e no nosso caso é a String “LED:OFF” ou “LED:ON”.

Na função main draw(), que se repete constantemente, fazemos todos os gráficos e funções do programa. Então primeiro precisamos definir 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 todo o texto, incluindo a string ledStatus que vem do Arduino. O que resta agora é tornar os botões funcionais. Então, usando a primeira instrução “if” nós confinamos 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 que acenderá o LED. As próximas linhas são usadas para destacar o botão quando ele é pressionado. O mesmo procedimento vale para o botão “Desligar”.

Agora o programa está pronto, então, 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 por este tutorial, mas não se esqueça de verificar 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.

Além disso, 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 do Arduino.

Processo de manufatura

  1. Tutorial de bloqueio RFID do Arduino
  2. JX Wave Generator
  3. u-blox LEA-6H 02 Módulo GPS com Arduino e Python
  4. Um sistema de detecção de queda baseado em Arduino, Windows e Azure
  5. Controle do carro com Arduino Uno e Bluetooth
  6. Tutorial do sensor de impressão digital Arduino
  7. ArduRadio AlarmClock
  8. Máquina de café inteligente com Arduino e Bluetooth
  9. Raspberry Pi e laptop Arduino
  10. rDUINOScope