ESP32 - Relé de conmutación para sensor de puerta

Este tutorial le indica cómo usar el ESP32 para alternar el estado del relé cada vez que se cierra la puerta.

Podemos ampliar este tutorial para usar el sensor de puerta para controlar una tira de LEDs, una sirena, una bombilla o un actuador... conectándolos al relé.

Acerca de Relé y Sensor de Puerta

Tenemos tutoriales específicos sobre relé y sensor de puerta. Cada tutorial contiene información detallada e instrucciones paso a paso sobre la distribución de pines de hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtén más información sobre ellos en los siguientes enlaces:

Diagrama de Cableado

Diagrama de cableado del relé para el sensor de puerta ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

Código ESP32 - Sensor de Puerta que conmuta el relé

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-door-sensor-toggle-relay */ #define DOOR_SENSOR_PIN 16 // ESP32 pin GPIO16 connected to door sensor's pin #define RELAY_PIN 26 // ESP32 pin GPIO26 connects to the IN pin of relay // variables will change: int relayState = LOW; // the current state of relay int lastDoorState; // the previous state of door sensor int currentDoorState; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected, toggles state of relay"); // toggle state of relay relayState = !relayState; // control relay arccoding to the toggled state digitalWrite(RELAY_PIN, relayState); } }

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado como en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej., ESP32 Dev Module) y el puerto COM.
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Upload en el IDE de Arduino.
  • Acerca el imán al reed switch y luego aléjalo del reed switch. Repite esto varias veces.
  • Observa el cambio en el estado del relé.

Explicación del código línea por línea

El código de ESP32 anterior contiene una explicación línea por línea. ¡Por favor lea los comentarios en el código!

En el código, relayState = !relayState es equivalente al siguiente código:

if(relayState == LOW) relayState = HIGH; else relayState = LOW;

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!