Verrou de porte RFID - Arduino Nano
Ce tutoriel vous explique comment construire un système de verrouillage de porte en utilisant un Arduino Nano, un module RFID/NFC RC522, un relais, un verrou à solénoïde ou un verrou électromagnétique, et éventuellement un écran LCD. Pour vous faciliter la tâche, le tutoriel vous guide pour construire le verrou RFID de manière simple à complexe. En détail, nous allons réaliser :
- Partie 1 : Un système simple de verrouillage de porte RFID avec Arduino Nano, clavier, serrure à solénoïde ou verrou électromagnétique, prend en charge une seule clé RFID
- Partie 2 : (Facultatif) Ajout de la prise en charge de plusieurs clés RFID
- Partie 3 : (Facultatif) Ajout d'un afficheur LCD au verrou de porte RFID.
- Partie 4 : (Facultatif) Ajout d'un capteur de porte au verrou de porte RFID.
- Partie 5 : (Facultatif) Gestion et stockage des clés RFID valides dans l'EEPROM interne de l'Arduino Nano
- Partie 6 : (Facultatif) Stockage de l'historique d'accès sur carte SD
Si vous souhaitez construire un système de verrouillage de porte utilisant un mot de passe, veuillez consulter Arduino Nano - 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, du verrou à solénoïde et du verrou électromagnétique
Si vous ne connaissez pas le module RFID/NFC RC522, le verrou à solénoïde, la serrure électromagnétique (y compris le brochage, son fonctionnement et comment le programmer), les tutoriels suivants peuvent fournir plus d'informations :
#Composants du système de verrouillage de porte
Un système de serrure de porte simple se compose de deux composants :
- Serrure de porte : un Arduino Nano, un lecteur RFID/NFC, un relais et une serrure à solénoïde ou une serrure électromagnétique
- Clé de porte : étiquettes RFID/NFC
Fonctionnement des serrures de porte RFID/NFC
- L'utilisateur appuie sur une étiquette RFID/NFC sur le lecteur RFID/NFC, qui lit l'UID de l'étiquette.
- Arduino Nano récupère ensuite cet UID du lecteur et le compare aux UID qui ont été définis dans le code Arduino Nano.
- Ces UID servent de clés autorisées.
- Si l'UID correspond à l'un des UID prédéfinis, Arduino Nano désactivera le verrou à solénoïde pour déverrouiller la porte.
- Arduino Nano verrouillera la porte après un délai en activant le relais.
Diagramme de câblage
- Serrure de porte RFID RC522 avec serrure à solénoïde
This image is created using Fritzing. Click to enlarge image
- Serrure de porte RFID RC522 avec serrure électromagnétique
This image is created using Fritzing. Click to enlarge image
Pour simplifier le processus de connexion, les broches du module RC522 sont directement connectées aux broches de l'Arduino. Cependant, cela peut entraîner un dysfonctionnement de l'Arduino dans certains cas, car les broches de sortie de l'Arduino délivrent 5V, tandis que les broches du module RC522 fonctionnent à 3.3V. En conséquence, il est recommandé de réguler la tension entre les broches de l'Arduino et celles du module RC522. Le schéma ci-dessous montre comment des résistances peuvent être utilisées pour réguler de 5V à 3.3V.
This image is created using Fritzing. Click to enlarge image
※ NOTE THAT:
Les fabricants peuvent disposer 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 Arduino Nano - Touche unique
Étapes rapides
Afin de découvrir l'UID d'une étiquette RFID/NFC :
- Téléchargez le code ci-dessus sur Arduino Nano en utilisant l'IDE Arduino.
- Ouvrez le moniteur série et appuyez sur l'étiquette sur le module RFID-RC522. L'UID sera affiché sur le moniteur série.
Une fois que vous avez l'UID :
- Modifiez la ligne 18 du code pour refléter l'UID, par exemple changez byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; par byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Téléchargez le code révisé sur l'Arduino Nano
- Placez une étiquette RFID/NFC sur le module RFID-RC522
- Vérifiez la sortie sur le moniteur série
- Vérifiez que le verrou solénoïde n'est pas désactivé.
- 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é à 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 Arduino Nano - RFID/NFC RC522.
Code Arduino Nano - Plusieurs Touches
Imaginons une pièce où seuls le directeur et la secrétaire peuvent ouvrir la porte.
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 sélectionnez individuellement chaque étiquette sur le module RFID-RC522. L'affichage sur le moniteur série devrait ressembler à cela :
Vous pouvez étendre le code mentionné 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 LCD dans Tutoriel Arduino Nano - LCD
Schéma de câblage - Système de verrouillage de porte utilisant RFID, serrure à 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'Arduino ne peut pas fournir suffisamment de puissance à la fois pour le relais et l'écran LCD.
Code Arduino Nano - Système de verrouillage de porte avec mot de passe utilisant le module RFID RC522, un verrou solénoïde ou un verrou électromagnétique, et un affichage LCD
※ NOTE THAT:
L'adresse du LCD peut varier en fonction du fabricant. Nous avons utilisé 0x27 dans notre code, comme spécifié par DIYables.
Ajout d'un capteur de porte au verrou de porte RFID
Dans le code précédent, la porte se verrouillait après un certain temps depuis qu'elle avait été déverrouillée par l'Arduino Nano. Cependant, dans des scénarios réels, un capteur de porte est souvent intégré au système. Si la porte est fermée, l'Arduino Nano verrouillerait immédiatement la porte sans attendre l'expiration de la période de timeout.
Pour ne pas vous surcharger, nous n'ajoutons pas le capteur de porte au schéma de câblage et au code. Nous laissons cette partie à votre créativité. Vous pouvez vous référer aux tutoriels Arduino Nano - Capteur de porte et Arduino Nano - Contrôle de relais par capteur de porte.
Gérer et stocker les clés RFID valides dans l'EEPROM
Dans l'exemple précédent, les clés RFID valides (UID) étaient codées en dur dans le code de l'Arduino Nano. Cela signifie que si vous vouliez ajouter ou supprimer des clés RFID, vous devriez modifier le code et le télécharger à nouveau sur l'Arduino Nano, ce qui peut être peu pratique.
Pour rendre les choses plus pratiques, nous avons besoin d'une manière de gérer les clés RFID sans avoir à modifier et charger le code sur l'Arduino Nano à chaque fois. Une solution est de stocker les clés RFID dans l'EEPROM au lieu de les coder en dur. Par conséquent, nous avons besoin d'une méthode qui permette d'ajouter ou de supprimer des clés RFID de l'EEPROM sans avoir à changer le code.
Il existe deux méthodes pour gérer les clés RFID dans l'EEPROM :
- Clés RFID comme clés principales
- Utilisez une clé RFID comme clé principale pour ajouter de nouvelles clés. Après que l'Arduino détecte la clé principale d'ajout, il bascule entre le mode AJOUT et le mode OPÉRATION.
- En mode AJOUT, si l'Arduino détecte une nouvelle clé, il l'ajoute à l'EEPROM
- Semblable à la clé principale de SUPPRESSION et au mode de SUPPRESSION.
- Écrire des commandes AJOUT/SUPPRESSION via Série/Bluetooth/IR
- Les commandes sont envoyées via Série/Bluetooth/IR en utilisant le moniteur série, l'application Bluetooth, le contrôleur IR...
- Les commandes incluses : directive (AJOUT/SUPPRESSION), UID de la clé RFID.
- Pour renforcer la sécurité, la commande doit également inclure un mot de passe. Arduino vérifie le mot de passe pour déterminer si la commande est valide ou non.
Les deux méthodes nécessitent d'ajouter beaucoup de code Arduino. Ce n'est pas une tâche facile pour les débutants. Par conséquent, ce tutoriel fournit uniquement les connaissances pour aider les débutants à en savoir plus sur le système de verrouillage de porte sans les surcharger avec le code compliqué. Si vous souhaitez mettre cela en pratique, veuillez nous contacter via notre service de programmation payant
Stockage de l'historique d'accès sur la carte SD
Vous pourriez vouloir stocker l'historique d'accès avec les informations suivantes : UID de la clé RFID, statut d'accès (AUTORISÉ/REFUSÉ), et date et heure. Vous pouvez utiliser une carte SD pour conserver l'historique car l'EEPROM n'est pas assez grande pour stocker l'historique. Vous pouvez consulter ce tutoriel Arduino Nano - Enregistrer des données avec horodatage sur une carte SD.