ESP8266 - Sensor de Obstáculo

Este tutorial ensina você a usar o ESP8266 com o sensor infravermelho de desvio de obstáculos. Em detalhes, vamos aprender:

Sobre o Sensor IR de Desvio de Obstáculos

O sensor infravermelho de obstáculos foi projetado para detectar a presença de qualquer obstáculo em seu caminho usando um sinal infravermelho. Ele tem um alcance de detecção de 2 cm a 30 cm, que pode ser ajustado com um potenciômetro embutido.

Pinagem do Sensor Infravermelho de Desvio de Obstáculos

O sensor IR de desvio de obstáculos tem três pinos:

  • Pino GND: deve ser conectado ao GND (0V)
  • Pino VCC: deve ser conectado ao VCC (5V ou 3.3v)
  • Pino OUT: é um pino de saída, LOW quando há um obstáculo, HIGH quando não há. Este pino deve ser conectado a um pino de entrada do ESP8266.
Pinagem do sensor IR de desvio de obstáculos

Como Funciona

O módulo do sensor infravermelho de obstáculos tem um transmissor e um receptor infravermelhos embutidos. O transmissor emite um sinal infravermelho. O receptor procura o sinal refletido para detectar se há um objeto ou não. O pino OUT indica a presença de um obstáculo:

  • Se algo estiver bloqueando o sensor, o pino OUT ficará LOW
  • Se nada estiver bloqueando o sensor, o pino OUT ficará HIGH

※ Nota:

Durante o transporte, é possível que este sensor fique deformado, o que pode causar mau funcionamento. Se você perceber que o sensor não está funcionando corretamente, tente ajustar o transmissor e o receptor IR para alinhá-los em paralelo um ao outro.

Diagrama de Ligação

Diagrama de ligação do sensor IR de desvio de obstáculos com ESP8266 NodeMCU

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.

Como Programar o Sensor IR de Desvio de Obstáculos

  • Inicialize o pino do ESP8266 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D7:
pinMode(D7, INPUT_PULLUP);
  • Leia o estado do pino do ESP8266 por meio da função digitalRead().
int state = digitalRead(D7);

Código ESP8266

Há duas abordagens para programar uma aplicação de desvio de obstáculos:

  • Tomar uma ação quando o obstáculo está presente ou ausente
  • Tomar uma ação quando o obstáculo é detectado ou removido

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

/* * 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-obstacle-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to OUT pin of IR obstacle avoidance sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input 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

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 (e.g. NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload para enviar o código ao ESP8266.
  • Coloque um obstáculo na frente do sensor e depois retire-o.
  • Verifique o resultado no Serial Monitor.
∞
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
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
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Código ESP8266 para detectar obstáculo

/* * 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-obstacle-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to OUT pin of IR obstacle avoidance sensor int prev_state = HIGH; // The previous state from the input pin int obstacle_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: obstacle_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && obstacle_state == LOW) Serial.println("The obstacle is detected"); else if (prev_state == LOW && obstacle_state == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state prev_state = obstacle_state; }

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 (e.g. NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código acima e abra-o no Arduino IDE.
  • Clique no botão Upload no Arduino IDE para enviar o código ao ESP8266.
  • Coloque um obstáculo na frente do sensor por um tempo e depois retire-o.
  • Verifique os resultados no Serial Monitor.
∞
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
The obstacle is detected The obstacle is cleared
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

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!