Arduino Nano 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 muchos tipos de aplicaciones, especialmente para la seguridad. Se utiliza para detectar y monitorear entradas (como puertas, ventanas, etc.). Este tutorial proporciona instrucciones sobre cómo usar Arduino Nano ESP32 con el sensor de puerta.

Hardware Requerido

1×Arduino Nano ESP32
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 Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

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 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
Diagrama de pines del sensor de la puerta

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

Cómo funciona el sensor de la puerta

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

  • El imán es la parte móvil. Debe estar fijado a la puerta o a la ventana
  • El interruptor de láminas es la parte fija. Debe estar fijado 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 está abierto cuando está lejos del imán
Sensor de puerta: cómo funciona

※ Nota:

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

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

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

Así:

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

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

Diagrama de cableado del sensor de puerta para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Cómo programar el sensor de la puerta

  • Inicializa el pin del Arduino Nano ESP32 en modo de entrada digital utilizando la función pinMode(). Por ejemplo, el pin D2.
pinMode(D2, INPUT_PULLUP);
  • Lee el estado del pin del Arduino Nano ESP32 utilizando la función digitalRead().
int door_state = digitalRead(D2);

Código para Arduino Nano ESP32: Verificar si la puerta está abierta o cerrada

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to door sensor's pin int door_state; void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Pasos R\u00e1pidos

  • Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en Arduino IDE.
  • Copia el código anterior y pégalo en Arduino IDE.
  • Compila y carga el código a la placa Arduino Nano ESP32 haciendo clic en el botón Cargar de Arduino IDE.
  • Acerca el imán al interruptor de láminas y luego aléjalo 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 para Arduino Nano ESP32 - Detección de apertura y cierre de puertas

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Compila y carga el código a la placa Arduino Nano ESP32 haciendo clic en el botón Subir en el IDE de Arduino.
  • Acerca el imán al interruptor de láminas y luego aléjalo del interruptor de láminas.
  • Consulta el resultado en el Monitor Serial. Se ve a continuación:
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!