ESP8266 - Sensor de movimiento - Servomotor

Este tutorial te enseña cómo usar el ESP8266 y un sensor de movimiento para controlar un servomotor. En detalle:

Esto puede aplicarse en un proceso de automatización que desencadena acciones al detectar la presencia humana.

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Movimiento HC-SR501
1×Servomotor
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del servomotor y del sensor de movimiento

Si no estás familiarizado con el motor servo y el sensor de movimiento (incluido el esquema de pines, su funcionamiento, la programación, etc.), los siguientes tutoriales pueden ayudar:

Diagrama de Cableado

Diagrama de cableado del ESP8266 NodeMCU para sensor de movimiento y motor servo

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Por favor, tenga en cuenta que el diagrama de cableado mostrado arriba es adecuado únicamente para un servomotor con bajo par. En caso de que el motor vibre en lugar de girar, se debe utilizar una fuente de alimentación externa para proporcionar más potencia al servomotor. A continuación se muestra el diagrama de cableado con una fuente de alimentación externa para el servomotor.

Diagrama de cableado para ESP8266 NodeMCU, sensor de movimiento y servomotor con alimentación adicional.

This image is created using Fritzing. Click to enlarge image

Por favor, no olvides conectar la masa (GND) de la fuente externa a la masa del ESP8266.

Configuración Inicial

Time Delay AdjusterScrew it in anti-clockwise direction fully.
Detection Range AdjusterScrew it in clockwise direction fully.
Repeat Trigger SelectorPut jumper as shown on the image.
Configuración inicial del sensor de movimiento de Arduino

Código ESP8266 - El sensor de movimiento controla el motor servo

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-motion-sensor-servo-motor */ #include <Servo.h> #define MOTION_SENSOR_PIN D7 // The ESP8266 pin connected to motion sensor's pin #define SERVO_PIN D1 // The ESP8266 pin connected to servo motor's pin Servo servo; // create servo object to control a servo int angle = 0; // The current angle of servo motor int prev_motion_state; // The previous state of motion sensor int motion_state; // The current state of motion sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(MOTION_SENSOR_PIN, INPUT); // Configure the ESP8266 pin to the input mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); motion_state = digitalRead(MOTION_SENSOR_PIN); } void loop() { prev_motion_state = motion_state; // save the last state motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state if (motion_state == LOW && prev_motion_state == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!, rotating servo motor to 90°"); servo.write(90); } else if (motion_state == HIGH && prev_motion_state == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!, rotating servo motor to 0°"); servo.write(0); } }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, sigue estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu ordenador utilizando un cable USB.
  • Abre Arduino IDE en tu ordenador.
  • Elige la placa ESP8266 correcta, como por ejemplo NodeMCU 1.0 (Módulo ESP-12E), y su puerto COM correspondiente.
  • Conecta tu ESP8266 a un ordenador usando un cable USB.
  • Inicia Arduino IDE, selecciona la placa y el puerto adecuados.
  • Pega el código en el IDE y ábrelo.
  • Haz clic en el botón Subir en el IDE para enviar el código al ESP8266.
  • Mueve tu mano frente al sensor.
  • Observa los movimientos del servomotor.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!