ESP8266 - Verrouillage de porte à clavier
Ce tutoriel vous explique comment construire un système de verrouillage de porte par mot de passe en utilisant un ESP8266, un clavier et un verrou à solénoïde ou un verrou électromagnétique. Voici le fonctionnement du système de verrouillage de porte :
- Les utilisateurs saisissent le mot de passe via le clavier.
- L'ESP8266 vérifie le mot de passe.
- Si le mot de passe saisi est valide, l'ESP8266 désactive le verrou à solénoïde pour déverrouiller la porte. La porte reste déverrouillée pendant un temps spécifique (par exemple, 20 secondes) avant de se verrouiller automatiquement à nouveau.
- Le code de l'ESP8266 prend en charge plusieurs mots de passe.
Pour simplifier, le tutoriel est divisé en plusieurs étapes, allant de facile à difficile :
- Partie 1 : Un système de verrouillage de porte simple avec Arduino Nano, clavier, serrure à solénoïde ou serrure électromagnétique.
- Partie 2 : (Facultatif) Ajout de la prise en charge de plusieurs mots de passe
- Partie 4 : (Facultatif) Ajout d'un bip sonore lors de la pression des touches du clavier.
- Partie 5 : (Facultatif) Ajout d'un capteur de porte au verrou de porte à clavier.
- Partie 6 : (Facultatif) Gestion et stockage des mots de passe valides dans l'EEPROM interne de l'Arduino Nano
- Partie 7 : (Facultatif) Enregistrement de l'historique d'accès sur carte SD
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du clavier, du verrou à solénoïde et du verrou électromagnétique
Le verrou à solénoïde et le verrou électromagnétique sont utilisés pour verrouiller/déverrouiller la porte. Ils diffèrent principalement l'un de l'autre en termes de conception mécanique. Leur câblage pour l'ESP8266 est similaire. Le code ESP8266 pour les contrôler est le même.
Si vous n'êtes pas familier avec le clavier, le verrou à solénoïde, le verrou électromagnétique (brochage, fonctionnement, programmation...), les tutoriels suivants peuvent vous aider à apprendre :
Diagramme de câblage
- Schéma de câblage avec ESP8266, clavier et serrure à solénoïde
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.
- Schéma de câblage avec ESP8266, clavier et serrure électromagnétique
This image is created using Fritzing. Click to enlarge image
Code ESP8266 - Serrure de porte à clavier
É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 votre première utilisation de l'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 l'Arduino IDE sur votre ordinateur.
- Choisissez la bonne carte ESP8266, comme par exemple le NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
- Connectez un câble USB entre l'ESP8266 et le PC.
- Ouvrez l'Arduino IDE, sélectionnez la bonne carte et le bon port.
- 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 compléter l'installation de la bibliothèque de clavier.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'ESP8266.
- Ouvrez le moniteur série.
- Appuyez sur les touches 12345 suivi du symbole #.
- Ensuite, appuyez sur les touches 1234ABC suivi du symbole #.
- Vérifiez l'état de la langue de la serrure pendant 20 secondes.
- Consultez le résultat sur le moniteur série.
Explication du code
Les mots de passe valides sont prédéfinis dans le code ESP8266. Une chaîne 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 : effacer le mot de passe et terminer le mot de passe. Le système fonctionne comme suit :
- À part deux touches spéciales, si une autre touche est pressée, elle est ajoutée à la chaîne d'entrée
- Si * est pressé, la chaîne d'entrée est effacée. Vous pouvez l'utiliser pour initier ou recommencer à saisir le mot de passe
- Si # est pressé :
- L'ESP8266 compare la chaîne d'entrée avec les mots de passe pré-définis. S'il correspond à un des mots de passe pré-définis, l'ESP8266 contrôle le relais pour déverrouiller la porte.
- Que le mot de passe soit correct ou non, l'ESP8266 efface la chaîne d'entrée pour la prochaine saisie.
Code ESP8266 - Clés Multiples
Ajout du bip sonore lors de la pression sur le clavier.
Nous pouvons rendre la serrure de porte réactive en ajoutant un buzzer piézoélectrique pour générer un bref bip à chaque fois qu'une touche du clavier est pressée.
Il est assez simple de l'ajouter. Nous laissons donc cette partie à votre créativité. Vous pouvez consulter le tutoriel ESP8266 - Bip du clavier pour plus de conseils.
Ajout d'un capteur de porte à la serrure de porte à clavier
Dans le code mentionné précédemment, l'ESP8266 verrouille la porte après un délai suite au déverrouillage. Cependant, dans les applications pratiques, un capteur de porte est généralement ajouté au système. Si l'ESP8266 détecte que la porte est fermée, il verrouille immédiatement la porte au lieu d'attendre le délai.
Pour ne pas vous submerger, nous n'avons pas inclus le capteur de porte dans le schéma de câblage et le code. À la place, nous laissons cette partie à votre créativité. Vous pouvez consulter les tutoriels ESP8266 - Capteur de porte et ESP8266 - Capteur de porte contrôle Relais pour plus de conseils.
Gestion et stockage des mots de passe valides dans l'EEPROM
Le code ci-dessus contient des mots de passe valides (UID) qui sont codés en dur dans le code ESP8266. Cela signifie que si vous souhaitez ajouter ou supprimer des mots de passe, vous devez modifier le code et le télécharger à nouveau sur l'ESP8266, ce qui est peu pratique.
Dans les applications réelles, il est nécessaire de gérer les mots de passe sans avoir à modifier et télécharger le code à chaque fois. Pour ce faire, les mots de passe peuvent être stockés dans l'EEPROM au lieu d'être codés en dur. Par conséquent, une méthode permettant de gérer facilement les mots de passe depuis l'EEPROM est nécessaire.
Deux méthodes sont disponibles pour gérer les mots de passe dans l'EEPROM :
- Utilisez des mots de passe principaux
- En utilisant un mot de passe comme mot de passe principal ADD, de nouveaux mots de passe peuvent être ajoutés au système. Une fois que l'ESP8266 détecte le mot de passe principal ADD, il bascule entre le mode ADD et le mode OPERATION.
- Pendant le mode ADD, l'ESP8266 ajoute tout nouveau mot de passe qu'il détecte à l'EEPROM.
- Une approche similaire est utilisée pour le mot de passe principal DELETE et le mode DELETE.
- Utilisez des commandes ADD/DELETE via Serial/Bluetooth/IR
- Les commandes sont transmises via Serial/Bluetooth/IR, en utilisant des outils tels que le Serial Monitor, l'application Bluetooth ou le contrôleur IR.
- Les commandes consistent en une directive (ADD/DELETE) et le mot de passe.
Afin d'utiliser l'une des deux méthodes ci-dessus, une quantité considérable de code ESP8266 doit être ajoutée. Pour ceux qui sont novices en programmation, cela peut être une tâche difficile. En conséquence, ce tutoriel vise à fournir une compréhension de base du système de verrouillage de porte sans submerger les débutants avec un code complexe. Si vous souhaitez mettre en œuvre ce système à des fins pratiques, veuillez nous contacter via notre service de programmation payant
Stockage de l'historique d'accès sur la carte SD
Pour suivre l'historique des accès, il peut être nécessaire d'enregistrer le statut d'accès (AUTORISÉ/REFUSÉ), ainsi que la date et l'heure. Étant donné que l'EEPROM a une capacité insuffisante pour stocker tout l'historique, une carte SD peut être utilisée à la place. Vous pouvez trouver des instructions à ce sujet dans le tutoriel ESP8266 - Enregistrer des données avec horodatage sur une carte SD.