ESP32 - Sensor Infravermelho de Evitar Obstáculos

Este tutorial ensina você a usar o ESP32 com o sensor infravermelho de evitar obstáculos para detectar a presença de um obstáculo.

Sobre o Sensor IR de Evitar Obstáculos

O sensor de obstáculos IR (infravermelho) é usado para saber se existe algum obstáculo na frente do módulo do sensor, usando um sinal IR. O alcance de detecção vai de 2 cm a 30 cm e pode ser ajustado por um potenciômetro embutido.

Pinagem

Um sensor IR de evitar obstáculos tem três pinos:

  • Pino GND: conecte este pino ao GND (0V)
  • Pino VCC: conecte este pino ao VCC (5V ou 3.3v)
  • Pino OUT: é um pino de saída: LOW se houver um obstáculo, HIGH se não houver obstáculo. Este pino precisa ser conectado a um pino de entrada do ESP32.
Pinagem do Sensor IR de Evitar Obstáculos

Como Funciona

Um módulo sensor infravermelho de obstáculos é formado por um transmissor IR e um receptor IR. O transmissor IR emite o sinal IR, enquanto o receptor IR procura o sinal IR refletido para saber se o objeto está presente ou não. A presença do obstáculo aparece no pino OUT:

  • Se o obstáculo estiver presente, o pino OUT do sensor fica LOW
  • Se o obstáculo NÃO estiver presente, o pino OUT do sensor fica HIGH

※ Nota:

Durante o transporte, o sensor pode ficar deformado, o que pode causar mau funcionamento. Se o sensor não estiver funcionando bem, ajuste o transmissor e o receptor IR para que fiquem paralelos.

Diagrama de Ligação

  • Como conectar o ESP32 e o sensor de evitar obstáculos usando uma protoboard
Diagrama de Ligação do ESP32 com Sensor IR de Evitar Obstáculos

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Como conectar o ESP32 e o sensor de evitar obstáculos

Como Programar para o Sensor IR de Evitar Obstáculos

  • Inicialize o pino do ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino GPIO18
pinMode(18, INPUT_PULLUP);
  • Leia o estado do pino do ESP32 usando a função digitalRead().
int state = digitalRead(18);

Código ESP32

Existem dois casos de uso para criar uma aplicação de evitar obstáculos:

  • Executar ações enquanto o obstáculo está presente ou não está presente
  • Executar ações quando o obstáculo é detectado ou removido

Código ESP32 para verificar se o obstáculo está presente

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-infrared-obstacle-avoidance-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to OUT pin of IR obstacle avoidance sensor void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); if (state == LOW) Serial.println("The obstacle is present"); else Serial.println("The obstacle is NOT present"); delay(100); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para ESP32 no Arduino IDE.
  • Copie o código acima e cole no Arduino IDE.
  • Compile e faça upload do código para a placa ESP32 clicando no botão Upload do Arduino IDE
  • Coloque um obstáculo na frente do sensor por um tempo e depois retire-o.
  • Veja o resultado no Serial Monitor. Ele fica parecido com o abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Código ESP32 para detectar o obstáculo

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-infrared-obstacle-avoidance-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to OUT pin of IR obstacle avoidance sensor int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The obstacle is detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state lastState = currentState; }

Passos Rápidos

  • Copie o código acima e cole no Arduino IDE.
  • Compile e faça upload do código para a placa ESP32 clicando no botão Upload do Arduino IDE
  • Coloque um obstáculo na frente do sensor por um tempo e depois retire-o.
  • Veja o resultado no Serial Monitor. Ele fica parecido com o abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
The obstacle is detected The obstacle is cleared
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Vídeo

※ 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!