ESP8266 - Sensor de Puerta - LED

Este tutorial explica cómo usar el ESP8266 y un sensor de puerta para controlar el LED. Aprenderemos dos aplicaciones diferentes:

Aplicación 1 - El LED está encendido cuando la puerta está abierta y el LED está apagado cuando la puerta está cerrada. El estado del LED está sincronizado con el estado del sensor de la puerta. En detalle:

Aplicación 2 - El estado del LED se alterna cada vez que se abre la puerta. Más específicamente:

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 Puerta
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Protoboard
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.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Acerca del LED y del sensor de puerta

Si no estás familiarizado con LED y el sensor de la puerta (incluyendo el esquema de pines, su funcionamiento y la programación), los siguientes tutoriales pueden ayudar:

Diagrama de Cableado

Diagrama de cableado del LED del sensor de puerta ESP8266 NodeMCU

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.

Aplicación 1 - El estado del LED está sincronizado con el estado del sensor de la puerta

Código ESP8266

/* * 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-door-sensor-led */ #define DOOR_SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUTPUT pin of door sensor #define LED_PIN D2 // The ESP8266 pin D2 connected to LED'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); // Configure the ESP8266 pin to the input pull-up mode pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open, turns on LED"); digitalWrite(LED_PIN, HIGH); // turn on LED } else { Serial.println("The door is closed, turns off LED"); digitalWrite(LED_PIN, LOW); // turn off LED } }

Pasos R\u00e1pidos

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

  • Consulta el cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu ordenador con un cable USB.
  • Abre Arduino IDE en tu ordenador.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Conecta un ESP8266 a tu ordenador con un cable USB.
  • Inicia Arduino IDE y selecciona la placa y el puerto correctos.
  • Copia el código y ábrelo en el Arduino IDE.
  • Haz clic en el botón Subir del Arduino IDE para compilar y cargar el código en el ESP8266.
Subir código en el IDE de Arduino
  • Abre y cierra la puerta
  • Observa el cambio en el estado del LED.

Podrás ver que el estado del LED está sincronizado con el estado del sensor de la puerta.

Explicación del código

¡Revisa la explicación línea por línea contenida en los comentarios del código fuente!

Aplicación 2 - El sensor de puerta alterna el LED

Código ESP8266 - Sensor de Puerta que alterna el LED

/* * 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-door-sensor-led */ #define DOOR_SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUTPUT pin of door sensor #define LED_PIN D2 // The ESP8266 pin D2 connected to LED's pin int led_state = LOW; // The current state of LED int prev_door_state; // The previous state of door sensor int door_state; // The current state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected, toggles the state of LED"); // toggle state of LED led_state = !led_state; // control LED according to the toggled state digitalWrite(LED_PIN, led_state); } }

Explicación del código

Puede encontrar la explicación en las líneas de comentario del código ESP8266 anterior.

En el código, la expresión led_state = !led_state es equivalente al siguiente código:

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

Pasos R\u00e1pidos

  • Copia el código y ábrelo en el IDE de Arduino.
  • Carga el código al ESP8266.
  • Abre y cierra la puerta varias veces.
  • Observa el cambio en el estado del LED.

Verás que el estado del LED se invierte cada vez que se cierra la puerta.

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!