Arduino Nano - Bluetooth

Este tutorial ensina você a usar o Arduino Nano para controlar o Módulo Bluetooth HC-05. Em detalhes, vamos aprender:

Arduino Nano Bluetooth

O objetivo deste tutorial:

Este tutorial é focado no Bluetooth Clássico (Bluetooth 2.0). Se você precisa de informações sobre Bluetooth Low Energy - BLE (Bluetooth 4.0), consulte este tutorial semelhante: Arduino Nano - Bluetooth Low Energy

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Módulo Bluetooth HC-05
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo Bluetooth HC-05

O HC-05 é um módulo Bluetooth Serial que funciona como um Conversor de Serial para Bluetooth. Ele executa as seguintes tarefas:

  • Receber dados do pino Serial RX e transmiti-los ao dispositivo pareado (como um smartphone) por Bluetooth
  • Obter dados do Bluetooth (do dispositivo pareado) e enviá-los ao pino Serial TX.

Especificamente, no caso do Arduino Nano se comunicando com um App de smartphone (Android/iOS):

  • O Arduino Nano é conectado a um Módulo Bluetooth HC-05 por meio dos pinos Serial/SoftwareSerial.
  • O Módulo Bluetooth HC-05 é vinculado ao App do smartphone.
  • O Arduino Nano envia dados ao App do smartphone enviando-os para o Serial/SoftwareSerial.
  • O Arduino Nano recebe dados do App do smartphone lendo-os do Serial/SoftwareSerial.
  • Nenhum código Bluetooth especial é necessário no Arduino Nano.

Pinagem do Módulo Bluetooth HC-05

Pinagem do Bluetooth

O Módulo Bluetooth HC-05 tem 6 pinos:

  • Pino Enable/Key: Este pino é usado para alternar entre o Modo de Dados (definido como LOW) e o Modo de Comando (definido como HIGH). Se não estiver conectado, fica no Modo de Dados por padrão.
  • Pino VCC: pino de alimentação, este pino precisa ser conectado a +5V da tensão de alimentação.
  • Pino GND: pino de alimentação, este pino precisa ser conectado ao GND da fonte de energia.
  • Pino TX: pino de dados seriais, este pino precisa ser conectado ao pino RX do Arduino Nano. Os dados recebidos via Bluetooth serão enviados a este pino como dados seriais.
  • Pino RX: pino de dados seriais, este pino precisa ser conectado ao pino TX do Arduino Nano. Os dados recebidos neste pino serão enviados ao Bluetooth.
  • State: O pino de estado é conectado ao LED da placa e pode ser usado como retorno para verificar se o Bluetooth está funcionando corretamente.

No entanto, para realizar as funções básicas, apenas quatro pinos do Módulo Bluetooth HC-05 precisam ser conectados ao Arduino Nano.

O Módulo Bluetooth HC-05 também tem dois componentes embutidos:

  • Um LED que indica o estado do Módulo:
    • Piscar uma vez a cada dois segundos indica que o Módulo entrou no Modo de Comando
    • Piscar rapidamente indica que ele está aguardando conexão no Modo de Dados
    • Piscar duas vezes por segundo significa uma conexão bem-sucedida no Modo de Dados
  • Um Botão que pode ser usado para controlar o pino Key/Enable para selecionar o modo de operação (Modo de Dados ou de Comando)

Como Funciona

O módulo Bluetooth HC-05 tem dois modos de operação:

  • Modo de Dados, usado para transmitir e receber dados com o dispositivo conectado
  • Modo de Comando, usado para configurar as definições.

Felizmente, o módulo Bluetooth HC-05 é capaz de trabalhar com o Arduino Nano sem nenhuma configuração, usando a definição padrão.

Configurações Padrão do HC-05

Nome Bluetooth Padrão “HC-05”
Senha Padrão 1234 ou 0000
Comunicação Padrão Slave
Modo Padrão Modo de Dados
Baud Rate Padrão no Modo de Dados 9600, 8, N, 1
Baud Rate Padrão no Modo de Comando 38400, 8, N, 1

Sobre o App Bluetooth Serial Monitor

O app Bluetooth Serial Monitor é um aplicativo para celular que tem uma Interface de Usuário semelhante ao Serial Monitor do Arduino IDE. Ele se comunica com um dispositivo Arduino Nano via Bluetooth. Você pode interagir com o Arduino Nano como se ele estivesse conectado ao Serial Monitor de um PC, sem precisar adicionar nenhum código especial para o módulo Bluetooth no seu código do Arduino Nano. Para isso, siga estes passos:

  • Conecte o Arduino Nano a um módulo Bluetooth HC-05
  • Instale o App Bluetooth Serial Monitor no seu smartphone
  • Abra o App e faça o pareamento com o módulo Bluetooth HC-05

Agora, você pode enviar e receber dados do Arduino Nano da mesma forma que no Serial Monitor do Arduino IDE. Não é necessário modificar o código existente do Arduino Nano nem adicionar código Bluetooth ao novo código do Arduino Nano.

Diagrama de Ligação

Diagrama de ligação do Bluetooth com Arduino Nano

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Tabela de Ligação. Quadro de Ligação. Quadro da Ligação

Pinos do Arduino Nano Pinos do Bluetooth HC-05
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
Enable/Key (NÃO conectado)
State (NÃO conectado)

※ Nota:

