ESP8266 - Clavier - Relais

Ce tutoriel vous explique comment utiliser un ESP8266 et un clavier pour contrôler un relais. Lorsque l'utilisateur saisit le bon mot de passe sur le clavier, l'ESP8266 active le relais.

Le tutoriel fournit également le code ESP8266 qui active un relais pour une certaine durée puis le désactive sans utiliser la fonction delay(). Le code ESP8266 accepte également plusieurs mots de passe.

En attachant un relais à un Verrou Électromagnétique, un Verrou à Solénoïde, un Actionneur Linéaire, un Élément Chauffant, une Pompe, ou un Ventilateur... Nous pouvons alors utiliser un clavier pour les contrôler.

Relais à clavier ESP8266 NodeMCU

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Keypad
1×Relay
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du clavier et du relais

Si vous n'êtes pas familier avec le clavier et le relais (y compris le brochage, le fonctionnement, la programmation, etc.), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du relais à clavier ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Code ESP8266 - activer le relais si le mot de passe est correct

Si le mot de passe est correct, le code suivant activera un relais.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 } } }

Étapes rapides

Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Câblez les composants comme indiqué dans le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, par exemple (par ex. NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Connectez un câble USB à l'ESP8266 et au PC.
  • Ouvrez Arduino IDE, sélectionnez la carte et le port appropriés.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  • Recherchez “keypad” et localisez la bibliothèque de clavier créée par Mark Stanley et Alexander Brevig.
  • Ensuite, appuyez sur le bouton Install pour ajouter la bibliothèque de clavier.
Bibliothèque de clavier ESP8266 NodeMCU
  • Recherchez "ezOutput" et localisez la bibliothèque ezOutput de ArduinoGetStarted.
  • Appuyez sur le bouton Install pour installer la bibliothèque ezOutput.
Bibliothèque de sortie ESP8266 NodeMCU
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'ESP8266.
Téléversement de code Arduino IDE
  • Tapez 1234 puis appuyez sur #.
  • Ensuite, entrez 9765 et appuyez sur #.
  • Vérifiez le moniteur série pour le résultat et l'état du relais.
COM6
Send
The incorrect password! try again The correct password! Turning ON relay
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explication du code

Les mots de passe autorisés sont prédéfinis dans le code ESP8266. Une chaîne de caractères est utilisée pour stocker le mot de passe saisi par les utilisateurs, appelée chaîne d'entrée. Sur le clavier, deux touches (* et #) sont utilisées à des fins spéciales : pour effacer le mot de passe et pour terminer le mot de passe. Lorsqu'une touche sur le clavier est pressée :

  • Si la touche pressée n'est ni l'une ni l'autre des deux touches spéciales, elle est ajoutée à la chaîne de saisie.
  • Si la touche pressée est *, la chaîne de saisie est effacée. Cela peut être utilisé pour commencer ou recommencer à saisir le mot de passe.
  • Si la touche pressée est # :
    • L'ESP8266 vérifie si la chaîne de saisie correspond à l'un des mots de passe pré-définis, le relais est activé.
    • Que le mot de passe soit correct ou non, la chaîne de saisie est effacée pour la prochaine saisie.

Code ESP8266 - activer un relais pendant une période donnée si le mot de passe est correct

Si le mot de passe est correct, le relais est activé pendant 5 secondes. Après cela, le relais est éteint.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 } } }

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!