Comunicação Bluetooth com Arduino

Uma Breve História Bluetooth

 

Era uma vez, uma estudante chamada Maria que havia ganhado um fone de ouvido Bluetooth de aniversário. Ela estava emocionada para testá-lo, mas queria entender como ele funcionava. Ela se perguntou: "Como esse pequeno dispositivo consegue se conectar ao meu telefone sem fio?"

O primeiro passo, ela aprendeu, era o estabelecimento de conexão, conhecido como pareamento. Seu telefone e o fone de ouvido trocaram informações através de um processo chamado descoberta e solicitação de pareamento. Maria inseriu um código de acesso para autenticar a conexão, normalmente 0000 ou 1234. Em seguida, os dispositivos trocaram chaves de criptografia para garantir a segurança dos dados.

 

Uma vez pareados, Maria notou que a música tocava sem problemas, mesmo quando ela se movia pela casa e com vários outros dispositivos sem fio funcionando ao mesmo tempo, como o roteador e a Alexa. "Como isso é possível? Como o Bluetooth não se confunde?", ela se perguntou. O segredo, ela aprendeu, estava no Método de Salto em Frequência de Espalhamento Espectral (FHSS). O Bluetooth dividia a banda de frequência em 79 canais e saltava entre eles várias vezes por segundo. Isso permitia que a transmissão fosse contínua e livre de interferências, mesmo quando Maria se movia pelo ambiente e com muitos dispositivos wireless funcionando.



Figura: os 79 Canais de transmissão do Bluetooth. Em vermelho são os canais para descoberta de novos dispositivos, em azul, os canais de transmissão de dados. Fonte: Tosi, J.; Taffoni, F.; Santacatterina, M.; Sannino, R.; Formica, D. Performance Evaluation of Bluetooth Low Energy: A Systematic Review. Sensors 2017, 17, 2898. https://doi.org/10.3390/s17122898

Porém, nem tudo estava claro e uma nova dúvida pairava sobre Maria. “Como o bluetooth sabe quais dos 79 canais ele deve utilizar?” Para responder a essa pergunta, Maria fez uma nova pesquisa e descobriu que os dispositivos enviam dados de controle em cada um dos 79 canais para verificar quanto tempo leva para transmitir neles, os canais que possuem melhor tempo de transmissão são os selecionados para enviar os pacotes. Os canais com maior tempo de transmissão são aqueles que possivelemente estão sendo utilizados por outros dispositivos. Esses não são selecionados e ficam para uma próxima vez.

 

Mas e quando algo dava errado? Maria aprendeu que o Bluetooth tinha várias maneiras de lidar com isso. Se ocorresse um erro durante a transmissão, o receptor poderia detectá-lo e solicitar a retransmissão do pacote de dados. Além disso, se um canal estivesse congestionado, o dispositivo Bluetooth poderia detectá-lo e ajustar seu algoritmo de salto de frequência para evitar esse canal.


Figura: Interferência e indução de ruído em dispositivos Wireless. Fonte (https://www.murata.com/)
 

Finalmente, Maria se perguntou: "Como meu telefone sabe que está se conectando ao fone de ouvido certo?" A resposta estava no endereço MAC, ou BD_ADDR no caso do Bluetooth. Cada dispositivo Bluetooth tinha um identificador único de 48 bits. Esse endereço, que incluía um número de identificação da empresa e um número exclusivo atribuído pelo fabricante, garantia que seu telefone se conectasse ao fone de ouvido correto.

 


Figura. Vários dispositivos bluetooth são diferenciados por seus endereços “BD_ADDR” de 48 Bits. Fonte: Pixabay Image por JuralMin

No final de sua investigação, Maria se sentiu impressionada. "É incrível como tudo isso acontece sem que eu perceba!", ela pensou. E, com uma melhor compreensão de como seu fone de ouvido Bluetooth funcionava, ela conseguiu apreciar ainda mais sua música.
 

Conectando o Arduino via Bluetooth

Vamos começar com um tutorial passo-a-passo sobre como conectar e usar um módulo Bluetooth (por exemplo, o módulo HC-05) com um Arduino Mega.

 

Materiais Necessários:

1. Arduino Mega

2. Módulo Bluetooth HC-05

3. Jumpers

 

Esquema de Conexão:

1. Conecte o pino RX do HC-05 ao pino TX1 (Digital 18) do Arduino Mega.

2. Conecte o pino TX do HC-05 ao pino RX1 (Digital 19) do Arduino Mega.

3. Conecte o pino GND do HC-05 ao pino GND do Arduino Mega.

4. Conecte o pino VCC do HC-05 ao pino 5V do Arduino Mega.

Nota: RX significa receptor e TX significa transmissor. Certifique-se de conectar o TX do módulo Bluetooth ao RX do Arduino e vice-versa.

 

Código de Exemplo:

 

Aqui está um código simples que recebe dados do módulo Bluetooth e os imprime no Monitor Serial:

 


 

void setup() {

  // Inicie a comunicação serial a 9600 bps

  Serial.begin(9600);

  

  // Inicie a comunicação serial no pino RX1 e TX1 a 9600 bps

  Serial1.begin(9600);

}



void loop() {

  // Verifique se há dados disponíveis para leitura

  if (Serial1.available()) {

    // Leia os dados recebidos e os envie para o Monitor Serial

    char c = Serial1.read();

    Serial.print(c);

  }

}


Para enviar dados, você pode simplesmente usar `Serial1.write(dados)` onde "dados" é a informação que você deseja enviar.

 

Testando a Comunicação Bluetooth

 

Passo 1. Faça o upload do código acima para o seu Arduino Mega. Caso não saiba como fazer o Upload, clique aqui.

Passo 2. Abra o Monitor Serial no IDE do Arduino.


Passo 3. Conecte o seu dispositivo Bluetooth (por exemplo, um smartphone) ao módulo HC-05

Acesse as configurações do seu dispositivo Android e ative o Bluetooth.

Selecione a opção para pesquisar novos dispositivos. O seu dispositivo Android deve começar a procurar dispositivos Bluetooth próximos.

Na lista de dispositivos disponíveis, procure pelo módulo HC-05. Ele geralmente aparecerá como "HC-05" na lista, a menos que você tenha alterado o nome usando comandos AT.


Toque no nome do módulo HC-05 na lista para iniciar o processo de pareamento. O dispositivo Android irá pedir a você uma senha. A senha padrão para o módulo HC-05 é geralmente "1234" ou "0000", a menos que você tenha alterado isso também.

Uma vez que o pareamento seja bem sucedido, o módulo HC-05 deve aparecer como um dispositivo pareado no seu dispositivo Android.

Passo 4. Use um aplicativo Bluetooth no seu smartphone para enviar dados ao módulo HC-05.


Passo 5. Você deverá ver os dados recebidos impressos no Monitor Serial.

 

Para parear o módulo Bluetooth HC-05 com um dispositivo Android e testar a comunicação, você pode seguir as seguintes etapas:

 


Questões

Comentários...

Não há comentários ainda... Seja o primeiro!