- Composants utilisés:
- Connexion du clavier 4x4 avec Raspberry Pi en utilisant le multiplexage:
- Description du circuit:
- Explication de travail:
- Explication de la programmation:
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é basés sur PIR, les systèmes de sécurité basés sur RFID, les alarmes de sécurité laser, les systèmes bio-matriciels, etc.
Nous avons déjà construit Digital Lock avec mot de passe en utilisant Arduino et en utilisant 8051, ici nous allons construire ce Digital Lock en utilisant Raspberry Pi avec un mot de passe défini par l'utilisateur. Une fois le mot de passe défini, l'utilisateur ne peut accéder à la porte qu'avec un mot de passe correct.
Si vous n'êtes pas familier avec Raspberry Pi, nous avons créé une série de tutoriels pour apprendre Raspberry Pi, avec l'interfaçage avec tous les composants de base et quelques projets simples pour commencer, vérifiez.
Composants utilisés:
- Raspberry Pi (avec carte SD démarrée)
- Module de clavier
- Avertisseur sonore
- Écran LCD 16x2
- Pot de 10k
- Pack de résistances 10k (pull-up)
- LED
- Résistance 1k
- Planche à pain
- Chariot CD / DVD comme porte
- Puissance 5 volts
- Pilote de moteur L293D
- Batterie 12 volts
- Fils de connexion
Connexion du clavier 4x4 avec Raspberry Pi en utilisant le multiplexage:
Dans ce circuit, nous avons utilisé la technique de multiplexage pour interfacer le clavier pour entrer le mot de passe dans le système. Ici, nous utilisons un clavier multiplex 4x4 avec 16 touches. Normalement, si nous voulons utiliser 16 clés, nous avons besoin de 16 broches pour la connexion à Arduino, mais dans la technique de multiplexage, nous n'avons besoin que de 8 broches pour interfacer 16 touches. C'est donc une manière intelligente d'interfacer un module de clavier. En savoir plus sur la technique de multiplexage et son fonctionnement dans cette serrure numérique à l'aide du 8051.
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 une entrée ou un mot de passe ou des nombres. Fondamentalement, cette technique est utilisée de deux manières - l'une est l'analyse de lignes et l'autre est l'analyse de colonnes. Si nous utilisons la bibliothèque de clavier (#include
Mais ici, dans ce projet, nous avons implémenté un court moyen de codage pour le même clavier, sans utiliser la bibliothèque de clavier. Veuillez le voir dans la section de programmation ci-dessous.
Description du circuit:
Le circuit de cette serrure de porte numérique Raspberry Pi est très simple et contient Raspberry Pi 3, un module de clavier, un buzzer, un chariot DVD / CD comme porte et un écran LCD. Ici, Raspberry Pi contrôle le processus complet comme la prise du module de clavier sous forme de mot de passe, la comparaison des mots de passe, la conduite du buzzer, l'ouverture / la fermeture du portail et l'envoi de l'état à l'écran LCD. Le clavier est utilisé pour saisir le mot de passe. Le buzzer est utilisé pour les indications et piloté par un transistor NPN intégré. L'écran LCD est utilisé pour afficher l'état ou les messages dessus.
Les broches de colonne du module de clavier sont directement connectées aux broches GPIO 22, 23, 24, 25 et les broches de rangée sont connectées à 21, 14, 13, 12 des broches wringPi de Raspberry Pi. Un écran LCD 16x2 est connecté au raspberry Pi en mode 4 bits. Les broches de commande RS, RW et En de l'écran LCD sont directement connectées aux broches GPIO 11, GND et 10. Les broches de données D4-D7 sont connectées aux broches GPIO 6, 15, 4 et 1. Un buzzer est connecté à la broche GPIO 8. Et pilote de moteur Le L293D est connecté aux broches GPIO 28 et 29 du Raspberry Pi. Une batterie de 12 volts est connectée à la broche 8 de L293D par rapport à la terre.
Explication de travail:
Le fonctionnement de ce projet est simple. Lorsque l'utilisateur exécute le code dans Raspberry Pi, l'écran LCD affiche un message de bienvenue et après il affiche «A- Input Password» et en deuxième ligne B- Change Passkey ». L'utilisateur peut maintenant sélectionner son choix en appuyant sur A et B sur le clavier.
Maintenant, si l'utilisateur veut ouvrir la porte, il doit appuyer sur «A» sur le clavier, puis le système demandera le mot de passe. Le mot de passe par défaut est «1234». Maintenant, l'utilisateur doit entrer le mot de passe et après ce système vérifiera le mot de passe, qu'il soit valide ou non:
1. Si l'utilisateur entre le bon mot de passe, le système ouvrira la porte.
2. Si l'utilisateur entre un mot de passe erroné, le système enverra une commande au buzzer pour émettre un bip et afficher «Accès refusé» sur l'écran LCD.
Supposons maintenant que l'utilisateur veuille changer le mot de passe, alors il / elle doit appuyer sur «B» sur le clavier, puis l'utilisateur sera invité à saisir «Mot de passe actuel» ou «Clé de passe actuelle». Maintenant, l'utilisateur doit entrer le mot de passe actuel, puis le système vérifie son exactitude et effectue l'une des tâches données.
1. Si l'utilisateur entre le bon mot de passe, le système demandera «Nouveau mot de passe» et maintenant l'utilisateur peut changer le mot de passe en entrant un nouveau mot de passe.
2. Et si l'utilisateur entre le mauvais mot de passe, le système fera fonctionner le buzzer et affichera «Wrong Password: sur l'écran LCD.
Maintenant, l'utilisateur doit répéter l'ensemble du processus pour changer le mot de passe.
Fondamentalement, l'ouverture et la fermeture de la porte ne sont rien d'autre que de faire tourner un moteur dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre pour ouvrir et fermer la porte. Pour un petit projet, vous pouvez simplement ajouter un moteur à courant continu pour ouvrir et fermer la porte. Nous pouvons également utiliser un servomoteur ou un moteur pas à pas, mais nous devons modifier le code en conséquence.
De plus, vous pouvez utiliser une serrure de porte électronique appropriée (facilement disponible en ligne) à la place du chariot CD. Il a un électro-aimant qui maintient la porte verrouillée lorsqu'il n'y a pas de courant passant à travers la serrure (circuit ouvert), et lorsqu'un courant passe à travers elle, la serrure se déverrouille et la porte peut être ouverte. Le code sera modifié en conséquence, vérifiez également cette revue de projet partagée: Arduino RFID Door Lock
Explication de la programmation:
La programmation est très similaire à Arduino. La fonction Arduino utilise des classes mais ici nous avons fait ce code, en utilisant la programmation c, sans classes. Nous avons également installé une bibliothèque de câblagePi pour les GPIO.
Maintenant, tout d'abord, nous devons inclure les bibliothèques requises, puis définir les broches pour LCD, buzzer, LED et moteur.
#comprendre
Après cela, définissez les broches pour la ligne et les colonnes du clavier et définissez le tableau pour stocker le mot de passe et les numéros de clavier.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; ligne de caractères = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Après cela, nous avons écrit quelques fonctions pour piloter l'écran LCD:
La fonction void lcdcmd est utilisée pour envoyer une commande à l'écran LCD et la fonction d' écriture vide est utilisée pour envoyer des données à l'écran LCD.
La fonction d' impression vide est utilisée pour envoyer une chaîne à l'écran LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
Fonction void setCursor est utilisé pour régler la position du curseur sur l'écran LCD.
void setCursor (int x, int y) {int set = 0; si (y == 0) set = 128 + x; si (y == 1) set = 192 + x; lcdcmd (ensemble); }
La fonction void clear () est utilisée pour effacer l'écran LCD et le buzzer d'annulation () est utilisé pour émettre un bip.
Les fonctions void gate_open (), void gate_stop () et void gate_close () sont utilisées pour piloter la porte (CD Trolley)
void gate_open () {digitalWrite (m1, LOW); DigitalWrite (m2, HIGH); retard (2000); } void gate_stop () {digitalWrite (m1, LOW); DigitalWrite (m2, FAIBLE); retard (2000); } void gate_close () {digitalWrite (m1, HIGH); DigitalWrite (m2, FAIBLE); retard (2000); }
La fonction donnée est utilisée pour initialiser l'écran LCD en mode 4 bits.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
La fonction void keypad () est utilisée pour interfacer le module de clavier avec Raspberry Pi avec une `` méthode courte ''.
clavier vide () {int i, j; int x = 0, k = 0; retard (2000); while (k <4) {pour (i = 0; i <4; i ++) {digitalWrite (col, LOW); pour (j = 0; j <4; j ++) {if (digitalRead (row) == 0) {setCursor (x, 1);…………………
Vérifiez toutes les fonctions dans le code complet ci-dessous, le code est facile et explicite.