ESP8266 - Serrure de porte RFID
Ce tutoriel vous explique comment construire un système de verrouillage de porte en utilisant ESP8266, le module RFID/NFC RC522, un relais, un verrou à solénoïde ou un verrou électromagnétique, et éventuellement un LCD. Pour vous simplifier la tâche, le tutoriel vous guide dans la construction du verrou RFID en passant de simples à des étapes plus complexes. En détail, nous allons faire :
- Partie 1: Un système simple de verrouillage de porte RFID avec ESP8266, clavier, serrure à solénoïde ou serrure électromagnétique, supporte une seule clé RFID
- Partie 2 : (Optionnellement) Ajout du support de plusieurs clés RFID
- Partie 3 : (Optionnellement) Ajout d'un afficheur LCD au verrou RFID
- Partie 4 : (Optionnellement) Ajout d'un capteur de porte au verrou RFID
- Partie 5 : (Optionnellement) Gestion et stockage des clés RFID valides dans l'EEPROM interne de l'ESP8266
- Partie 6 : (Optionnellement) Stockage de l'historique d'accès sur carte SD
Si vous souhaitez construire un système de verrouillage de porte à l'aide d'un mot de passe, veuillez consulter ESP8266 - Serrure de porte à clavier.
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 module RFID/NFC RC522 et du verrou électromagnétique
Si vous n'êtes pas familier avec le module RFID/NFC RC522, le verrou électromagnétique, le verrou à solénoïde (y compris le brochage, son fonctionnement et comment le programmer), vous pouvez en apprendre davantage en suivant ces tutoriels :
#Composants du système de verrouillage de porte
Le système de verrouillage de porte comprend deux composants principaux :
- Verrou de porte : un ESP8266, un relais, un lecteur RFID/NFC, un verrou à solénoïde ou un verrou électromagnétique
- Clé de porte : étiquettes RFID/NFC
Fonctionnement d'une serrure de porte RFID/NFC
- L'utilisateur appuie sur une étiquette RFID/NFC sur le lecteur RFID/NFC, qui lit l'UID de l'étiquette.
- ESP8266 récupère ensuite l'UID du lecteur et le compare aux UID qui ont été définis dans le code.
- Si l'UID correspond à l'un des UID prédéfinis, ESP8266 désactivera le verrou solénoïde, déverrouillant ainsi la porte.
- Ces étiquettes agissent comme les clés autorisées.
- Le relais sera activé par ESP8266 pour verrouiller la porte après une période de temps spécifique.
Diagramme de câblage
- Serrure de porte RFID RC522 avec 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.
- Serrure de porte RFID RC522 avec serrure électromagnétique
This image is created using Fritzing. Click to enlarge image
※ NOTE THAT:
Les fabricants peuvent agencer l'ordre des broches différemment, il est donc important de se fier aux étiquettes imprimées sur le module. Le schéma de brochage ci-dessus montre l'agencement des broches pour les modules produits par le fabricant DIYables.
Code ESP8266 - Clé Unique
Étapes rapides
Pour commencer avec l'ESP8266 sur l'IDE Arduino, 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é sur 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, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
Afin de déterminer l'UID d'une étiquette RFID/NFC :
- Téléchargez le code sur l'ESP8266 et ouvrez le moniteur série.
- Tapez sur l'étiquette du module RFID-RC522 et l'UID s'affichera sur le moniteur série.
Une fois que vous avez l'UID :
- Modifiez la ligne 18 du code ci-dessus pour refléter l'UID. Par exemple, remplacez byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; par byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Téléversez le code modifié sur le ESP8266
- Placez une étiquette RFID/NFC sur le module RFID-RC522
- Vérifiez la sortie sur le moniteur série
- Vérifiez que le verrou électromagnétique n'est pas verrouillé.
- Tapez un autre tag RFID/NFC sur le module RFID-RC522.
- Consultez la sortie sur le moniteur série.
※ NOTE THAT:
- Pour faciliter les tests, le temps de déverrouillage a été réglé sur 2 secondes ; cependant, il devrait être augmenté pour une utilisation pratique/démonstration.
- L'installation de la bibliothèque MFRC522 est nécessaire. Pour plus d'informations, veuillez vous référer au tutoriel ESP8266 - RFID/NFC RC522.
Code ESP8266 - Clés Multiples
Imaginons une pièce à laquelle seuls le directeur et la secrétaire peuvent accéder.
Dans ce cas, deux étiquettes RFID/NFC sont nécessaires : une pour le gestionnaire et l'autre pour le secrétaire. Les UID des deux étiquettes doivent être spécifiés dans le code.
Répétez les mêmes étapes que précédemment, puis tapez sur chaque étiquette du module RFID-RC522. L'affichage sur le moniteur série devrait apparaître comme suit :
Vous pouvez étendre le code écrit ci-dessus pour inclure trois, quatre ou plusieurs balises.
Ajout d'un écran LCD au verrouillage de porte RFID
Nous pouvons ajouter en option un écran LCD pour afficher le statut d'accès (par exemple ACCORDÉ/REFUSÉ) aux utilisateurs. Vous pouvez en savoir plus sur les écrans LCD dans ESP8266 - Tutoriel LCD
Schéma de câblage - Système de verrouillage de porte utilisant RFID, verrou à solénoïde ou serrure électromagnétique, et affichage LCD
This image is created using Fritzing. Click to enlarge image
Veuillez noter que dans le schéma de câblage ci-dessus, une alimentation de 5V est ajoutée car la broche 5V de l'ESP8266 ne peut pas fournir assez de puissance pour alimenter à la fois le relais et l'écran LCD simultanément.
Code ESP8266 - Système de verrouillage de porte avec mot de passe utilisant le module RFID RC522, serrure à solénoïde ou serrure électromagnétique, et affichage LCD
※ NOTE THAT:
L'adresse du LCD peut varier selon le fabricant. Nous avons utilisé 0x27 dans notre code, comme spécifié par DIYables.
Ajout d'un capteur de porte à la serrure de porte RFID
Dans le code mentionné précédemment, l'ESP8266 verrouille la porte après un délai suivant le 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 éviter de vous submerger, nous n'avons pas inclus le capteur de porte dans le schéma de câblage et le code. Au lieu de cela, nous laissons cette partie à votre créativité. Vous pouvez consulter les tutoriels ESP8266 - Capteur de porte et ESP8266 - Contrôle de relais par capteur de porte pour plus de conseils.
Gérer et stocker les clés RFID valides dans l'EEPROM
Le code ci-dessus contient des clés RFID (UID) valides qui sont intégrées en dur dans le code ESP8266. Cela signifie que si vous souhaitez ajouter ou supprimer des clés, 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 clés RFID sans avoir à modifier et télécharger le code à chaque fois. Pour ce faire, les clés RFID peuvent être stockées dans l'EEPROM au lieu d'être codées en dur. Par conséquent, une méthode permettant de gérer facilement les clés RFID depuis l'EEPROM est nécessaire.
Deux méthodes sont disponibles pour gérer les clés RFID dans l'EEPROM :
- Clés RFID comme clés maîtres
- En utilisant une clé RFID comme clé maître ADD, de nouvelles clés peuvent être ajoutées au système. Une fois que l'ESP8266 détecte la clé maître ADD, il bascule entre le mode ADD et le mode OPERATION.
- Durant le mode ADD, l'ESP8266 ajoute toutes les nouvelles clés qu'il détecte à l'EEPROM.
- Une approche similaire est utilisée pour la clé maître DELETE et le mode DELETE.
- Utiliser des commandes ADD/DELETE via Série/Bluetooth/IR
- Les commandes sont transmises via Série/Bluetooth/IR, en utilisant des outils tels que le Moniteur Série, l'application Bluetooth, ou le contrôleur IR.
- Les commandes consistent en une directive (ADD/DELETE) et l'UID de la clé RFID.
- Pour améliorer la sécurité, un mot de passe devrait également être inclus avec la commande. L'ESP8266 vérifie le mot de passe pour déterminer si la commande est valide ou non.
Afin d'utiliser l'une des deux méthodes mentionnées ci-dessus, une quantité considérable de code ESP8266 doit être ajoutée. Pour les personnes qui sont novices en programmation, cela peut représenter un défi. Par conséquent, 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 de sauvegarder l'UID de la clé RFID, le statut d'accès (AUTORISÉ/REFUSÉ) et la date et l'heure. Comme 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 sur ce sujet dans le tutoriel ESP8266 - Enregistrer des données avec horodatage sur une carte SD.