Medição de distância com o Esptop 10 usando o Arduino IDE

Medição de distância com o Esptop 10 usando o Arduino IDE

Esp32 é uma placa de IoT baseada em microcontrolador comumente usada. É uma placa de microcontrolador de baixo custo e baixa potência que pode controlar vários dispositivos e também pode atuar como escravo em projetos de IoT. O ESP32 melhora a experiência dos usuários com o mundo da IoT, pois integrou os módulos Wi-Fi e Bluetooth.

Como estamos falando de aplicações sem fio do ESP32, também podemos integrar sensores externos para executar tarefas diferentes, como medir a distância dos objetos usando sensores ultrassônicos. Agora vamos falar sobre como fazer isso em detalhes.

Esp32 com sensor ultrassônico HC-SR04

O ESP32 pode ser facilmente integrado a um sensor ultrassônico. Só precisamos de dois fios para medir qualquer distância do objeto sem a necessidade de uma régua ou fita adesiva. Tem uma vasta aplicação onde é difícil usar qualquer outro meio para medir a distância. Vários sensores estão disponíveis, que podem ser integrados ao ESP32.

HC-SR04 é um sensor ultrassônico amplamente utilizado com ESP32. Este sensor determina o quão longe um objeto está. Usa sonar para determinar a distância do objeto. Normalmente, ele tem uma boa gama de detecção com precisão de 3mm, mas às vezes é difícil medir a distância de materiais macios, como o pano. Tem um transmissor e receptor embutido. A tabela a seguir descreve as especificações técnicas deste sensor.

Características Valor
Tensão operacional 5V DC
Corrente operacional 15m
Frequência de operação 40kHz
Alcance min 2cm/ 1 polegada
Faixa máxima 400cm/ 13 pés
Precisão 3mm
Ângulo de medição <15 degree

HC-SR04 PILOUT

Sensor ultrassônico HC-SR04 tem quatro pinos:

  • VCC: Conecte este pino ao pino ESP32 VIN
  • GND: Conecte este pino com ESP32 GND
  • Trig: Este pino recebe sinal de controle do Pin Digital Esp32
  • Eco: Este pino envia um pulso ou sinal de volta ao ESP32. O sinal de pulso traseiro recebido é medido para calcular a distância.

Como as obras ultrassônicas

Uma vez que o sensor ultrassônico esteja conectado ao ESP32, o microcontrolador gerará um pulso de sinal no Trig alfinete. Depois que os sensores recebem uma entrada no pino TRAG, uma onda ultrassônica é gerada automaticamente. Esta onda emitida atingirá a superfície de um obstáculo ou objeto cuja distância devemos medir. Depois disso, a onda ultrassônica voltará ao terminal do receptor do sensor.

O sensor ultrassônico detectará a onda refletida e calculará o tempo total tomado por onda de sensor para objeto e voltará ao sensor novamente. O sensor ultrassônico gerará um pulso de sinal no pino de eco que está conectado aos pinos digitais ESP32 assim que o ESP32 recebe sinal do Echo Pin, ele calcula a distância total entre o objeto e o sensor usando Formula a distância.

Aqui, dividimos a distância com 2 porque multiplicar a velocidade com o tempo dará a distância total do objeto ao sensor e de volta ao sensor após refletir da superfície do objeto. Para obter uma distância real, dividimos essa distância em metade.

O circuito

Interface Esp32 com sensor ultrassônico usando os quatro pinos, como mostrado na imagem abaixo:

A seguir, a configuração será seguida para conectar o ESP32 com sensor ultrassônico. Os pinos Trig e Echo serão conectados no GPIO 5 e 18 pinos de ESP32.

Sensor ultrassônico HC-SR04 PIN ESP32
Trig GPIO 5
Eco GPIO 18
Gnd Gnd
VCC Vin

Hardware

Para interface Esp32 com sensor ultrassônico, é necessário o equipamento:

  • Esp32
  • HC-SR04
  • Pão de pão
  • Fios de jumper

Código em Arduino IDE

Para programar ESP32, usaremos o Arduino IDE, pois o ESP32 e o Arduino têm muito em comum na programação, por isso é melhor usar o mesmo software para programá -los. Abra o Arduino IDE e digite o seguinte código:

