La sicurezza è una delle principali preoccupazioni nella nostra vita quotidiana e le serrature digitali sono diventate una parte importante di questi sistemi di sicurezza. Ci sono molti tipi di tecnologie disponibili per proteggere il nostro posto, come sistemi di sicurezza basati su PIR, sistemi di sicurezza basati su RFID, allarmi di sicurezza laser, sistemi bio-matrice ecc. Anche ora, ci sono serrature digitali che possono essere azionate usando i nostri smartphone, significa no più bisogno di tenere chiavi diverse, un solo smartphone può azionare tutte le serrature, questo concetto si basa sull'Internet delle cose.
In questo progetto, abbiamo spiegato una semplice serratura elettronica a codice utilizzando 8051 Microcontorller, che può essere sbloccata solo da un codice predefinito, se inseriamo il codice sbagliato, il sistema avvisa tramite sirena il cicalino. Abbiamo già creato una serratura digitale utilizzando Arduino.
Spiegazione di lavoro:
Questo sistema contiene principalmente microcontrollore AT89S52, modulo tastiera, buzzer e LCD. Il microcontrollore At89s52 controlla i processi completi come prendere il modulo della tastiera dal modulo della password, confrontare le password predefinite, il cicalino di guida e inviare lo stato al display LCD. La tastiera viene utilizzata per inserire la password nel microcontrollore. Il cicalino viene utilizzato per indicare la password errata e il display LCD viene utilizzato per visualizzare lo stato oi messaggi su di esso. Buzzer ha un driver integrato utilizzando un transistor NPN.
Componenti:
- 8051 Microcontrollore (AT89S52)
- Modulo tastiera 4X4
- Cicalino
- LCD 16x2
- Resistore (1k, 10k)
- Resistenza pullup (10K)
- Condensatore (10uf)
- Led rosso
- Tagliere per il pane
- IC 7805
- Cristallo 11.0592 MHz
- Alimentazione elettrica
- Cavi di collegamento
Prendendo input dalla matrice della tastiera 4X4 utilizzando la tecnica multiplexing:
In questo circuito abbiamo utilizzato la tecnica del multiplexing per interfacciare la tastiera al microcontrollore 8051, per l'inserimento della password nel sistema. Qui stiamo usando una tastiera 4x4 che ha 16 tasti. Se vogliamo usare 16 chiavi, allora abbiamo bisogno di 16 pin per la connessione a 89s52, ma nella tecnica del multiplexing dobbiamo usare solo 8 pin per interfacciare 16 chiavi. In modo che sia un modo intelligente per interfacciare il modulo della tastiera.
La tecnica di multiplexing è un modo molto efficiente per ridurre il numero di pin utilizzati con il microcontrollore per fornire l'input o la password. Fondamentalmente questa tecnica viene utilizzata in due modi: uno è la scansione delle righe e l'altro è la scansione delle colonne.
Qui spiegheremo la scansione delle righe:
Per prima cosa dobbiamo definire 8 pin per il modulo tastiera. In cui i primi 4 pin sono colonne e gli ultimi 4 pin sono righe.
Per la scansione delle righe dobbiamo fornire dati o segnali ai pin delle colonne e leggere quei dati o segnali dal pin delle righe. Supponiamo ora di fornire i dati seguenti ai pin delle colonne:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
E leggiamo questi dati sui pin di riga (per impostazione predefinita i pin di riga sono ALTI a causa della resistenza di pull-up).
Se l'utente preme il tasto numero "1", R1 cambia da ALTO a BASSO significa R1 = 0; e il controller capisce che l'utente ha premuto il tasto "1". E stamperà "1" sul display LCD e memorizzerà "1" in array. Quindi questo cambiamento da ALTO a BASSO in R1, è la cosa principale per cui il controller capisce che è stato premuto un tasto, corrispondente alla colonna 1.
Ora se l'utente preme il tasto numero "2", R1 rimane su HIGH poiché C1 e R1 sono già su HIGH. Quindi non ci sarà alcun cambiamento, significa che il microcontrollore capisce che non è stato premuto nulla nella prima colonna. E allo stesso modo questo principio vale per tutti gli altri pin. Quindi in questo passaggio il controller attende solo le chiavi nella prima colonna: "1", "4", "7" e "*".
Ora, se vogliamo tenere traccia delle chiavi in altre colonne (come nella colonna 2), allora dobbiamo modificare i dati nei pin delle colonne:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Questo controller del tempo attende solo i tasti nella colonna due: "2", "5", "8" e "0", poiché il cambiamento (da HIGH a LOW) si verifica solo quando vengono premuti i tasti della colonna due. Se premiamo un tasto qualsiasi nella colonna 1, 3 o 4, non si verificherà alcun cambiamento, perché queste colonne sono su HIGH e le righe sono già su HIGH.
Allo stesso modo, anche le chiavi nelle colonne C3 e C4 possono essere tracciate rendendole 0, alla volta. Controllare qui la spiegazione dettagliata: Interfaccia della tastiera con 8051. Leggere anche la sezione Codice di seguito per comprendere correttamente la logica.
Spiegazione del circuito:
Lo schema del circuito per questa serratura digitale che utilizza l'8051 è stato mostrato di seguito e può essere facilmente compreso. I pin della colonna del modulo tastiera sono collegati direttamente al pin P0.0, P0.1, P0.2, P0.3 e i pin Row sono collegati a P0.4, P0.5, P0.6, P0.7 della porta 0 del microcontrollore 89s52 Un LCD 16x2 è collegato al microcontrollore 89s52 in modalità 4 bit. I pin di controllo RS, RW ed En sono collegati direttamente ai pin P1.0, GND e P1.2. E il pin dati D4-D7 è collegato ai pin P1.4, P1.5, P1.6 e P1.7 di 89s52. E un buzzer è collegato al pin P2.6 tramite un resistore.
Spiegazione del programma:
Abbiamo utilizzato una password predefinita nel programma, questa password può essere definita dall'utente nel codice sottostante. Quando l'utente immette una password nel sistema, quindi il sistema confronta la password immessa dall'utente con la password memorizzata o predefinita in Code of Program. Se si verifica una corrispondenza, il display LCD mostrerà "Accesso grigliato" e se la password non corrisponde, il display visualizzerà "Accesso negato" e il cicalino emetterà un segnale acustico continuo per un po 'di tempo. Qui abbiamo usato la libreria string.h. Utilizzando questa libreria possiamo confrontare o abbinare due stringhe, utilizzando la funzione "strncmp".
Nel programma, prima di tutto includiamo il file di intestazione e definiamo variabili e pin di input e output per tastiera e LCD.
#includere
È stata creata la funzione per creare il ritardo di 1 secondo, insieme ad alcune funzioni LCD come inizializzazione LCD, stampa della stringa, comandi ecc. Puoi trovarle facilmente in Codice. Controllare questo articolo per l'interfacciamento dell'LCD con l'8051 e le sue funzioni.
Dopodiché, nel programma principale abbiamo inizializzato LCD e quindi leggiamo l'input dal tastierino utilizzando la funzione keypad () e memorizziamo le chiavi di input in un array e quindi lo confrontiamo dai dati dell'array predefinito usando strncmp.
void main () {buzzer = 1; lcd_init (); lcdstring ("Codice elettronico"); lcdcmd (0xc0); lcdstring ("Lock System"); ritardo (400); lcdcmd (1); lcdstring ("Circuit Digest"); ritardo (400); mentre (1) {i = 0; tastiera (); if (strncmp (pass, "4201", 4) == 0)
Se la password inserita corrisponde, viene chiamata la funzione accept ():
void accept () {lcdcmd (1); lcdstring ("Benvenuto"); lcdcmd (192); lcdstring ("Password Accept"); ritardo (200); }
E se la password è sbagliata, viene chiamata la funzione wrong ():
void wrong () {buzzer = 0; lcdcmd (1); lcdstring ("Passkey errata"); lcdcmd (192); lcdstring ("PLZ Riprova"); ritardo (200); buzzer = 1; }
Controllare la funzione della tastiera qui sotto nel codice che legge il modulo di tastiera del modulo di input.