ESP8266 - Teclado - Relé

Este tutorial te enseña cómo usar un ESP8266 y un teclado numérico para controlar un relé. Cuando el usuario introduce la contraseña correcta en el teclado, el ESP8266 activará el relé.

El tutorial además proporciona el código ESP8266 que activa un relé durante una cierta duración y luego lo desactiva sin utilizar la función delay(). El código ESP8266 también acepta varias contraseñas.

Al conectar un relé a una cerradura electromagnética, a una cerradura de solenoide, a un actuador lineal, a un elemento calefactor, a una bomba o a un ventilador ... Podemos entonces usar un teclado numérico para controlarlos.

Relé de teclado ESP8266 NodeMCU

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×Teclado
1×Relé
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 de Teclado numérico y relé

Si no estás familiarizado con el teclado numérico y el relé (incluyendo la distribución de pines, el funcionamiento, la programación, etc.), los siguientes tutoriales pueden ayudarte:

Diagrama de Cableado

Diagrama de cableado del ESP8266 NodeMCU, teclado y relé

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 - encender el relé si la contraseña es correcta

Si la contraseña es correcta, el código siguiente activará un relé.

/* * 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-keypad-relay */ #include <Keypad.h> #define RELAY_PIN D0 // The ESP8266 pin connected to the IN pin of relay #define ROW_NUM 4 // 4 rows #define COLUMN_NUM 3 // 3 columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // The ESP8266 pins connect to the column pins Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // change your password here const String password_3 = "9765"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); digitalWrite(RELAY_PIN, HIGH); } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

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 tutorial si es tu primera vez usando ESP8266.
  • Conecta los componentes tal como se muestran 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 (por ejemplo NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Conecta un cable USB al ESP8266 y a la computadora.
  • Abre el Arduino IDE, selecciona la placa y el puerto adecuados.
  • Haz clic en el icono de Bibliotecas en la barra izquierda del Arduino IDE.
  • Busca la “keypad” y localiza la biblioteca keypad creada por Mark Stanley y Alexander Brevig.
  • Luego, presiona el botón Instalar para agregar la biblioteca keypad.
librería de teclado ESP8266 NodeMCU
  • Busca “ezOutput” y localiza la biblioteca ezOutput de ArduinoGetStarted.
  • Presione el botón Instalar para instalar la biblioteca ezOutput.
Biblioteca de salida para ESP8266 NodeMCU
  • Copie el código y ábralo en el IDE de Arduino.
  • Haga clic en el botón Subir en el IDE de Arduino para enviar el código al ESP8266.
Subir código al IDE de Arduino
  • Ingresa 1234 y luego pulsa #.
  • Después, introduce 9765 y pulsa #.
  • Verifica el Monitor serie para la salida y el estado del relé.
COM6
Send
The incorrect password! try again The correct password! Turning ON relay
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explicación del código

Las contraseñas autorizadas están predefinidas en el código ESP8266. Se utiliza una cadena para almacenar la contraseña introducida por los usuarios, a la que se hace referencia como input string. En el teclado numérico, dos teclas (* y #) se utilizan para fines especiales: borrar la contraseña y terminar la contraseña. Cuando se pulsa una tecla en el teclado:

  • Si la tecla pulsada no es ninguna de las dos teclas especiales, se añade a la cadena de entrada.
  • Si la tecla pulsada es *, la cadena de entrada se borra. Esto puede utilizarse para empezar o reiniciar el ingreso de la contraseña.
  • Si la tecla pulsada es #:
    • El ESP8266 verifica si cadena de entrada coincide con alguna de las contraseñas predefinidas, el relé se enciende.
    • Independientemente de si la contraseña es correcta o no, la cadena de entrada se borra para la siguiente entrada.

Código ESP8266 - activar un relé durante un periodo de tiempo si la contraseña es correcta

Si la contraseña es correcta, el relé se activa durante 5 segundos. Después de eso, el relé se apaga.

/* * 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-keypad-relay */ #include <Keypad.h> #include <ezOutput.h> #define RELAY_PIN D0 // The ESP8266 pin connected to the IN pin of relay #define ROW_NUM 4 // 4 rows #define COLUMN_NUM 3 // 3 columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // The ESP8266 pins connect to the column pins Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); ezOutput relay(RELAY_PIN); const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // change your password here const String password_3 = "9765"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed relay.low(); } void loop() { relay.loop(); // MUST call the loop() function first char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); relay.low(); // set low before making a high pulse relay.pulse(RELAY_ON_TIME); // turn on relay in RELAY_ON_TIME duration and then turn off } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

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!