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

Como configurar e emparelhar dois módulos Bluetooth HC-05 como mestre e escravo | Comandos AT


Neste tutorial do Arduino vamos aprender como configurar e emparelhar dois módulos Bluetooth HC-05 como dispositivos Master e Slave. Você pode assistir o vídeo a seguir ou ler o tutorial escrito abaixo.

Visão geral


Nos meus dois tutoriais anteriores já aprendemos como conectar o Módulo Bluetooth HC-05 ao Arduino e fazer uma comunicação entre um smartphone Android e o Arduino. Nesses tutoriais usamos o módulo Bluetooth HC-05 com sua configuração padrão, como dispositivo escravo.

Configurando o Módulo Bluetooth HC-05 – Comandos AT


Para este tutorial, precisamos configurar os dois módulos. Para fazer isso, precisamos mudar para o modo de comando AT e aqui está como faremos isso. Primeiro precisamos conectar o módulo Bluetooth ao Arduino conforme o esquema do circuito explicado nos tutoriais anteriores. O que precisamos fazer adicionalmente é conectar o pino “EN” do módulo Bluetooth a 5 volts e também alternar os pinos TX e RX na placa Arduino.

Portanto, o pino RX do Arduino precisa ser conectado ao pino RX do módulo Bluetooth, através do divisor de tensão, e o pino TX do Arduino ao pino TX do módulo Bluetooth. Agora, enquanto seguramos o pequeno botão sobre o pino “EN”, precisamos alimentar o módulo e é assim que entraremos no modo de comando. Se o led do módulo Bluetooth estiver piscando a cada 2 segundos, significa que entramos com sucesso no modo de comando AT.

Depois disso, precisamos fazer o upload de um sketch vazio para o Arduino, mas não se esqueça de desconectar as linhas RX e TX durante o upload. Em seguida, precisamos executar o Serial Monitor e selecionar “Both NL and CR”, bem como a taxa de “38400 bauds”, que é a taxa de transmissão padrão do módulo Bluetooth. Agora estamos prontos para enviar comandos e seu formato é o seguinte.

Todos os comandos começam com “AT”, seguido pelo sinal “+”, depois um e terminam com o “?” sinal que retorna o valor atual do parâmetro ou o sinal “=" quando queremos inserir um novo valor para esse parâmetro.

Configuração do escravo


Por exemplo, se digitarmos apenas “AT”, que é um comando de teste, devemos receber a mensagem “OK”. Então, se digitarmos “AT + UART?” devemos voltar a massagem que mostra a taxa de transmissão padrão que é 38400. Então, se digitarmos “AT+ROLE?” receberemos de volta uma massagem “+ROLE=0”, o que significa que o dispositivo Bluetooth está no modo escravo. Se digitarmos “AT+ADDR?” retornaremos o endereço do módulo Bluetooth e deve ser algo assim:98d3:34:905d3f.

Agora precisamos anotar esse endereço, pois precisaremos dele ao configurar o dispositivo mestre. Na verdade, isso é tudo o que precisamos ao configurar o dispositivo escravo, para obter seu endereço, embora possamos alterar muitos parâmetros diferentes, como nome, taxa de transmissão, senha de emparelhamento e assim por diante, mas não faremos isso neste exemplo.

Configuração mestre


Ok, agora vamos seguir em frente e configurar o outro módulo Bluetooth como dispositivo mestre. Primeiro, verificaremos a taxa de transmissão para garantir que seja o mesmo 38400 do dispositivo escravo. Em seguida, digitando “AT+ROLE=1” definiremos o módulo Bluetooth como dispositivo mestre. Depois disso usando “AT+CMODE=0” vamos configurar o modo de conexão para “endereço fixo” e usando o comando “AT+BIND=” vamos configurar o endereço do dispositivo escravo que anotamos anteriormente.

Observe aqui que, ao escrever o endereço, precisamos usar vírgulas em vez de dois pontos. Observe também que poderíamos ter pulado a etapa anterior se digitássemos “1” em vez de “0” no comando “AT+CMODE”, o que faz com que o mestre se conecte a qualquer dispositivo em sua faixa de transmissão, mas é uma configuração menos segura. Aqui você encontra uma lista completa de comandos e parâmetros:HC-05 AT Commands List

