ESP8266 - Cerradura electromagnética controlada por botón

El tutorial te enseña cómo usar un ESP8266 y un botón para controlar una cerradura electromagnética. Cuando se presione el botón, el ESP8266 desbloqueará la puerta durante un período de tiempo (p. ej., 10 segundos). Después de eso, la puerta volverá a cerrarse.

Pasaremos de lo fácil a lo difícil en dos pasos:

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×Cerradura Electromagnética
1×Relé
1×Adaptador de Corriente 12V
1×Conector de Alimentación DC
1×Botón para Protoboard con Tapa
1×Kit de Botón para Protoboard
1×Botón Pulsador de Panel
1×Módulo de Botón Pulsador
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.

Acerca del botón y de la cerradura electromagnética

Si no está familiarizado con cerraduras electromagnéticas y botones (incluidos los esquemas de pines, su funcionamiento y la programación), los siguientes tutoriales pueden ayudar:

Diagrama de Cableado

Diagrama de cableado de la cerradura electromagnética con botón 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.

Código ESP8266 - Botón para controlar la cerradura electromagnética sin anti-rebote

/* * 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-button-control-electromagnetic-lock */ #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define RELAY_PIN D8 // The ESP8266 pin connected to relay's pin int prev_button_state; // The previous state of button int button_state; // The current state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode digitalWrite(RELAY_PIN, HIGH); // lock the door button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if (prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

Pasos R\u00e1pidos

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

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que utilizas ESP8266.
  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (Módulo ESP-12E)), y su puerto COM respectivo.
  • Conecta un ESP8266 a una computadora usando un cable USB.
  • Abre el Arduino IDE, selecciona la placa y el puerto adecuados.
  • Copia el código y ábrelo en el Arduino IDE.
  • Haz clic en el botón Subir en el Arduino IDE para compilar y cargar el código al ESP8266.
  • Acerca la placa de armadura al electroimán.
  • Pulsa el botón una vez.
  • Observa la atracción entre la placa de armadura y el electroimán durante 10 segundos.

Explicación del código

¡Echa un vistazo a la explicación línea por línea contenida en los comentarios del código fuente!

※ Nota:

En la práctica, el código mencionado anteriormente no siempre funciona correctamente. Para garantizar que funcione correctamente, necesitamos aplicar el anti-rebote para el botón. El anti-rebote para el botón puede ser complicado para quienes recién comienzan. Afortunadamente, la biblioteca ezButton lo hace mucho más sencillo.

Código ESP8266 - Controles de Botón para Cerradura Electromagnética con Rebote

¿Cuál es el propósito del antirrebote? ⇒ Ver ESP8266 - Button Debounce tutorial para entender por qué es necesario el antirrebote.

/* * 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-button-control-electromagnetic-lock */ #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define RELAY_PIN D8 // The ESP8266 pin connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object for pin D8 void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds digitalWrite(RELAY_PIN, HIGH); // lock the door } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

Pasos R\u00e1pidos

  • Conecte los componentes como se muestra en el diagrama.
  • Conecte la placa ESP8266 a su computadora usando un cable USB.
  • Abra Arduino IDE en su computadora.
  • Elija la placa ESP8266 correcta, por ejemplo (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Instale la biblioteca ezButton. Consulte Cómo para instrucciones.
  • Abra el código en el Arduino IDE y haga clic en el botón Subir para cargarlo al ESP8266.
  • Acérque la placa de armadura al electroimán y presione el botón una vez.
  • Observe la atracción entre la placa de armadura y el electroimán durante 10 segundos.

※ Nota:

En el código anterior, utilizamos la función delay. Como resultado, no es necesario implementar anti-rebote en el botón. Sin embargo, seguimos proporcionando el código con anti-rebote por si acaso te gustaría realizar más tareas sin usar la función delay. Consulta Cómo usar millis() en lugar de delay() para obtener más información.

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!