Arduino - Serrure de porte à clavier
Dans ce tutoriel, nous apprenons à fabriquer un système de verrouillage de porte avec mot de passe utilisant un clavier et un verrou à solénoïde.
Lorsque la porte est déverrouillée par un mot de passe correct, elle reste déverrouillée pendant 20 secondes, puis se verrouille automatiquement à nouveau. Le code Arduino prend en charge plusieurs mots de passe.
※ NOTE THAT:
Nous disposons également d'autres tutoriels sur les systèmes de verrouillage de porte :
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 et du verrou à solénoïde
Si vous ne connaissez pas le verrou à solénoïde et le bouton (brochage, fonctionnement, programmation ...), renseignez-vous à leur sujet dans les tutoriels suivants :
Diagramme de câblage
- Arduino - Serrure de porte avec clavier, serrure à solénoïde
This image is created using Fritzing. Click to enlarge image
Code Arduino - Système de verrouillage de porte avec mot de passe utilisant un clavier et un verrou à solénoïde
※ NOTE THAT:
L'adresse I2C de l'écran LCD peut varier selon les fabricants. Dans le code, nous avons utilisé 0x27 qui est spécifié par le fabricant DIYables.
Étapes rapides
- Connectez Arduino à l'ordinateur via le câble USB
- Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
- Accédez à l'icône Libraries dans la barre latérale gauche de l'IDE Arduino.
- Recherchez "keypad", puis trouvez la bibliothèque keypad de Mark Stanley, Alexander Brevig
- Cliquez sur le bouton Install pour installer la bibliothèque keypad.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur Arduino
- Ouvrez le moniteur série
- Appuyez sur les touches 12345 puis sur #
- Appuyez sur les touches 1234ABC puis sur #
- Observez 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 Arduino.
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 :
- À l'exception de 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. Vous pouvez l'utiliser pour commencer ou recommencer à saisir le mot de passe
- Si # est pressé :
- La chaîne de saisie est comparée aux mots de passe pré-définis. Si elle correspond à l'un des mots de passe pré-définis, contrôlez le relais pour déverrouiller la porte.
- Que le mot de passe soit correct ou non, la chaîne de saisie est effacée pour la prochaine saisie
- Dans le code ci-dessus, pour simplifier, nous avons utilisé la fonction delay. Il est préférable d'utiliser millis() au lieu de delay(). Voir Comment utiliser millis() au lieu de delay()
- Vous pouvez ajouter un buzzer piézoélectrique pour émettre un bip chaque fois que le clavier est pressé.
- Dans les codes ci-dessus, la porte se verrouille à nouveau après 20 secondes. Vous pouvez la remplacer par un capteur de porte. La porte se verrouille lorsque le capteur de porte détecte que la porte est fermée par l'utilisateur.
- Dans le code ci-dessus, les mots de passe sont codés en dur. En pratique, il devrait être possible d'ajouter/supprimer/modifier les mots de passe dynamiquement via un mode spécial. Si tel est le cas, les mots de passe doivent être sauvegardés dans la mémoire EEPROM. Le nombre de mots de passe qui peuvent être sauvegardés dépend de la taille de l'EEPROM. Le code deviendra compliqué. Si vous souhaitez construire un tel système, nous proposons un service de codage. N'hésitez pas à nous contacter.
※ NOTE THAT: