Comunicação Serial entre ESP32 e Arduino: Tutorial Prático

Neste tutorial, vamos explorar exemplos práticos de como ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e Arduino podem trocar dados via comunicação serialEnviando Dados do ESP32 para o ArduinoEnviando Dados do ESP32 para o ArduinoDescubra como enviar dados do ESP32 para o Arduino com comunicação serial simples e robusta, garantindo integração e monitoramento em tempo real., abordando:

Nos exemplos a seguir, utilizaremos a IDE Arduino como ambiente de desenvolvimento para ambos os dispositivos, mas lembre-se de que a lógica de integração funcionará em qualquer ambiente compatível com as bibliotecas de serial dos microcontroladoresCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança. (por exemplo, PlatformIO ou ESP-IDF para o ESP32).

Montagem do Circuito e Conexões🔗

Antes de escrever qualquer códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis!, precisamos conectar fisicamente o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! ao Arduino:

SinalESP32Arduino Uno
TX (Transmite)GPIO 17 (TX2)Pino RX (pino 0)
RX (Recebe)GPIO 16 (RX2)Pino TX (pino 1)
GNDGNDGND
Observação:
Certifique-se de que ambos os dispositivos compartilhem o mesmo terra (GND).
No ESP32, existem vários pinos TX e RX; aqui, optamos pela segunda porta serial (TX2/RX2).
No Arduino Uno, os pinos de hardware serial são 0 (RX) e 1 (TX).
Verifique a tensão lógica: o ESP32 funciona em 3,3 V e o Arduino Uno em 5 V. Em muitos casos, é recomendado um conversor de nível lógico para proteger o ESP32.

Exemplo de Código: Enviando Dados do ESP32 para o Arduino🔗

No primeiro exemplo, o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! enviará uma simples mensagem de texto para o Arduino.

Código no ESP32

// Exemplo: Enviando mensagem para o Arduino via Serial (TX2/RX2)
#include <Arduino.h>
// Defina os pinos de TX e RX de acordo com o seu ESP32
#define RXp 16  // RX2
#define TXp 17  // TX2
// Criamos um objeto de HardwareSerial na porta 2
HardwareSerial SerialESP(2);
void setup() {
  // Inicia a Serial via USB para depuração (opcional)
  Serial.begin(115200);
  // Inicia a porta Serial do ESP32 para comunicação com o Arduino
  SerialESP.begin(9600, SERIAL_8N1, RXp, TXp);
  Serial.println("ESP32 inicializado. Enviando dados para Arduino...");
}
void loop() {
  // Envia uma mensagem simples a cada 2 segundos
  SerialESP.println("Ola Arduino, aqui eh o ESP32!");
  delay(2000);
}

Código no Arduino (Recebendo Dados)

// Exemplo: Recebendo mensagem do ESP32 via Serial
void setup() {
  // Inicia a Serial do Arduino para receber dados do ESP32
  Serial.begin(9600);
  // Pequeno delay para estabilizar
  delay(1000);
}
void loop() {
  // Verifica se há dados disponíveis para leitura
  if (Serial.available() > 0) {
    String mensagem = Serial.readStringUntil('\n');
    // Imprime a mensagem recebida no Monitor Serial do Arduino
    Serial.println("Recebido do ESP32: " + mensagem);
  }
}
Dica: Abra o Monitor Serial no Arduino IDE para visualizar as mensagens recebidas. Se tudo estiver correto, você verá a mensagem “Ola Arduino, aqui eh o ESP32!” sendo impressa a cada 2 segundos.

Exemplo de Código: Recebendo Dados do Arduino no ESP32🔗

Agora, vamos fazer o fluxo inverso: o Arduino enviará dados para o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!, que os exibirá no seu Monitor SerialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. (USB).

Código no Arduino (Enviando Dados)

// Exemplo: Enviando contagem para o ESP32
int contador = 0;
void setup() {
  Serial.begin(9600); // Para se comunicar com o ESP32
  delay(1000);
}
void loop() {
  Serial.print("Contador: ");
  Serial.println(contador++);
  delay(1500);
}

Código no ESP32 (Recebendo Dados)

// Exemplo: Recebendo contagem do Arduino via Serial (TX2/RX2)
#include <Arduino.h>
#define RXp 16  // RX2
#define TXp 17  // TX2
HardwareSerial SerialESP(2);
void setup() {
  Serial.begin(115200);              // Monitor Serial (USB)
  SerialESP.begin(9600, SERIAL_8N1, RXp, TXp); // Porta Serial para o Arduino
  Serial.println("ESP32 pronto para receber dados do Arduino...");
}
void loop() {
  if (SerialESP.available() > 0) {
    String mensagem = SerialESP.readStringUntil('\n');
    Serial.print("Recebido do Arduino: ");
    Serial.println(mensagem);
  }
}
Observação:
Vale ressaltar que, se estiver usando outro modelo de Arduino (Mega, Nano, Leonardo), a nomeação dos pinos pode variar.
Em alguns casos, é melhor criar uma SoftwareSerial no Arduino para liberar os pinos de hardware serial.

Dicas de Integração e Testes🔗

Conclusão🔗

A integraçãoIntegração com Aplicativos Móveis e WebIntegração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. entre ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e Arduino via Serial é relativamente simples. Com poucos fios e configurações básicas, é possível enviar e receber dados de forma confiável. A partir dos exemplos mostrados, você pode evoluir para cenários em que o ESP32 é responsável por recursos de conectividade Wi-FiControle de LEDs e Relés através do Web Server do ESP32Controle de LEDs e Relés através do Web Server do ESP32Aprenda a controlar LEDs e relés usando um Web Server no ESP32. Este tutorial completo ensina montagem, configuração e programação para automação IoT. ou Bluetooth, enquanto o Arduino controla periféricos, ou vice-versa.

Essas bases de “Enviando” e “Recebendo Dados” são fundamentais para projetos de automação, telemetria📡 Drone FPV com Transmissão de Vídeo ao Vivo📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência. e até mesmo aplicações industriais. Explore variações no baud rateExibindo Dados no Monitor Serial com ESP32Exibindo Dados no Monitor Serial com ESP32Aprenda a configurar e exibir dados no Monitor Serial com ESP32, utilizando exemplos práticos e técnicas de depuração para otimizar seus projetos IoT., adicione protocolos de verificação de integridadeAplicações Práticas e Solução de ProblemasAplicações Práticas e Solução de ProblemasDescubra técnicas práticas e avançadas para integrar, diagnosticar e otimizar sistemas ESP32 em projetos de automação residencial e IoT. e incremente funcionalidades de acordo com a necessidade do seu projeto. Boas criações!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados