HC-SR04 com ESP32 – Curso ESP32 básico

Olá, entusiastas da eletrônica e inovação! Nesta aula, vamos conhecer o HC-SR04, um sensor ultrassônico que possibilita a detecção de distância utilizando um sonar semelhante ao utilizado por navios e morcegos. Ele verifica a distância e a comunica ao nosso microcontrolador, que, neste caso, é o ESP32. Vamos explorar seu funcionamento e aprender como utilizá-lo em projetos.

Lembre-se que esse tutorial faz parte do Curso Esp32 que compõe nosso Kit IoT ESP32 – para Professores e Makers iniciantes

Vale dizer que temos um artigo aqui no portal explicando o uso do HC-SR04 com Arduino.

Sensor Distância Ultrassônico HCSR04, HC-SR04 ou HC SR04
Sensor Distância Ultrassônico HC SR04

kit robotica educacional com Arduino ESP ou Microbit

Conhecendo o HC-SR04

O sensor utiliza princípios de ultrassom para medir distâncias. Ele emite um pulso ultrassônico, aguarda o retorno do eco e calcula a distância com base no tempo que o som levou para retornar. É uma ferramenta valiosa em projetos que envolvem detecção de obstáculos, sistemas de navegação e muito mais.

  • Sonar inspirado na natureza: O HC-SR04 utiliza a mesma tecnologia de sonar que é encontrada em navios e morcegos para medir distâncias de forma precisa e eficiente.
  • Método de medição ultrassônica: Este sensor emite pulsos ultrassônicos e mede o tempo que esses pulsos levam para retornar após atingirem um objeto. Essa técnica permite a determinação precisa da distância.
  • Ampla faixa de medição: O HC-SR04 é capaz de medir distâncias em uma faixa que vai de 2 cm a 4 metros, tornando-o versátil para uma variedade de aplicações.
  • Precisão notável: Com uma precisão de aproximadamente 3 mm, este sensor é capaz de fornecer leituras detalhadas, garantindo confiabilidade em projetos sensíveis à distância.
  • Fácil integração: Sua simplicidade de uso e interface amigável tornam o HC-SR04 acessível mesmo para iniciantes em eletrônica, sendo amplamente utilizado em projetos DIY e educacionais.
  • Ampla aplicação em automação: O HC-SR04 é uma escolha popular em projetos de automação, como robôs e sistemas de monitoramento, devido à sua capacidade de detectar objetos e obstáculos com precisão.
  • Baixo custo e alto desempenho: Além de suas características impressionantes, o HC-SR04 é conhecido por ser um sensor acessível, proporcionando um excelente custo-benefício para entusiastas e projetistas.

 

Mergulhando na Prática

Vamos agora colocar a mão na massa! Então pegue o seu kit, pois estamos prestes a mostrar como utilizar o HC-SR04.

Componentes necessários
• ESP32
• Protoboard
HC-SR04
• LED (qualquer cor)
• Resistor de 100 Ω
• Jumper MXM
Buzzer Ativo

 

PROJETO 1

No nosso projeto inicial, estaremos focados na medição de distância utilizando o sensor ultrassônico. O objetivo é exibir, no monitor serial, a distância em centímetros do objeto detectado.

 

//                                VIDA DE SILICIO
//                                    KIT ESP32
//                                      AULA 5 
//                            PROGRAMA 1 : PROJETO MEDINDO A DISTÂNCIA  


const int PINO_TRIG = 4; // Pino D4 conectado ao TRIG do HC-SR04
const int PINO_ECHO = 2; // Pino D2 conectado ao ECHO do HC-SR04

void setup() {
  Serial.begin(9600); // Inicializa a comunicação serial
  pinMode(PINO_TRIG, OUTPUT); // Configura o pino TRIG como saída
  pinMode(PINO_ECHO, INPUT); // Configura o pino ECHO como entrada
}

