Arduino Nano - Verrouillage de porte à clavier
Ce tutoriel vous explique comment construire un système de verrouillage de porte protégé par mot de passe en utilisant un Arduino Nano, un clavier, un verrou à solénoïde ou un verrou électromagnétique, et un afficheur LCD. Voici comment fonctionnera le système de verrouillage de porte :
- Les utilisateurs saisiront un mot de passe à l'aide du clavier.
- L'Arduino Nano vérifiera si le mot de passe est correct.
- Si le mot de passe saisi est correct, l'Arduino Nano désactivera le verrou à solénoïde pour déverrouiller la porte. La porte restera déverrouillée pendant un temps défini (par exemple 20 secondes) avant de se verrouiller automatiquement à nouveau.
Pour faciliter les choses, le tutoriel est divisé en plusieurs étapes, du plus facile au plus 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 3 : (Facultatif) Ajout d'un affichage LCD au verrou de porte à clavier.
- Partie 4 : (Facultatif) Ajout d'un bip sonore lorsque le clavier est pressé.
- 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) Sauvegarde de l'historique d'accès sur une 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 numérique, du verrou à solénoïde, du verrou électromagnétique et de l'affichage LCD.
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 avec l'Arduino Nano est similaire. Le code Arduino Nano pour les contrôler est le même.
Si vous n'êtes pas familier avec le clavier, la serrure à solénoïde, la serrure électromagnétique et l'affichage LCD (brochage, fonctionnement, programmation...), les tutoriels suivants peuvent vous aider à apprendre :
Diagramme de câblage
- Schéma de câblage avec Arduino Nano, pavé numérique et verrou à solénoïde
This image is created using Fritzing. Click to enlarge image
- Schéma de câblage avec Arduino Nano, clavier et verrou électromagnétique
This image is created using Fritzing. Click to enlarge image
Code Arduino Nano - Serrure de porte à clavier
※ NOTE THAT:
L'adresse du LCD peut varier selon le fabricant. Dans notre code, nous avons utilisé 0x27 comme spécifié par DIYables.
Étapes rapides
- Connectez un câble USB à l'Arduino Nano et au PC.
- Ouvrez l'IDE Arduino et sélectionnez la carte et le port appropriés.
- Cliquez sur l'icône Libraries dans la barre gauche de l'IDE Arduino.
- Recherchez "keypad", puis localisez la bibliothèque de clavier créée par Mark Stanley et Alexander Brevig.
- Appuyez sur le bouton Install pour installer la bibliothèque de clavier.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
- Cliquez sur le bouton Upload pour charger le code sur l'Arduino Nano.
- Ouvrez le moniteur série.
- Appuyez sur les touches 12345 suivies du symbole #.
- Ensuite, appuyez sur les touches 1234 suivies du symbole #.
- Vérifiez l'état de la gâche 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 de l'Arduino Nano. 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. Le système fonctionne comme suit :
- À l'exception des deux touches spéciales, si une autre touche est pressée, elle est ajoutée à la chaîne de saisie.
- Si * est pressé, la chaîne de saisie est effacée. Cela peut être utilisé pour démarrer ou redémarrer la saisie du mot de passe.
- Si # est pressé :
- Arduino Nano compare la chaîne de saisie aux mots de passe prédéfinis. Si elle correspond à l'un des mots de passe prédéfinis, Arduino Nano contrôle le relais pour déverrouiller la porte.
- Que le mot de passe soit correct ou non, Arduino Nano efface la chaîne de saisie pour la prochaine entrée.
Code Arduino Nano - Plusieurs Clés
Ajout d'un écran LCD à la serrure de porte RFID
Nous pouvons ajouter en option un écran LCD pour afficher le statut (par exemple, ACCORDÉ/REFUSÉ) aux utilisateurs.
Schéma de câblage - Système de verrouillage de porte utilisant un clavier, un verrou à solénoïde ou un verrou électromagnétique, et un affichage LCD
This image is created using Fritzing. Click to enlarge image
Veuillez noter que, dans le schéma de câblage ci-dessus, le relais et l'écran LCD peuvent ne pas fonctionner ou fonctionner de manière instable en raison d'une puissance insuffisante. Nous vous recommandons fortement d'utiliser une source d'alimentation externe pour le relais et l'écran LCD. Veuillez vous référer au schéma de câblage suivant pour obtenir des instructions :
This image is created using Fritzing. Click to enlarge image
Code Arduino Nano - Serrure de porte à clavier
※ NOTE THAT:
L'adresse du LCD peut varier selon le fabricant. Nous avons utilisé 0x27 dans notre code, comme spécifié par DIYables.
Ajout du bip sonore lors de l'appui sur le clavier.
Nous pouvons rendre la serrure de la porte réactive en ajoutant un buzzer piézo 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 Arduino Nano - 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'Arduino Nano verrouille la porte après un délai depuis le déverrouillage. Cependant, dans les applications pratiques, un capteur de porte est généralement ajouté au système. Si l'Arduino Nano 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. Au lieu de cela, nous laissons cette partie à votre créativité. Vous pouvez consulter les tutoriels Arduino Nano - Capteur de porte et Arduino Nano - Commande de relais par capteur de porte pour plus de conseils.
Gérer et stocker les 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 Arduino Nano. 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'Arduino Nano, 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'Arduino Nano détecte le mot de passe principal ADD, il bascule entre le mode ADD et le mode OPERATION.
- Pendant le mode ADD, l'Arduino Nano 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 moniteur série, l'application Bluetooth ou la télécommande IR.
- Les commandes consistent en une directive (ADD/DELETE) et le mot de passe.
Afin d'utiliser l'une des deux méthodes mentionnées ci-dessus, une quantité considérable de code Arduino Nano doit être ajoutée. Pour les personnes qui sont nouvelles dans la 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 des accès (AUTORISÉ/REFUSÉ) ainsi que 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 dans ce tutoriel Arduino Nano - Enregistrer des données avec horodatage sur carte SD.