ESP32 - Sensor de Puerta

El sensor de puerta (también conocido como sensor de entrada, sensor de contacto, o sensor de ventana) se utiliza ampliamente en una gran variedad de aplicaciones, especialmente para la seguridad. Se utiliza para detectar y monitorizar entradas (como puerta, ventana, ...). Este tutorial le enseña cómo usar ESP32 con el sensor de puerta.

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
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 Puerta
1×(Opcional) Conector de Alimentación DC
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
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 sensor de la puerta

Pinout del sensor de la puerta

El sensor de la puerta tiene dos componentes:

  • Un imán
  • Un interruptor de láminas, que tiene dos cables
Pinout del sensor de la puerta

Al igual que el interruptor o el botón, no es necesario diferenciar los dos cables del interruptor de láminas.

Cómo funciona el sensor de puertas

El imán y el interruptor de láminas se instalan en las puertas y ventanas como se indica a continuación:

  • El imán es la parte móvil. Debe estar sujeto a la puerta o a la ventana
  • El interruptor de láminas es la parte fija. Debe estar sujeto al marco de la puerta

Los dos componentes están en contacto cuando la puerta está cerrada.

  • El circuito del interruptor de láminas se cierra cuando está cerca del imán
  • El circuito del interruptor de láminas se abre cuando está lejos del imán
Sensor de puerta: cómo funciona

※ Nota:

Al igual que un botón, DEBEMOS usar la resistencia pull-up o pull-down en el pin del ESP32, que se conecta al interruptor de láminas.

Si conectamos el interruptor de láminas de la siguiente manera: un cable a GND, el otro al pin de entrada del ESP32 con una resistencia de pull-up:

  • El pin de entrada del ESP32 es bajo cuando el imán está cerca del interruptor de láminas
  • El pin de entrada del ESP32 es alto cuando el imán está lejos del interruptor de láminas

Así:

  • Si el pin de entrada del ESP32 está bajo, la puerta está cerrada
  • Si el pin de entrada del ESP32 está alto, la puerta está abierta
  • Si el pin de entrada del ESP32 cambia de bajo a alto, la puerta se está abriendo
  • Si el pin de entrada del ESP32 cambia de alto a bajo, la puerta se está cerrando

Diagrama de cableado entre el sensor de la puerta y el ESP32

Diagrama de cableado del 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ómo conectar ESP32 y sensor de puerta

Cómo programar el sensor de la puerta

  • Inicializa el pin ESP32 al modo de entrada digital utilizando la función pinMode(). Por ejemplo, pin GPIO19
pinMode(19, INPUT_PULLUP);
  • Lee el estado del pin del ESP32 usando la función digitalRead().
int doorState = digitalRead(19);

Código ESP32 - Verificar si la puerta está abierta o cerrada

/* * 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 */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Pasos R\u00e1pidos

  • Si esta es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en el IDE de Arduino.
  • 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 Subir del IDE de Arduino.
  • Mueve el imán cerca del interruptor de láminas y luego muévelo lejos del interruptor de láminas.
  • Consulta el resultado en el Monitor Serial. Se ve como lo siguiente:
COM6
Send
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Código ESP32 - Detección de eventos de apertura y cierre de la puerta

/* * 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 */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 connected to door sensor's pin int currentDoorState; // current state of door sensor int lastDoorState; // previous 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 currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == LOW && currentDoorState == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Copie el código anterior y péguelo en el IDE de Arduino.
  • Compilar y cargar el código a la placa ESP32 haciendo clic en el botón Upload en el IDE de Arduino.
  • Mueva el imán cerca del interruptor de láminas y luego aléjelo del interruptor de láminas.
  • Vea el resultado en el Monitor Serial. Se ve como lo siguiente:.
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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!