Arduino Nano - BLE

Este tutorial ensina você a usar o Arduino Nano para controlar o Módulo BLE HM-10. Em detalhes, vamos aprender:

Arduino Nano BLE

O objetivo deste tutorial é:

É importante levar em conta que este tutorial é focado em Bluetooth Low Energy (BLE, Bluetooth 4.0). Se você precisa de informações sobre o Bluetooth Clássico (Bluetooth 2.0), consulte o tutorial semelhante Arduino Nano - Bluetooth.

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 BLE HM-10
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 HM-10

O HM-10 é um módulo BLE Serial que atua como um conversor de Serial para Bluetooth Low Energy. Ele tem a capacidade de:

  • Receber dados do pino Serial RX e transmiti-los a um dispositivo pareado, como um smartphone, via BLE
  • Receber dados do BLE (do dispositivo pareado) e enviá-los ao pino Serial TX.

Quando um Arduino Nano é usado para se comunicar com um app de smartphone (Android/iOS), ocorrem os seguintes passos:

  • O Arduino Nano é conectado ao módulo Bluetooth HM-10 por meio dos pinos Serial/SoftwareSerial
  • O módulo Bluetooth HM-10 é pareado com o app do smartphone
  • Os dados são enviados do Arduino Nano para o app do smartphone enviando-os para o Serial/SoftwareSerial
  • Os dados são recebidos do app do smartphone pelo Arduino Nano lendo-os do Serial/SoftwareSerial
  • Nenhum código BLE extra é necessário no Arduino Nano.

Pinagem do Módulo BLE HM-10

Pinagem do BLE

O Módulo BLE HM-10 tem 6 pinos:

  • Pino BKR: Este pino é usado para controlar o comportamento do módulo. Iniciantes devem ignorar este pino.
  • Pino RX: Este é um pino de dados seriais, que deve ser conectado ao pino TX do Arduino Nano. Os dados recebidos neste pino serão enviados ao Bluetooth.
  • Pino TX: Este é um pino de dados seriais, que deve ser conectado ao pino RX do Arduino Nano. Os dados recebidos via BLE serão enviados a este pino como dados seriais.
  • Pino GND: Este é um pino de alimentação, que deve ser conectado ao GND da fonte de energia.
  • Pino VCC: Este é um pino de alimentação, que deve ser conectado a 3,3V da tensão de alimentação.
  • Pino STATE: Este pino indica os estados de funcionamento:
    • Pisca no modo de espera - repete pulso de 500ms;
    • Aceso no estado de conexão - nível alto.

    ※ Nota:

    • Apenas quatro pinos são necessários para o HM-10: VCC, GND, RX e TX.
    • Alguns fabricantes produzem o HM-10 com apenas esses quatro pinos.

Sobre o App Bluetooth Serial Monitor

Para usar o App Bluetooth Serial Monitor, você deve primeiro conectar sua placa Arduino Nano a um módulo Bluetooth HM-10. Depois, baixe e instale o app no seu smartphone. Por fim, abra o app e estabeleça uma conexão com o módulo Bluetooth HM-10.

Quando os passos estiverem concluídos, você poderá transmitir e receber dados do Arduino Nano como se estivesse usando o Serial Monitor do Arduino IDE, sem precisar fazer nenhuma alteração no código existente do Arduino Nano nem adicionar nenhum código específico de Bluetooth.

Diagrama de Ligação

Diagrama de ligação do BLE 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.

A Tabela de Ligação. Uma Tabela para Ligação

Pinos do Arduino Nano Pinos do Bluetooth HM-10
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
BKR (NÃO conectado)
STATE (NÃO conectado)

※ Nota:

O código do Arduino Nano pode usar outros pinos substituindo o objeto Serial por uma alternativa como Serial1, Serial2 ou SoftwareSerial (se disponível).

Como Programar para Bluetooth

Nenhuma programação específica de Bluetooth é necessária, apenas a programação Serial.

O Arduino Nano envia dados para o App Bluetooth no Smartphone

