- Componenti utilizzati:
- Collegamento della tastiera 4x4 con Raspberry Pi utilizzando il multiplexing:
- Descrizione del circuito:
- Spiegazione di lavoro:
- Spiegazione della programmazione:
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.
Abbiamo già costruito un blocco digitale con password utilizzando Arduino e utilizzando 8051, qui costruiremo questo blocco digitale utilizzando Raspberry Pi con password definita dall'utente. Una volta impostata la password, l'utente può accedere alla porta solo con la password corretta.
Se non hai familiarità con Raspberry Pi, abbiamo creato una serie di tutorial per imparare Raspberry Pi, con l'interfacciamento con tutti i componenti di base e alcuni semplici progetti con cui iniziare, controlla.
Componenti utilizzati:
- Raspberry Pi (con scheda SD avviata)
- Modulo tastiera
- Cicalino
- LCD 16x2
- Pentola da 10k
- Pacchetto resistore 10k (pull-up)
- GUIDATO
- Resistenza da 1k
- Tagliere per il pane
- Carrello porta CD / DVD come Gate
- Potenza 5 volt
- Driver del motore L293D
- Batteria da 12 Volt
- Cavi di collegamento
Collegamento della tastiera 4x4 con Raspberry Pi utilizzando il multiplexing:
In questo circuito, abbiamo utilizzato Multiplexing Technique per interfacciare la tastiera per l'inserimento della password nel sistema. Qui stiamo usando la tastiera multiplex 4x4 con 16 tasti. Normalmente se vogliamo usare 16 chiavi, allora abbiamo bisogno di 16 pin per il collegamento ad Arduino ma nella tecnica del multiplexing abbiamo bisogno solo di 8 pin per interfacciare 16 chiavi. In modo che sia un modo intelligente per interfacciare un modulo tastiera. Ulteriori informazioni sulla tecnica del multiplexing e sul suo funzionamento in questa serratura digitale utilizzando 8051.
La tecnica di multiplexing è un modo molto efficiente per ridurre il numero di pin utilizzati con il microcontrollore per fornire input, password o numeri. Fondamentalmente questa tecnica viene utilizzata in due modi: uno è la scansione delle righe e l'altro è la scansione delle colonne. Se usiamo la libreria della tastiera (#include
Ma qui in questo progetto, abbiamo implementato un modo breve di codificare per la stessa tastiera, senza utilizzare la libreria della tastiera. Si prega di vederlo nella sezione di programmazione di seguito.
Descrizione del circuito:
Il circuito di questa serratura digitale Raspberry Pi è molto semplice e contiene Raspberry Pi 3, modulo tastiera, cicalino, carrello DVD / CD come cancello e LCD. Qui Raspberry Pi controlla il processo completo come prendere il modulo della tastiera dal modulo della password, confrontare le password, guidare il cicalino, aprire / chiudere il cancello e inviare lo stato al display LCD. La tastiera viene utilizzata per immettere la password. Il buzzer viene utilizzato per le indicazioni e pilotato dal transistor NPN integrato. Il display LCD viene utilizzato per visualizzare lo stato o i messaggi su di esso.
I pin della colonna del modulo della tastiera sono direttamente collegati ai pin GPIO 22, 23, 24, 25 e i pin della riga sono collegati a 21, 14, 13, 12 dei pin wringPi di Raspberry Pi. Un LCD 16x2 è collegato a Raspberry Pi in modalità 4 bit. I pin di controllo dell'LCD RS, RW ed En sono direttamente collegati al pin GPIO 11, GND e 10. I pin dati D4-D7 sono collegati ai pin GPIO 6, 15, 4 e 1. Un buzzer è collegato al pin GPIO 8. E il driver del motore L293D è collegato ai pin GPIO 28 e 29 di Raspberry Pi. Una batteria da 12 volt è collegata al pin 8 di L293D rispetto alla massa.
Spiegazione di lavoro:
Il funzionamento di questo progetto è semplice. Quando l'utente esegue il codice in Raspberry Pi, il display LCD mostra un messaggio di benvenuto e dopo mostra "A- Input Password" e nella seconda riga B- Change Passkey ". Ora l'utente può selezionare la propria scelta premendo A e B sulla tastiera.
Ora, se l'utente desidera aprire il cancello, deve premere "A" sulla tastiera e il sistema chiederà la password. La password predefinita è "1234". Ora l'utente deve inserire la password e dopo questo sistema controllerà la password, se è valida o meno:
1. Se l'utente immette la password corretta, il sistema aprirà il cancello.
2. Se l'utente inserisce una password errata, il sistema invierà un comando al buzzer per emettere un segnale acustico e visualizzerà "Accesso negato" sul display LCD.
Supponiamo ora che l'utente desideri modificare la password, quindi deve premere 'B' sulla tastiera e quindi all'utente verrà richiesta la "Password corrente" o la "Chiave di accesso corrente". Ora l'utente deve inserire la password corrente, quindi il sistema controlla la sua correttezza ed esegue una delle attività indicate.
1. Se l'utente immette la password corretta, il sistema chiederà "Nuova password" e ora l'utente può modificare la password inserendo una nuova password.
2. E se l'utente inserisce la password sbagliata, il sistema guiderà il cicalino e mostrerà “Password errata: sul display LCD.
Ora l'utente deve ripetere di nuovo l'intero processo per cambiare la password.
Fondamentalmente aprire e chiudere il Cancello non è altro che ruotare un Motore in senso orario e antiorario per aprire e chiudere la porta. Per un piccolo progetto puoi semplicemente aggiungere un motore CC per aprire e chiudere la porta. Possiamo anche usare servomotore o motore passo-passo, ma dobbiamo cambiare il codice di conseguenza.
Inoltre è possibile utilizzare una corretta serratura elettronica (facilmente disponibile online) al posto del carrello CD. Ha un elettro magnete che mantiene la porta bloccata quando non c'è corrente che passa attraverso la serratura (circuito aperto), e quando una certa corrente la attraversa, la serratura si sblocca e la porta può essere aperta. Il codice verrà modificato di conseguenza, controlla anche questa recensione del progetto condivisa: Arduino RFID Door Lock
Spiegazione della programmazione:
La programmazione è molto simile ad Arduino. La funzione Arduino usa le classi ma qui abbiamo fatto questo codice, usando la programmazione c, senza classi. Abbiamo anche installato una libreria wiringPi per GPIO.
Ora prima di tutto dobbiamo includere le librerie richieste e quindi definire i pin per LCD, buzzer, LED e motore.
#includere
Dopo aver definito i pin per la riga e le colonne della tastiera e definire l'array per memorizzare la password e i numeri della tastiera.
passaggio di carattere; char pass1 = {'1', '2', '3', '4'}; int n = 0; riga di caratteri = {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 '}};
Dopo di che abbiamo scritto alcune funzioni per guidare il display LCD:
La funzione void lcdcmd viene utilizzata per inviare comandi all'LCD e la funzione void write viene utilizzata per inviare dati all'LCD .
La funzione void print viene utilizzata per inviare una stringa all'LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
La funzione void setCursor viene utilizzata per impostare la posizione del cursore nell'LCD .
void setCursor (int x, int y) {int set = 0; se (y == 0) poni = 128 + x; se (y == 1) poni = 192 + x; lcdcmd (set); }
La funzione void clear () viene utilizzata per cancellare il display LCD e void buzzer () viene utilizzata per emettere un segnale acustico.
Le funzioni void gate_open (), void gate_stop () e void gate_close () sono usate per guidare il Gate (CD Trolley)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, HIGH); ritardo (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); ritardo (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); ritardo (2000); }
La funzione data viene utilizzata per inizializzare l'LCD in modalità a 4 bit.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
La funzione data void keypad () viene utilizzata per interfacciare il modulo della tastiera con Raspberry Pi con un "metodo breve".
void keypad () {int i, j; int x = 0, k = 0; ritardo (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (row) == 0) {setCursor (x, 1);…………………
Controlla tutte le funzioni nel codice completo di seguito, il codice è facile e autoesplicativo.