Você pode usar outros pinos do Arduino Nano alterando o objeto Serial no código do Arduino Nano para outro Serial1, Serial2,... ou SoftwareSerial, se estiver disponível.

Como Programar para Bluetooth

Nenhum código específico para Bluetooth é necessário. Só precisamos usar o código Serial.

O Arduino Nano envia dados para o App Bluetooth no Smartphone

Para transmitir dados de um Arduino Nano para um App Bluetooth em um Smartphone, o código a seguir deve ser usado no Arduino:

Neste exemplo, faremos o Arduino Nano enviar “Arduino here, command me!” para o App Bluetooth no Smartphone a cada segundo.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Passos Rápidos

  • Baixe e instale o App Bluetooth Serial Monitor no seu smartphone.
  • Ligue o módulo Bluetooth HC-05 ao Arduino Nano conforme o diagrama de ligação.
  • Abra o Arduino IDE, copie o código e cole-o no IDE.
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano. Se não funcionar, desconecte os pinos TX e RX do módulo Bluetooth, faça o upload do código e depois reconecte os pinos RX/TX.
  • Abra o Serial Monitor no Arduino IDE.
  • Abra o App Bluetooth Serial Monitor no seu smartphone e selecione o modo Bluetooth Clássico.
App Bluetooth Serial Monitor
  • Conecte o módulo Bluetooth HC-05 a ele.
Pareamento do Bluetooth Serial Monitor
  • Confira o resultado no App Android.
App Bluetooth Serial Monitor
  • Veja o resultado no Serial Monitor do Ambiente de Desenvolvimento Integrado do Arduino Nano.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me!
Ln 11, Col 1
Arduino Nano on COM15
2

Você vai observar que as informações exibidas no Serial Monitor do Arduino IDE e no App Android são as mesmas.

O App Bluetooth Envia dados Para o Arduino Nano

O código a seguir:

  • Transmite dados de um app Bluetooth para um Arduino Nano
  • Permite que o Arduino Nano leia os dados e devolva uma resposta ao app Bluetooth
/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins void setup() { Serial.begin(9600); } void loop() { Serial.println(F("Arduino here, command me!")); if (Serial.available()) { // if there is data comming String command = Serial.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { Serial.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { Serial.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Passos Rápidos

  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Abra o Serial Monitor no Arduino IDE.
  • Inicie o App Android e faça o pareamento com o módulo Bluetooth HC-05 como feito anteriormente.
  • Depois de conectado, digite "LED ON" ou "LED OFF" no App Android e pressione o botão "SEND".
App Bluetooth Serial Monitor
  • O Arduino Nano recebe os dados e imprime a resposta na porta Serial.
  • Os dados são então enviados ao app Bluetooth.
  • O resultado pode ser visto no App Android.
App Bluetooth Serial Monitor
  • Veja a saída no Serial Monitor do Arduino IDE.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! LED ON LED is turned ON Arduino here, command me! Arduino here, command me! Arduino here, command me! LED OFF LED is turned OFF Arduino here, command me! Arduino here, command me!
Ln 11, Col 1
Arduino Nano on COM15
2

Você vai observar que as informações exibidas no Serial Monitor do Arduino IDE e no App Android são as mesmas.

Código Arduino Nano - Controlar LED com App de smartphone via Bluetooth

O exemplo de código do Arduino Nano a seguir foi projetado para aceitar dois comandos (“ON” e “OFF”) de um App Bluetooth Serial Monitor. Esses comandos são usados para ligar/desligar um LED embutido.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define LED_PIN 12 // The Arduino Nano pin connected to the LED SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // set the digital pin as output: } void loop() { if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { digitalWrite(LED_PIN, LOW); // turn off LED bluetooth.println("LED is turned OFF"); // reports action to smartphone app } else if (command == "LED ON") { digitalWrite(LED_PIN, HIGH); // turn on LED bluetooth.println("LED is turned ON"); // reports action to smartphone app } } }

Você pode ver uma descrição mais detalhada das instruções no tutorial Arduino Nano controla LED via Bluetooth/BLE.

Código Arduino Nano - Controlar Servo Motor com App de smartphone via Bluetooth

O código do Arduino Nano abaixo . * recebe o valor do ângulo . * do App Bluetooth Serial Monitor . * para controlar o ângulo do servo motor.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-bluetooth */ #include <Servo.h> #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define SERVO_PIN 12 // The Arduino Nano pin connected to the servo motor SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); bluetooth.begin(9600); servo.attach(SERVO_PIN); } void loop() { if (bluetooth.available()) { // if there is data comming int angle = bluetooth.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo bluetooth.print("Rotated servo to angle: ");// reports action to smartphone app bluetooth.println(angle); } else { bluetooth.print("Invalid angle: ");// reports invalid value to smartphone app bluetooth.println(angle); } } }

Você pode ver as instruções com mais detalhes no tutorial Arduino Nano controla Servo Motor via Bluetooth/BLE. Você pode ter uma visão mais completa das instruções no tutorial Arduino Nano controla Servo Motor via Bluetooth/BLE. Para uma visão abrangente das instruções, consulte o tutorial Arduino Nano controla Servo Motor via Bluetooth/BLE

Se você achou o app Bluetooth Serial Monitor útil, demonstre seu apreço dando a ele uma avaliação de 5 estrelas na Play Store. Seu apoio é muito apreciado!

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!