Bluetooth é um padrão popular de tecnologia sem fio projetado para troca de dados em curtas distâncias. O Bluetooth é tão comum que agora faz parte dos smartphones e está presente em muitos dispositivos incorporados. Muitos dispositivos vestíveis também usam Bluetooth para emparelhar com seus acessórios ou co-dispositivos. A interface Bluetooth usa ondas de rádio UHF na banda ISM de 2,4 GHz a 2,485 GHz. Foi inventado pelo fornecedor de telecomunicações Ericsson em 1994 e desenvolvido pelo Bluetooth Special Interest Group. Uma conexão Bluetooth tem um alcance de 10 M a 100 M.
Tornar dispositivos incorporados habilitados para Bluetooth é uma tendência popular. O módulo Bluetooth HC-05 é um módulo Bluetooth comumente usado e amplamente disponível que pode ser adicionado a um projeto incorporado para torná-lo habilitado para Bluetooth. O módulo pode funcionar tanto como Master quanto como Slave. O módulo se conecta a um microcontrolador por meio de comunicação serial. É basicamente um transceptor de rádio de 2,4 GHz com taxa de dados V 2.0+ aprimorada de modulação de 3 Mbps. O módulo pode operar em dois modos –
1. Modo de trabalho de conexão automática
2. Modo de trabalho de resposta de pedido
No modo de trabalho automático, o módulo pode funcionar em qualquer uma das três funções – Mestre, escravo e Loopback. Neste modo, o módulo segue o caminho padrão para estabelecer conexão e trocar dados. No modo de resposta de pedido, o usuário pode definir parâmetros de controle enviando comandos AT. Para entrar no modo AT, o 34º pino do módulo precisa estar conectado à fonte de alimentação.
Os módulos possuem seis pinos comumente usados, além dos quais existem pinos de entrada/saída programáveis e pinos para comunicação através de UART, SPI, USB e PCM síncrono. O 34º pino é um pino de entrada/saída programável designado como pino chave.
Para configurar o módulo no modo AT, o pino chave do módulo precisa ser conectado ao microcontrolador. Deve ser definido inicialmente para lógica LOW e, uma vez ligado o módulo, deve ser definido para lógica HIGH para entrar no modo AT. Se o pino da chave estiver inicialmente na lógica HIGH, a taxa de transmissão para comunicação serial com o módulo será definida para 38.400 bits por segundo, mesmo antes do módulo estar pronto para entrar no modo de trabalho de resposta de pedido. A taxa de transmissão desejada para a inicialização do módulo é de 9600 bits por segundo e é definida para o valor quando o pino da chave é definido como ALTO após a alimentação do módulo.
Neste projeto, o Arduino Pro Mini é utilizado para passar os comandos AT para o módulo Bluetooth. A placa Arduino se conecta ao módulo Bluetooth e à porta serial virtual de um computador desktop. Os comandos AT são passados de um aplicativo hiperterminal para o Arduino Pro Mini. A placa Arduino grava esses comandos no módulo Bluetooth. As respostas do módulo Bluetooth são lidas em série e repassadas para o aplicativo hiperterminal na área de trabalho.
O esboço do Arduino simplesmente cria e abre duas portas de comunicação serial para troca de dados entre o módulo Bluetooth e o computador desktop. O código do Arduino é escrito no Arduino IDE e gravado na placa usando o AVR Dude.
Componentes necessários –
1. Arduino ProMini
2. Módulo Bluetooth HC-05
3. Computador desktop ou laptop
4. Cabo USB
Ferramentas de software necessárias –
1. ArduinoIDE
2. Qualquer aplicativo Hyper Terminal Desktop, como Arduino Serial Monitor
Conexões de Circuito –
Figura 1: Protótipo de projeto de teste de comandos Bluetooth AT baseado em Arduino
O Arduino Pro Mini gerencia a troca de dados entre a aplicação serial no computador desktop e o módulo Bluetooth. O circuito é montado da seguinte maneira –
Fonte de alimentação – O circuito é alimentado por uma bateria que alimenta diretamente a placa Arduino e o módulo Bluetooth.
Módulo Bluetooth HC-05 – O módulo Bluetooth HC-05 é um módulo de protocolo de porta serial. Opera na banda ISM 2,4 GHz com V2.0 + EDR (taxa de dados aprimorada). Pode funcionar nos modos Master e Slave. O módulo Bluetooth possui seis pinos – Enable, VCC, Ground, Transmit Data (TxD), Receive Data (RxD) e State. Os pinos Enable e State não são utilizados e, portanto, não estão conectados ao circuito. Os pinos VCC e Terra são conectados ao VCC e Terra comuns. Os pinos TxD e RxD do módulo estão conectados aos pinos 10 e 11 do Arduino Pro Mini respectivamente. Essas conexões estão resumidas na tabela abaixo –
Fig. 2: Tabela listando as conexões do circuito entre o módulo Bluetooth HC-05 e o Arduino Pro Mini
Além dessas conexões, o 34º pino do módulo está conectado ao pino 9 do Arduino Pro Mini.
Computador Desktop – O computador é conectado à placa Arduino por meio de um cabo USB e transfere dados seriais para a placa por meio de comunicação serial virtual usando um aplicativo hiperterminal.
Como funciona o projeto –
O dispositivo do projeto recebe os comandos AT inseridos pelo usuário do aplicativo hiperterminal. Os comandos são lidos serialmente pela comunicação serial virtual e passados para o módulo Bluetooth. O módulo Bluetooth responde aos comandos AT e as respostas são novamente lidas em série e transferidas para o aplicativo de desktop.
O módulo Bluetooth HC-05 suporta os seguintes comandos AT –
|
---|
Fig. 3: Tabela listando os comandos AT do Módulo Bluetooth HC-05 e sua resposta
Durante o teste do módulo Bluetooth, foram passados os seguintes comandos para os quais foi recebida a resposta dada na tabela abaixo.
Fig. 4: Diagrama de circuito do projeto de teste de comandos Bluetooth AT baseado em Arduino
Essas respostas foram observadas no aplicativo Hyper Terminal. Se as respostas não forem recebidas no aplicativo de desktop, as conexões do circuito deverão ser verificadas e a taxa de transmissão deverá ser verificada. Durante o teste, observou-se que a taxa de transmissão precisa ser definida inicialmente para 9.600 bits por segundo, mas posteriormente precisa ser definida para 38.400 bits por segundo para executar os comandos AT.
Confira o código do Arduino para saber como a placa Arduino gerencia dados seriais entre o desktop e o módulo Bluetooth.
Guia de programação –
Para ativar a comunicação serial virtual, SoftwareSerial.h precisa ser importado. Um objeto do tipo serial Software é instanciado e mapeado para os pinos 10 e 11 do Arduino.
#include
SoftwareSerial mySerial(10, 11); //RX,TX
A função setup é chamada e a taxa de transmissão para comunicação com o PC é definida como 9600 bits por segundo. O pino 9 que está conectado ao 34º pino do Módulo Bluetooth é configurado para saída digital e configurado para lógica HIGH usando os métodos pinMode e digitalWrite . Algumas mensagens iniciais são enviadas serialmente para o aplicativo hiperterminal e a taxa de transmissão da porta serial do software é definida como 38.400 bits por segundo para comunicação com o módulo Bluetooth.
configuração vazia {
Serial.begin(9600);
pinMode(9,SAÍDA); digitalWrite(9,ALTO);
Serial.println(“Oficina de Engenheiros:”);
Serial.println(“Digite os comandos AT:”);
meuSerial.begin(38400);
}
A função loop é chamada na qual a resposta do módulo Bluetooth é verificada e, se disponível, é gravada na porta serial. Da mesma forma, se algum comando AT da área de trabalho estiver disponível, ele será lido e gravado no módulo Bluetooth.
Observação: Obtenha o código completo na seção de código.
Isso completa o esboço do Arduino para o projeto de teste do módulo Bluetooth. Pegue um computador, monte o circuito, inicie um aplicativo de hiperterminal e coloque a mão na massa. É hora de testar.
Código fonte do projeto
###
//Program to #include###SoftwareSerial mySerial(10, 11); // RX, TX void setup { Serial.begin(9600); pinMode(9,OUTPUT); digitalWrite(9,HIGH); Serial.println("Engineers Garage:"); Serial.println("Enter AT commands:"); mySerial.begin(38400); } void loop { if (mySerial.available ) Serial.write(mySerial.read ); if (Serial.available ) mySerial.write(Serial.read ); }