ESP32 - Sensor de Movimento - Servo Motor

Este tutorial ensina como usar o ESP32 com o sensor de movimento HC-SR501 e um Servo Motor. Em detalhes:

Sobre o Servo Motor e o Sensor de Movimento

Temos tutoriais específicos sobre o servo motor e o sensor de movimento. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação com o ESP32, o código ESP32... Saiba mais sobre eles nos links a seguir:

Diagrama de Ligação

Diagrama de Ligação ESP32 Sensor de Movimento Servo Motor

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.

Configuração Inicial

Ajuste de Alcance de Detecção Gire totalmente no sentido horário.
Ajuste de Tempo de Atraso Gire totalmente no sentido anti-horário.
Seletor de Disparo Repetido Coloque o jumper como na imagem abaixo.
Configuração inicial do sensor de movimento ESP32

Código ESP32 - Sensor de Movimento Controla Servo Motor

/* * 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-motion-sensor-servo-motor */ #include <ESP32Servo.h> #define MOTION_SENSOR_PIN 22 // ESP32 pin GPIO22 connected to motion sensor's pin #define SERVO_PIN 26 // ESP32 pin GPIO26 connected to servo motor's pin Servo servo; // create servo object to control a servo // variables will change: int angle = 0; // the current angle of servo motor int lastMotionState; // the previous state of motion sensor int currentMotionState; // the current state of motion sensor void setup() { Serial.begin(9600); // initialize serial pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32 pin to input mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); currentMotionState = digitalRead(MOTION_SENSOR_PIN); } void loop() { lastMotionState = currentMotionState; // save the last state currentMotionState = digitalRead(MOTION_SENSOR_PIN); // read new state if (currentMotionState == LOW && lastMotionState == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!, rotating servo motor to 90°"); servo.write(90); } else if (currentMotionState == HIGH && lastMotionState == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!, rotating servo motor to 0°"); servo.write(0); } }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 no Arduino IDE.
  • Faça a ligação como na imagem acima.
  • Conecte a placa ESP32 ao seu PC por meio de um cabo USB Type-C
  • Abra o Arduino IDE no seu PC.
  • Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
  • Clique no ícone Libraries na barra esquerda do Arduino IDE.
  • Digite ESP32Servo na caixa de pesquisa e procure a biblioteca servo de Kevin Harrington,John K. Bennett.
  • Clique no botão Install para instalar a biblioteca de servo motor para o ESP32.
Biblioteca de servo motor para ESP32
  • 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 no Arduino IDE
  • Mova sua mão na frente do sensor
  • Veja a mudança do servo motor

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!