const int trig_pin = 5;
const int eCHO_PIN = 18;
#Define Sound_speed 0.034/*Defina a velocidade de som em cm/nós*/
longa duração;
flutuar dist_cm;
Void Setup ()
Serial.começar (115200); /* Comunicação serial começa*/
pinmode (trig_pin, saída); /* O pino de gatilho 5 é definido como uma saída*/
pinmode (echo_pin, entrada); /* Echopin 18 é definido como uma entrada*/

Void Loop ()
DigitalWrite (trig_pin, baixo); /* pino de gatilho é limpo*/
toutmicmicrosegunds (2);
DigitalWrite (trig_pin, alto); /*O pino de gatilho é definido para 10 microssegundos*/
toutmicmicrosegunds (10);
DigitalWrite (trig_pin, baixo);
duração = pulseína (echo_pin, alta);/*lê o ecopina e retorna o tempo de viagem em microssegundos*/
dist_cm = duração * sound_speed/2; /*Fórmula de cálculo de distância*/
Serial.print ("Distância do objeto em (cm):"); /*Imprime a distância no monitor serial*/
Serial.println (dist_cm);
atraso (1000);

O código acima explica o funcionamento do sensor ultrassônico com o módulo ESP32. Aqui começamos nosso código definindo pinos de gatilho e eco. O pino 5 e o pino 18 do ESP32 são definidos como gatilho e pino de eco, respectivamente.

const int trig_pin = 5;
const int eCHO_PIN = 18;

A velocidade do som é definida como 0.034 cm/EUA a 20ºC. Estamos tomando valores em cm/nós para mais precisão.

#Define Sound_speed 0.034

Então inicializamos duas variáveis duração e Dist_cm do seguinte modo

longa duração;
flutuar dist_cm;

A variável de duração salvará o tempo de viagem de onda ultrassônica. Dist_cm salvará a distância medida.

No configurar() Parte primeiro comunicação inicializada definindo a taxa de transmissão. Dois pinos definidos anteriormente serão declarados como entrada e saída. Pino de gatilho 5 é definido como saída enquanto pino de eco 18 é definido como entrada.

Serial.começar (115200);
pinmode (trig_pin, saída);
pinmode (echo_pin, entrada);

No laço() Parte do código primeiro vamos limpar o pino de gatilho, definindo -o baixo e dará 2 microssegundos atrasos, então definiremos esse pino tão alto para 10 microssegundos. A razão pela qual estamos fazendo isso é garantir a leitura correta durante a medição da distância, ela nos dará um pulso alto limpo.

DigitalWrite (trig_pin, baixo); /* pino de gatilho é limpo*/
toutmicmicrosegunds (2);
DigitalWrite (trig_pin, alto); /*O pino de gatilho é definido para 10 microssegundos*/
toutmicmicrosegunds (10);
DigitalWrite (trig_pin, baixo);

Próximo usando Pulsein Função Vamos ler o tempo de viagem de ondas sonoras. Pulsein A função lê uma entrada como alta ou baixa. Ele retorna o comprimento do pulso em microssegundos usando esse comprimento de pulso, podemos calcular o tempo total tomado por onda do sensor para o corpo do objeto e de volta ao recebimento da extremidade do sensor.

duração = pulseína (echo_pin, alto);

Em seguida, usando a fórmula de velocidade, calculamos a distância total do objeto:

dist_cm = duração * sound_speed/2;

A distância medida do objeto é impressa no monitor serial:

Serial.print ("Distância do objeto em (cm):");
Serial.println (dist_cm);

Quando o objeto está próximo

Agora coloque um objeto próximo ao sensor ultrassônico e verifique a distância medida na janela do monitor serial do Arduino IDE.

Saída

A distância do objeto é mostrada no terminal de saída. Agora o objeto é colocado a 5 cm do sensor ultrassônico.

Quando o objeto está longe

Agora, para verificar nosso resultado, colocaremos objetos longe do sensor e verificaremos o funcionamento do sensor ultrassônico. Coloque objetos como mostrados na imagem abaixo:

Saída

A janela de saída nos dará uma nova distância e, como podemos ver que o objeto está longe do sensor, de modo que a distância medida é de 15 cm do sensor ultrassônico.

Conclusão

A distância de medição tem uma ótima aplicação quando se trata de robótica e outros projetos, existem maneiras diferentes de medir a distância um dos métodos amplamente utilizados de medição de distância com o ESP32 está usando um sensor ultrassônico. Aqui, este artigo cobrirá todas as etapas necessárias para integrar e começar a medir sensores com ESP32.