No entanto, isso é tudo o que precisamos para uma configuração básica dos módulos Bluetooth para funcionar como dispositivos mestre e escravo e agora se os reconectarmos no modo normal, dados e reenergizarmos os módulos, em questão de segundos o mestre se conectará ao escravo. Ambos os módulos começarão a piscar a cada 2 segundos, indicando uma conexão bem-sucedida.

Exemplo de comunicação entre dois módulos Bluetooth HC-05


Ok, agora estamos prontos para fazer o exemplo prático para este tutorial. Aqui está o esquema do circuito. Usaremos um potenciômetro, no mestre, para controlar um servo motor no escravo. E vice-versa, usaremos um botão, no escravo, para controlar um LED no mestre.

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 ………………………………
  • Servomotor……………………………….….
  • Potenciômetro………………..……………….
  • 3x resistores de 220 Ohms…………………
  • Breadboard e jump wires ……….

Códigos-fonte do Arduino


Descrição: Então primeiro precisamos definir os pinos e algumas variáveis ​​necessárias para o programa. Na seção de configuração, no mestre, configuramos o pino do LED como saída e o definimos para baixo imediatamente, bem como iniciamos a comunicação serial na taxa de 38400 bauds. Da mesma forma, no escravo, configuramos o pino do botão como entrada, definimos o servo ao qual o pino está conectado e iniciamos a comunicação serial com a mesma taxa de transmissão.

Na seção de loop, em ambos os códigos, com a função Serial.available() vamos verificar se há dados disponíveis na porta serial para serem lidos e usando a função Serial.read() vamos ler e armazenar os dados no "Estado variável. Portanto, se o mestre receber o caractere '1' que é enviado do escravo quando o estado do botão estiver alto, ou o botão for pressionado, o LED estará aceso. Caso contrário, se o caractere for '0', o LED estará desligado.

Quanto ao controle do servo motor, primeiro no mestre, lemos o valor do potenciômetro e o mapeamos em uma faixa adequada para o servo de 0 a 255. Este valor é enviado ao escravo que o utiliza para girar o servo motor de acordo. Isso é tudo que precisamos e aqui está a demonstração do exemplo.

Código mestre:
/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == MASTER CODE ==
 */

#define ledPin 9

int state = 0;
int potValue = 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
 }
 // Controlling the LED
 if (state == '1') {
  digitalWrite(ledPin, HIGH); // LED ON
  state = 0;
 }
 else if (state == '0') {
  digitalWrite(ledPin, LOW); // LED ON
  state = 0;
 }
 // Reading the potentiometer
 potValue = analogRead(A0);
 int potValueMapped = map(potValue, 0, 1023, 0, 255);
 Serial.write(potValueMapped); // Sends potValue to servo motor
 delay(10);
}Code language: Arduino (arduino)

Código escravo:
/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == SLAVE CODE ==
 */
 
#include <Servo.h>
#define button 8

Servo myServo;
int state = 20;
int buttonState = 0;

void setup() {
  pinMode(button, INPUT);
  myServo.attach(9);
  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
 }
 // Controlling the servo motor
 myServo.write(state);
 delay(10);
 
 // Reading the button
 buttonState = digitalRead(button);
 if (buttonState == HIGH) {
   Serial.write('1'); // Sends '1' to the master to turn on LED
 }
 else {
   Serial.write('0');
 }  
}Code language: Arduino (arduino)

Isso é tudo e se você tiver algum problema, sinta-se à vontade para pedir ajuda na seção de comentários abaixo.

Processo de manufatura

  1. Recapitulação:Como Bluetooth LE e XLE são o futuro do rastreamento e monitoramento de ativos
  2. Como Bluetooth + Ultrassom =Melhor precisão de RTLS e menor custo
  3. Como verificar e calibrar um sensor de umidade
  4. Como fazer um carro Arduino controlado por Bluetooth
  5. Máquina de café inteligente com Arduino e Bluetooth
  6. Robô de escolha e posicionamento controlado por Bluetooth
  7. Como configurar NeoPixels usando Vixen Lights e Arduino
  8. Como rastrear a orientação com Arduino e acelerômetro ADXL345
  9. Entendendo o aço ferramenta e como ele é feito
  10. Como distinguir entre serra de fita e serra circular?