ESP8266 - Bluetooth

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

ESP8266 NodeMCU Bluetooth

O objetivo deste tutorial é:

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

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Módulo Bluetooth HC-05
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

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 é capaz de:

  • Receber dados do pino Serial RX e transmiti-los ao dispositivo pareado (como um celular) via Bluetooth
  • Receber dados do Bluetooth (do dispositivo pareado) e transferi-los para o pino Serial TX.

Especificamente, quando o ESP8266 se comunica com um app de celular (Android/iOS):

  • Ele se conecta ao módulo Bluetooth HC-05 por meio de seus pinos Serial/SoftwareSerial.
  • O módulo Bluetooth HC-05 é pareado com o app do celular.
  • Para enviar dados ao app do celular, o ESP8266 simplesmente os envia para o Serial/SoftwareSerial.
  • Para receber dados do app do celular, o ESP8266 os lê do Serial/SoftwareSerial.
  • Nenhum código Bluetooth especial é necessário no ESP8266.

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 (defina LOW) e o Modo de Comando (defina HIGH). Se não estiver conectado, ficará no Modo de Dados por padrão.
  • Pino VCC: pino de alimentação, deve ser conectado ao +5V da tensão de alimentação.
  • Pino GND: pino de alimentação, deve ser conectado ao GND da fonte de alimentação.
  • Pino TX: pino de dados seriais, deve ser conectado ao pino RX do ESP8266. Os dados recebidos via Bluetooth serão enviados a este pino como dados seriais.
  • Pino RX: pino de dados seriais, deve ser conectado ao pino TX do ESP8266. Os dados recebidos neste pino serão enviados ao Bluetooth.
  • State: o pino state é conectado ao LED da placa e pode ser usado como retorno para verificar se o Bluetooth está funcionando corretamente.

No entanto, para operações básicas, apenas quatro pinos do módulo Bluetooth HC-05 precisam ser conectados ao ESP8266.

O módulo Bluetooth HC-05 tem dois componentes integrados:

  • Um LED que indica o status do módulo:
    • Piscar uma vez a cada dois segundos significa 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 que a conexão no Modo de Dados foi bem-sucedida
  • Um botão que pode ser usado para controlar o pino Key/Enable e 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:

  • O Modo de Dados, usado para trocar dados com o dispositivo pareado
  • O Modo de Comando, usado para configurar parâmetros.

Felizmente, o módulo Bluetooth HC-05 consegue operar com o ESP8266 sem nenhuma configuração, usando as configurações 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 móvel com uma interface semelhante à do Serial Monitor do Arduino IDE. Ele pode ser usado para se comunicar com o ESP8266 via Bluetooth sem exigir nenhum código especial para o módulo Bluetooth no código do ESP8266. Para isso, siga os passos abaixo:

  • Conecte o ESP8266 ao módulo Bluetooth HC-05
  • Instale o Bluetooth Serial Monitor App no seu celular
  • Abra o app e faça o pareamento com o módulo Bluetooth HC-05

Agora você pode transmitir e receber dados do ESP8266 como faria com o Serial Monitor do Arduino IDE. Você não precisa fazer nenhuma alteração no seu código ESP8266 existente nem adicionar código Bluetooth ao seu novo código ESP8266.

Diagrama de Ligação

Diagrama de ligação do ESP8266 NodeMCU com Bluetooth

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Tabela de Ligação. Quadro de Ligação. Quadro das Ligações

Pinos do ESP8266 Pinos do Bluetooth HC-05
Pin D7 TX
Pin D6 RX
5V VCC
GND GND
Enable/Key (NÃO conectado)
State (NÃO conectado)

※ Nota:

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

Como Programar para Bluetooth

Nenhuma programação específica para Bluetooth é necessária. Só precisamos utilizar o código Serial.

O ESP8266 envia dados para o App Bluetooth no Celular

Para transmitir dados de um ESP8266 para um app Bluetooth em um celular, o código a seguir deve ser usado no Arduino:

Neste exemplo, o ESP8266 transmitirá “ESP8266 here, command me!” para o app Bluetooth no celular em intervalos de um segundo.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); } void loop() { Serial.println("ESP8266 here, command me!"); bluetooth.println("ESP8266 here, command me!"); delay(1000); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Instale o Bluetooth Serial Monitor App no seu celular. Ligue o módulo Bluetooth HC-05 ao ESP8266 conforme o diagrama de ligação. Copie o código e abra-o com o Arduino IDE. Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP8266. Se você não conseguir 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. Abra o Bluetooth Serial Monitor App no seu celular e selecione o modo Bluetooth Clássico.
Bluetooth Serial Monitor App
  • Conecte-o ao módulo Bluetooth HC-05.
Pareamento do Bluetooth Serial Monitor
  • Veja o resultado no app Android.
Bluetooth Serial Monitor App
  • Veja o resultado no Serial Monitor do ambiente de desenvolvimento integrado do ESP8266.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me!
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) 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 ESP8266

O código a seguir permite:

  • Enviar dados de um app Bluetooth para um ESP8266
  • Ler os dados no ESP8266 e, em seguida, enviar uma resposta de volta ao app Bluetooth
/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); } void loop() { bluetooth.println(F("ESP8266 here, command me!")); if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { bluetooth.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { bluetooth.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Passos Rápidos

  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código e abra-o com o Arduino IDE.
  • Clique no botão Upload no Arduino IDE para compilar e fazer o upload do código para o ESP8266.
  • Abra o Serial Monitor no Arduino IDE.
  • Conecte o app Android ao módulo Bluetooth HC-05, como feito no exemplo anterior.
  • Depois de conectado, digite "LED ON" ou "LED OFF" no app Android e pressione o botão "SEND".
Bluetooth Serial Monitor App
  • O ESP8266 recebe os dados e imprime a resposta na porta Serial. Esses dados são então enviados ao app Bluetooth, e o resultado pode ser visto no app Android.
Bluetooth Serial Monitor App
  • Veja o resultado na janela do Serial Monitor do ambiente de desenvolvimento integrado do ESP8266.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! LED ON LED is turned ON ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! LED OFF LED is turned OFF ESP8266 here, command me! ESP8266 here, command me!
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) 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 ESP8266 - Controlar LED com app de celular via Bluetooth

Este código de exemplo do ESP8266 responderá a dois comandos: “ON” e “OFF”. Ao serem recebidos, esses comandos serão usados para ligar ou desligar um LED embutido por meio do Bluetooth Serial Monitor App.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module #define LED_PIN 8 SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin as a digital output pin } 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 uma explicação mais completa das instruções no tutorial ESP8266 controla LED via Bluetooth/BLE.

Código ESP8266 - Controlar Servo Motor com app de celular via Bluetooth

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

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #include <Servo.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module 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(11); // attaches the servo on pin 11 to the servo object } 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 ESP8266 controla Servo Motor via Bluetooth/BLE . Para uma análise mais completa das instruções, confira o tutorial ESP8266 controla Servo Motor via Bluetooth/BLE . Se você precisar ver as instruções com mais profundidade, consulte o tutorial ESP8266 controla Servo Motor via Bluetooth/BLE . Para obter uma visão mais abrangente das instruções, acesse o tutorial ESP8266 controla Servo Motor via Bluetooth/BLE

Se você achar o app Bluetooth Serial Monitor útil, dê a ele uma avaliação de 5 estrelas na Play Store. Agradecemos o seu apoio!

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!