ESP8266 - Teclado - Relé

Este tutorial ensina você a usar um ESP8266 e um teclado para controlar um relé. Quando o usuário digita a senha correta no teclado, o ESP8266 ativa o relé.

O tutorial também fornece o código ESP8266 que ativa um relé por um determinado tempo e depois o desativa sem usar a função delay(). O código ESP8266 também aceita várias senhas.

Ao conectar um relé a uma Trava Eletromagnética, uma Trava Solenoide, um Atuador Linear, um Elemento de Aquecimento, uma Bomba ou um Ventilador ... Podemos então usar um teclado para controlá-los.

Teclado e relé com ESP8266 NodeMCU

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Teclado
1×Relé
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Teclado e o Relé

Se você não conhece o teclado e o relé (incluindo pinagem, funcionamento, programação etc.), os tutoriais a seguir podem ajudar:

Diagrama de Ligação

Diagrama de ligação do teclado e relé com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Código ESP8266 - ligar o relé se a senha estiver correta

Se a senha estiver correta, o código a seguir ativará um relé.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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 } } }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Conecte um cabo USB ao ESP8266 e ao PC.
  • Abra o Arduino IDE e selecione a placa e a porta apropriadas.
  • Clique no ícone Libraries na barra lateral esquerda do Arduino IDE.
  • Pesquise por “keypad” e localize a biblioteca de teclado criada por Mark Stanley e Alexander Brevig.
  • Em seguida, pressione o botão Install para adicionar a biblioteca de teclado.
Biblioteca de teclado para ESP8266 NodeMCU
  • Procure por “ezOutput” e localize a biblioteca ezOutput da ArduinoGetStarted.
  • Pressione o botão Install para instalar a biblioteca ezOutput.
Biblioteca de saída para ESP8266 NodeMCU
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload no Arduino IDE para enviar o código ao ESP8266.
Upload de código no Arduino IDE
  • Digite 1234 e depois pressione #.
  • Em seguida, digite 9765 e pressione #.
  • Confira o Serial Monitor para ver a saída e o estado do relé.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The incorrect password! try again The correct password! Turning ON relay
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Explicação do Código

As senhas autorizadas são pré-definidas no código ESP8266. Uma string é usada para armazenar a senha digitada pelo usuário, chamada de input string. No teclado, duas teclas (* e #) são usadas para fins especiais: apagar a senha e finalizar a senha. Quando uma tecla do teclado é pressionada:

  • Se a tecla pressionada não for uma das duas teclas especiais, ela é adicionada à input string.
  • Se a tecla pressionada for *, a input string é apagada. Isso pode ser usado para iniciar ou reiniciar a digitação da senha.
  • Se a tecla pressionada for #:
    • O ESP8266 verifica se a input string corresponde a uma das senhas pré-definidas; se corresponder, o relé é ligado.
    • Independentemente de a senha estar correta ou não, a input string é apagada para a próxima entrada.

Código ESP8266 - ligar um relé por um período de tempo se a senha estiver correta

Se a senha estiver correta, o relé é ligado por 5 segundos. Depois disso, o relé é desligado.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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 } } }

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!