La sécurité est une préoccupation majeure dans notre vie quotidienne, et les verrous numériques sont devenus un élément important de ces systèmes de sécurité. Il existe de nombreux types de technologies disponibles pour sécuriser notre place, comme les systèmes de sécurité PIR, les systèmes de sécurité RFID, les alarmes de sécurité laser, les systèmes bio-matriciels, etc. Même maintenant, il existe des verrous numériques qui peuvent être actionnés à l'aide de nos téléphones intelligents plus besoin de garder différentes clés, un seul téléphone intelligent peut actionner toutes les serrures, ce concept est basé sur l'Internet des objets.
Dans ce projet, nous avons expliqué un simple verrouillage à code électronique utilisant 8051 Microcontorller, qui ne peut être déverrouillé que par un code prédéfini, si nous entrons le mauvais code, le système alerte par sirène le buzzer. Nous avons déjà créé une serrure numérique en utilisant Arduino.
Explication de travail:
Ce système contient principalement un microcontrôleur AT89S52, un module de clavier, un buzzer et un écran LCD. Le microcontrôleur At89s52 contrôle les processus complets tels que la prise du module de clavier sous forme de mot de passe, la comparaison des mots de passe, le mot de passe prédéfini, le signal sonore et l'envoi de l'état à l'écran LCD. Le clavier est utilisé pour insérer le mot de passe dans le microcontrôleur. Le buzzer est utilisé pour indiquer un mot de passe erroné et l'écran LCD est utilisé pour afficher l'état ou les messages. Buzzer a un pilote intégré en utilisant un transistor NPN.
Composants:
- Microcontrôleur 8051 (AT89S52)
- Module de clavier 4X4
- Avertisseur sonore
- Écran LCD 16x2
- Résistance (1k, 10k)
- Résistance Pullup (10K)
- Condensateur (10 uf)
- LED rouge
- Planche à pain
- IC 7805
- Cristal 11,0592 MHz
- Source de courant
- Fils de connexion
Prise d'entrée de la matrice de clavier 4X4 à l'aide de la technique de multiplexage:
Dans ce circuit, nous avons utilisé une technique de multiplexage pour interfacer le clavier avec le microcontrôleur 8051, pour entrer le mot de passe dans le système. Ici, nous utilisons un clavier 4x4 qui dispose de 16 touches. Si nous voulons utiliser 16 clés, nous avons besoin de 16 broches pour la connexion à 89s52, mais dans la technique de multiplexage, nous devons utiliser seulement 8 broches pour l'interfaçage de 16 touches. C'est donc une manière intelligente d'interfacer le module de clavier.
La technique de multiplexage est un moyen très efficace de réduire le nombre de broches utilisées avec le microcontrôleur pour fournir l'entrée ou le mot de passe. Fondamentalement, cette technique est utilisée de deux manières: l'une est la numérisation de lignes et l'autre est la numérisation de colonnes.
Ici, nous allons expliquer l'analyse des lignes:
Nous devons d'abord définir 8 broches pour le module de clavier. Dans lequel les 4 premières broches sont des colonnes et les 4 dernières broches sont des lignes.
Pour le balayage de ligne, nous devons donner des données ou un signal aux broches de colonne et lire ces données ou ce signal à partir de la broche de ligne. Supposons maintenant que nous donnions les données ci-dessous aux broches de colonne:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Et nous lisons ces données au niveau des broches de ligne (par défaut, les broches de ligne sont HAUTES en raison de la résistance de pull-up).
Si l'utilisateur appuie sur le numéro de touche «1», alors R1 passe HAUT à BAS signifie R1 = 0; et le contrôleur comprend que l'utilisateur a appuyé sur la touche «1». Et il imprimera «1» sur l'écran LCD et stockera «1» dans le tableau. Donc, ce changement HAUT à BAS à R1, est la chose principale par laquelle le contrôleur comprend qu'une touche, correspondant à la colonne 1, a été enfoncée.
Maintenant, si l'utilisateur appuie sur la touche numéro «2», alors R1 reste à HIGH car C1 et R1 sont tous deux déjà à HIGH. Il n'y aura donc aucun changement, cela signifie que le microcontrôleur comprend que rien n'a été enfoncé dans la première colonne. Et de même ce principe vaut pour toutes les autres broches. Donc, dans cette étape, le contrôleur n'attend que les clés de la première colonne: «1», «4», «7» et «*».
Maintenant, si nous voulons suivre les clés dans d'autres colonnes (comme dans col 2), nous devons changer les données aux broches des colonnes:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Ce contrôleur de temps n'attend que les touches de la colonne deux: «2», «5», «8» et «0», car le changement (HAUT à BAS) ne se produit que lorsque les touches de la colonne deux seront enfoncées. Si nous appuyons sur n'importe quelle touche dans les colonnes 1, 3 ou 4, aucun changement ne se produira, car ces colonnes sont à HIGH et les lignes sont déjà à HIGH.
De même, les clés des colonnes C3 et C4 peuvent également être suivies en les rendant 0 à la fois. Consultez ici l'explication détaillée: Interfaçage du clavier avec le 8051. Consultez également la section Code ci-dessous pour bien comprendre la logique.
Explication du circuit:
Le schéma de circuit de cette serrure numérique utilisant 8051 a été montré ci-dessous et peut être facilement compris. Les broches de colonne du module de clavier sont directement connectées aux broches P0.0, P0.1, P0.2, P0.3 et les broches de rangée sont connectées à P0.4, P0.5, P0.6, P0.7 du port 0 du microcontrôleur 89s52 Un écran LCD 16x2 est connecté au microcontrôleur 89s52 en mode 4 bits. Les broches de commande RS, RW et En sont directement connectées aux broches P1.0, GND et P1.2. Et la broche de données D4-D7 est connectée aux broches P1.4, P1.5, P1.6 et P1.7 de 89s52. Et un buzzer est connecté à la broche P2.6 via une résistance.
Explication du programme:
Nous avons utilisé un mot de passe prédéfini dans le programme, ce mot de passe peut être défini par l'utilisateur dans le code ci-dessous. Lorsque l'utilisateur entre un mot de passe dans le système, puis le système compare le mot de passe saisi par l'utilisateur avec le mot de passe enregistré ou prédéfini dans le code du programme. Si une correspondance se produit, l'écran LCD affichera «Access Grated» et si le mot de passe ne correspond pas, l'écran LCD affichera «Accès refusé» et l'avertisseur émettra un bip continu pendant un certain temps. Ici, nous avons utilisé la bibliothèque string.h. En utilisant cette bibliothèque, nous pouvons comparer ou faire correspondre deux chaînes, en utilisant la fonction «strncmp».
Dans le programme, nous incluons tout d'abord le fichier d'en-tête et définissons les broches variables et d'entrée et de sortie pour le clavier et l'écran LCD.
#comprendre
Une fonction pour créer le délai de 1 seconde a été créée, ainsi que certaines fonctions LCD comme pour l'initialisation LCD, l'impression de la chaîne, pour les commandes, etc. Vous pouvez les trouver facilement dans Code. Consultez cet article pour l'interfaçage LCD avec 8051 et ses fonctions.
Après cela, dans le programme principal, nous avons initialisé LCD, puis nous lisons l'entrée du clavier à l'aide de la fonction keypad () et stockons les touches d'entrée dans un tableau, puis comparons-le à partir de données de tableau prédéfinies en utilisant strncmp.
void main () {buzzer = 1; lcd_init (); lcdstring ("code électronique"); lcdcmd (0xc0); lcdstring ("Système de verrouillage"); retard (400); lcdcmd (1); lcdstring ("Circuit Digest"); retard (400); tandis que (1) {i = 0; clavier(); if (strncmp (passe, "4201", 4) == 0)
Si le mot de passe entré correspond, la fonction accept () est appelée:
void accept () {lcdcmd (1); lcdstring ("Bienvenue"); lcdcmd (192); lcdstring ("Mot de passe accepté"); retard (200); }
Et si le mot de passe est incorrect, la fonction incorrecte () est appelée:
void faux () {buzzer = 0; lcdcmd (1); lcdstring ("Clé de passe incorrecte"); lcdcmd (192); lcdstring ("PLZ Try Again"); retard (200); buzzer = 1; }
Vérifiez la fonction du clavier ci-dessous dans le code qui lit le module de clavier de saisie.