void loop() {
  digitalWrite(PINO_TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(PINO_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PINO_TRIG, LOW);
  
  long duracao = pulseIn(PINO_ECHO, HIGH); // Mede o tempo de resposta do ECHO  
  float distancia = (duracao * 0.0343) / 2;// Calcula a distância usando a velocidade do som (aproximadamente 343 m/s)
  Serial.print("Distância: ");
  Serial.print(distancia);
  Serial.println(" cm");
  
  delay(1000); // Aguarda 1 segundo antes de fazer a próxima leitura
}
//long -> A variável "long" é utilizada para armazenar números inteiros longos, ou seja, números inteiros maiores do que os que podem ser armazenados em uma variável "int"
//delayMicroseconds -> A função delayMicroseconds() lida com microssegundos (10 elevado a -6 segundos), enquanto a função delay() lida com milissegundos (10 elevado a -3 segundos).

 

PROJETO 2

No projeto seguinte, incorporaremos um LED à nossa configuração. A proposta é enviar um alerta visual sempre que um objeto ultrapassar o limite de distância predefinido.

//                                VIDA DE SILICIO
//                                    KIT ESP32
//                                      AULA 5 
//                            PROGRAMA 2 : PROJETO ALERTA DE PROXIMIDADE


const int PINO_TRIG = 4; // Pino D4 conectado ao TRIG do HC-SR04
const int PINO_ECHO = 2; // Pino D2 conectado ao ECHO do HC-SR047
//INCLUSÃO DO LED
const int PINO_LED = 5;  // Pino D5 conectado ao LED

void setup() {
  Serial.begin(9600); // Inicializa a comunicação serial
  pinMode(PINO_TRIG, OUTPUT); // Configura o pino TRIG como saída
  pinMode(PINO_ECHO, INPUT);  // Configura o pino ECHO como entrada
  pinMode(PINO_LED, OUTPUT);  // Configura o pino LED como saída
}

void loop() {
  digitalWrite(PINO_TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(PINO_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PINO_TRIG, LOW);
  
  long duracao = pulseIn(PINO_ECHO, HIGH); // Mede o tempo de resposta do ECHO
  float distancia = (duracao * 0.0343) / 2;// Calcula a distância usando a velocidade do som (aproximadamente 343 m/s)
  Serial.print("Distância: ");
  Serial.print(distancia);
  Serial.println(" cm");
  
  if (distancia <= 10) // quando estiver menor ou igual a 10 cm enviará um alerta. ** Valor editável para a distância preferir.
  {
    digitalWrite(PINO_LED, HIGH); // Acende o LED se a distância for menor ou igual a 10 cm
  } else {
    digitalWrite(PINO_LED, LOW);  // Desliga o LED caso contrário
  }
  
  delay(1000); // Aguarda 1 segundo antes de fazer a próxima leitura
}

Embora tenhamos inicialmente um LED como parte de nosso circuito, podemos fazer um experimento. Substituiremos o LED por um buzzer ativo, mas é crucial observar a polaridade. Dessa forma, poderemos alternar entre alertas sonoros e visuais de maneira simples.

ENTENDENDO A FUNDO

Arquitetura

A arquitetura de pinos do sensor de ultrassom varia dependendo do modelo do sensor que você está utilizando. No entanto, a maioria dos sensores de ultrassom possui pelo menos dois pinos principais: o pino de “Trigger” (ou “TRIG”) e o pino de
“Echo” (ou “ECHO”). Alem dos pinos de alimentação VCC e GND.
Pino de Trigger (Envio): Responsável por enviar os pulsos ultrassônicos para o ambiente.
Pino de Echo (Recebimento): Recebe o sinal refletido após o pulso atingir um objeto.
Esses componentes trabalham em conjunto para permitir que o sensor detecte e meça com precisão as distâncias dos objetos, tornando-o uma ferramenta valiosa
em diversas aplicações.

HC-SR04 - Sensor Ultrassom
HC-SR04 – Sensor Ultrassom

Funcionamento

O HC-SR04 opera de maneira eficiente através dos pinos Trig (Trigger) e Echo. Aqui está uma breve explicação do funcionamento de cada um:

Trigger (Trig):

  • O pino Trig é responsável por iniciar a medição de distância.
  • Para iniciar a medição, você envia um pulso de pelo menos 10 microssegundos para o pino Trig.
  • Esse pulso ativa o envio de ondas ultrassônicas em direção ao objeto que se deseja medir a distância.

Echo:

  • O pino Echo é utilizado para receber o retorno do sinal ultrassônico.
  • Quando as ondas ultrassônicas atingem um objeto e retornam, o pino Echo emite um pulso.
  • A duração desse pulso no pino Echo é proporcional à distância entre o sensor e o objeto.

Cálculo da Distância:

A distância pode ser calculada aplicando uma manipulação da fórmula de velocidade média, a qual também é familiar do nosso Ensino Médio e é a mesma utilizada em nossos código:


 

 

 

 

 

 

 

 

-ΔS é o intervalo de deslocamento (espaço)

-Δt é o intervalo de tempo (tempo final – tempo inicial) 

-A velocidade do som é geralmente considerada como 343 metros por segundo.

-Dividir por 2 é necessário porque o pulso viaja para o objeto e retorna, então a distância real é metade do caminho percorrido.


Em resumo, o Trig inicia o processo enviando pulsos ultrassônicos, e o Echo mede o tempo que leva para esses pulsos retornarem após atingirem um objeto. Essa informação de tempo é então utilizada para calcular a distância entre o sensor e o objeto em questão.

 

Conclusão

Encerramos aqui nossa aula, na qual exploramos o uso do sensor ultrassônico, aprofundando nosso entendimento da física por trás desse componente. Existem diversos projetos interessantes que podem ser realizados com o HC-SR04, como réguas, sensores de estacionamento e detecção de presença no ambiente. Que tal experimentar e conhecer ainda mais esse incrível componente?

Convidamos você a participar ativamente desta comunidade. Deixe seu like, inscreva-se no canal e compartilhe suas dúvidas, conquistas e ideias nos comentários. Sua interação é o que dá vida a este canal. Estamos aqui para aprender juntos e moldar o futuro da tecnologia DIY e IoT. Até a próxima aula!