- Elenco dei componenti
- Schema del circuito per la serratura della porta della tastiera Arduino
- Codice Arduino per serratura della porta della tastiera digitale
- Assemblaggio e test della serratura della tastiera della tastiera Arduino
Spesso, abbiamo bisogno di mettere in sicurezza una stanza a casa nostra o in ufficio (forse il laboratorio segreto di Dexter) in modo che nessuno possa accedere alla stanza senza il nostro permesso e garantire la protezione contro il furto o la perdita dei nostri importanti accessori e beni. Ci sono così tanti tipi di sistemi di sicurezza presenti oggi ma dietro le quinte, per l'autenticazione tutti si basano su impronta digitale, scanner della retina, scanner dell'iride, face id, scanner della lingua, lettore RFID, password, pin, modelli, ecc. Fuori tutte le soluzioni quello a basso costo è quello di utilizzare una password o un sistema basato su pin. Quindi, in questo progetto, ho costruito una serratura per tastiera Arduino che può essere montata su qualsiasi porta esistente per proteggerla con una password digitale. In precedenza, abbiamo anche costruito altre interessanti serrature che sono elencate di seguito.
- Serratura per porta RFID Arduino
- Serratura della porta del solenoide Arduino
- Blocco codice digitale Raspberry Pi
- 555 Timer serratura elettronica
Prima di costruire il nostro progetto di blocco della porta con password, dobbiamo innanzitutto raccogliere i componenti richiesti e poi andare avanti e seguire il processo di costruzione passo dopo passo.
Elenco dei componenti
- Scheda Arduino Uno / Pro / Mini o personalizzata utilizzando il microcontrollore Atmega 328p
- LCD 16 x 2 (display a cristalli liquidi)
- Tastiera a matrice 4 x 3 o 4 x 4 per Arduino
- Servomotore
- Armadietto porta stampato in 3D / armadietto porta personalizzato
- Componenti aggiuntivi per l'alimentazione del caricatore mobile da 1 Amp 5 Volt
- Scatole in plastica da 4 '' / 6 '', cavi per ponticelli, bulloni, involucri in plastica, ecc.
Schema del circuito per la serratura della porta della tastiera Arduino
Di seguito è mostrato lo schema circuitale completo per il nostro progetto di serratura della porta della tastiera digitale basato su Arduino.
Innanzitutto partiamo dal cervello di questo progetto che è la scheda Arduino UNO. La scheda Arduino è collegata a un LCD e un servomotore. Il servomotore viene utilizzato per spingere (bloccare) o tirare (sbloccare) il fermo della porta. Per visualizzare il messaggio di Arduino è necessario un LCD 16 x 2, 16 x 2 significa che ha 16 numeri di colonne e 2 numeri di righe. Se sei completamente nuovo ai moduli di visualizzazione LCD 16x2, puoi controllare questo tutorial sull'interfaccia LCD di Arduino per saperne di più.
Qui, sto usando un servomotore 5v Towerpro SG90 per realizzare il nostro armadietto porta personalizzato. È un servomotore di livello base e funziona bene con Arduino senza alcun circuito di pilotaggio o modulo esterno. Inoltre, il costo di questo servomotore è molto inferiore, quindi puoi facilmente permetterti di acquistarlo. Puoi anche controllare questo tutorial sul controllo del servomotore di Arduino per saperne di più sul servomotore e su come funziona. Collegare il servomotore con il pin D9 di Arduino Digital e con un alimentatore da 5 volt. Questo servomotore ha un totale di 3 linee di ingresso (GND, + 5V e SIGNAL LINE).
In questo progetto, ho utilizzato una tastiera a matrice 4 x 4 (ma la parte della tastiera 4 x 4 non è disponibile in fritzing per realizzare questa rappresentazione grafica), ma non preoccuparti perché anche la tastiera a matrice 4 x 3 funziona bene con la mia codifica. Abbiamo bisogno di una tastiera per inserire la password e bloccare manualmente il nostro armadietto personalizzato. Consiste di 16 tasti (soft switch) 4 tasti in Righe (R1, R2, R3, R4) e 4 tasti in Colonne (C1, C2, C3, C4) quando viene premuto un tasto, stabilisce una connessione tra le righe corrispondenti e colonne. La tabella seguente mostra come collegare il tuo Arduino con la tastiera.
Tastiera | Arduino |
Pin 1 (riga 1) | Pin digitale 1 |
Pin 2 (riga 2) | Pin digitale 2 |
Pin 3 (riga 3) | Pin digitale 3 |
Pin 4 (riga 4) | Pin digitale 4 |
Pin 5 (colonne 5) | Pin digitale 5 |
Pin 6 (colonne 6) | Pin digitale 6 |
Pin 7 (colonne 7) | Pin digitale 7 |
Codice Arduino per serratura della porta della tastiera digitale
Il codice completo della serratura della porta Arduino si trova in fondo a questa pagina. Puoi caricare direttamente il codice, ma si consiglia di leggere i paragrafi seguenti per capire come funziona il codice. Inoltre, è importante assicurarsi di aver aggiunto la seguente libreria di tastiere al tuo IDE Arduino per compilare il codice correttamente. Per farlo basta aprire il link sottostante e scaricare il file ZIP. Quindi sul tuo IDE Arduino vai su Sketch -> Include Library -> Add.ZIP Library e cerca il file che hai appena scaricato.
- Libreria della tastiera Arduino
Dopo aver inserito tutti i file di intestazione e libreria, assegnare tutti i pin per LCD e definire la lunghezza della password e impostare la posizione iniziale del servo a 0. Dopodiché, prendere un tipo di dati "char" per dichiarare il numero che può contenerlo incluso il carattere nullo.
//#includere
Con questo pezzo di codice (char Master = "123456";) - sotto il Char Master, dichiaro la password della serratura della porta, quindi assegno il numero di righe e colonne nella tastiera e dichiaro anche keyMaps e mi connetto con righe e colonne. Sotto l'impostazione void, inizializza il pin del segnale del servo D9, lo stato del servo è chiuso e stampa il nome del progetto / dispositivo / azienda con 3 secondi di ritardo sul tempo LCD di avvio del dispositivo.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Guarda progetto--"); ritardo (3000); lcd.clear (); }
Sotto la funzione loop, è presente la semplice condizione if-else. In base allo stato (si blocca automaticamente), stampa "La porta è chiusa" con 3 secondi di ritardo e il servo ruota in posizione di chiusura, i dati della porta contano come 1 altrimenti l'armadietto della porta rimane aperto e il conteggio dei dati 0, il servo aperto ruota alla posizione diventa 0 gradi a 180 gradi e per chiudere va da 180 a 0. Le funzioni servo aperto e servo chiuso sono mostrate sotto.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// va da 0 gradi a 180 gradi // con incrementi di 1 grado myservo.write (pos); // dice a servo di andare in posizione nella variabile 'pos' delay (15); // attende 15 ms che il servo raggiunga la posizione}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// va da 180 gradi a 0 gradi myservo.write (pos); // dice a servo di andare in posizione nella variabile 'pos' delay (15); // attende 15 ms che il servo raggiunga la posizione}}
Scrivi la posizione del servo con 15 secondi di ritardo per raggiungere la posizione del servo. Sotto la funzione void open, stampare sul display LCD "Enter Password", quindi la condizione specifica che la password inserita deve essere la stessa con la chiave personalizzata, all'interno di questo corpo i dati contati e memorizza il carattere nella matrice di dati, incrementata e la password di input stampata sul display LCD se il la lunghezza dei dati (numero di chiavi) e la password di ingresso corrispondono a Data Master (dove sono presenti le chiavi predefinite). Quindi, come azione, LCD cancella, servoazionamento, stampa sul display LCD "Door is open" e il contatore dati viene resettato a 0.
Se la chiave di input non corrisponde a Data Master, come azione sul display LCD cancella la stampa sul display LCD "Password errata" per notificare con 1 secondo di ritardo e rimane nella sua posizione di blocco con il contatore dati impostato su 1 e continuare questo processo in un ciclo.
if (data_count == Password_Lenght - 1) // se l'indice dell'array è uguale al numero di caratteri previsti, confronta i dati con il master {if (! strcmp (Data, Master)) // uguale a (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("La porta è aperta"); porta = 0; } altro {lcd.clear (); lcd.print ("Password errata"); ritardo (1000); porta = 1; } cancella i dati(); }
Assemblaggio e test della serratura della tastiera della tastiera Arduino
Ora, adatta tutto su una scatola di plastica da 4 pollici / 6 pollici e alimentalo con un caricabatterie mobile, allinea tutto bene usando il rivestimento. Idealmente, avrei potuto utilizzare la stampa 3D per assemblare il mio lucchetto, ma dopo aver progettato i miei file, ho scoperto che la stampa 3D è molto costosa, quindi ho solo riparato prima il servo, quindi ho collegato il normale armadietto scorrevole con il mio servo usando una piastra metallica e coperto con fibra di vetro, anche se funziona bene, è meno sicuro.
Se desideri maggiore sicurezza, devi stampare un modello di serratura della porta 3D che funziona internamente con questo servo. Puoi scaricare i file STL richiesti dal link sottostante e stamparli in 3D se hai accesso a una stampante 3D.
Scarica i file STL per la stampa 3D
I file di progettazione sono mostrati anche nell'immagine sottostante.
All'inizio del progetto, nel momento in cui lo accendiamo per la prima volta, dobbiamo dare il nome del progetto (puoi anche visualizzare il nome dell'azienda) in modo che appaia intelligente ed esclusivo come un dispositivo commerciale (come puoi vedere in l'immagine sotto).
Con 3 secondi di ritardo, bloccare rapidamente la porta e controllare direttamente sul display lo stato della serratura come mostrato nella figura sotto.
Quando si blocca manualmente la porta premendo il tasto "#", prima viene visualizzato Porta chiusa per 1 secondo, quindi viene visualizzato Inserisci password. D'altra parte, quando la porta viene sbloccata inserendo la password corretta, viene visualizzato Porta aperta.
Se la porta rimane in condizione di sblocco, viene visualizzato - La porta è aperta fintanto che si blocca manualmente la porta in base alla codifica. Ho fornito il codice ed è possibile personalizzare le impostazioni modificando il parametro di visualizzazione del codice come richiesto. Puoi anche controllare il funzionamento completo del video collegato in fondo a questa pagina.