Para enviar dados de uma placa Arduino Nano para um aplicativo Bluetooth em um smartphone, o código do Arduino Nano a seguir pode ser utilizado. Este exemplo mostra a transmissão da mensagem “Arduino here, command me!” do Arduino Nano para o app do smartphone a cada um 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-ble */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Passos Rápidos

  • Procure os dispositivos disponíveis e selecione o módulo HM-10.

Para usar o código e estabelecer uma conexão entre uma placa Arduino Nano e um smartphone usando BLE, siga estes passos:

  • Baixe e instale o App Bluetooth Serial Monitor no seu smartphone.
  • Conforme o diagrama de ligação, conecte o módulo Bluetooth HM-10 à placa Arduino Nano.
  • Abra o Arduino IDE, copie o código fornecido e faça o upload dele para a placa Arduino Nano. Se você tiver dificuldade para fazer o upload do código, 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.
  • No seu smartphone, abra o App Bluetooth Serial Monitor e mude para o modo BLE.
  • Procure os dispositivos disponíveis e selecione o módulo HM-10.
App Bluetooth Serial Monitor
  • Conecte o smartphone ao módulo Bluetooth HM-10.
Pareamento do Bluetooth Serial Monitor
  • Dê uma olhada no resultado no App Android.
App Bluetooth Serial Monitor
  • Dê uma olhada na saída exibida 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!
Ln 11, Col 1
Arduino Nano on COM15
2

Se você seguir os passos necessários e executar o código, vai ver que os dados mostrados no Serial Monitor do Arduino IDE e no aplicativo Android serão os mesmos.

O App Bluetooth Envia dados Para o Arduino Nano

O código abaixo executa as seguintes tarefas:

  • Enviar dados do app Bluetooth para a placa Arduino Nano
  • A placa Arduino Nano lê os dados recebidos e depois envia uma resposta de volta ao dispositivo 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-ble */ // 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

Estes são os passos para usar o código com o Arduino Nano e um app Android:

  • Abra o Arduino IDE e copie o código fornecido.
  • Clique no botão Upload para transferir o código para a placa Arduino Nano.
  • Abra o Serial Monitor no Arduino IDE.
  • Inicie o App Android e faça o pareamento com o módulo Bluetooth HM-10 seguindo as instruções dadas em um exemplo anterior.
  • Depois de conectar, digite "LED ON" ou "LED OFF" no app Android e pressione o botão "SEND".
App Bluetooth Serial Monitor
  • A placa Arduino Nano vai receber os dados e imprimir uma resposta na porta Serial. Depois, esses dados serão transmitidos ao app Bluetooth. Por fim, o resultado pode ser visto no app Android.
App Bluetooth Serial Monitor
  • Examine a saída exibida 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

Quando você terminar os passos acima,. vai observar que os dados exibidos no Serial Monitor do Arduino IDE e no app Android coincidem.

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

O exemplo de código do Arduino Nano a seguir usa os comandos “ON” e “OFF” obtidos pelo App Bluetooth Serial Monitor para ligar/desligar um LED integrado.

/* * 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-ble */ #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 encontrar mais informações sobre as instruções no tutorial intitulado Arduino Nano controla LED via Bluetooth/BLE. Para uma visão mais detalhada das instruções, consulte o tutorial Arduino Nano controla LED via Bluetooth/BLE.

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

  1. O código do Arduino Nano abaixo é usado para receber um valor de ângulo do App Bluetooth Serial Monitor. 2. Esse valor de ângulo é então usado para controlar o ângulo de um 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-ble */ #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 ter uma visão mais detalhada das instruções no tutorial Arduino Nano controla Servo Motor via Bluetooth/BLE. Para uma visão mais de perto das instruções, confira o tutorial Arduino Nano controla Servo Motor via Bluetooth/BLE. Se você quiser entender melhor as instruções, consulte o tutorial Arduino Nano controla Servo Motor via Bluetooth/BLE.

Se você achou o app Bluetooth Serial Monitor útil, avalie-o com 5 estrelas na Play Store. Seu apreço é 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!