- Llista de components
- Diagrama de circuits per al bloqueig de la porta del teclat Arduino
- Codi Arduino per al pany del teclat digital
- Muntatge i prova del bloqueig de porta del teclat Arduino
Sovint, necessitem assegurar una habitació a casa o a l'oficina (potser un laboratori secret de destres) perquè ningú pugui accedir a l'habitació sense el nostre permís i garantir protecció contra el robatori o la pèrdua dels nostres accessoris i béns importants. Hi ha tants tipus de sistemes de seguretat presents avui dia, però darrere de l’escena, per a l’autenticació, tots es retransmeten en empremtes digitals, escàner de retina, escàner d’iris, identificador de cara, escàner de llengua, lector RFID, contrasenya, pin, patrons, etc. el de baix cost és utilitzar una contrasenya o un sistema basat en pin. Per tant, en aquest projecte he construït un pany de porta del teclat Arduino que es pot muntar a qualsevol de les portes existents per assegurar-les amb una contrasenya digital. Anteriorment, també hem construït altres panys de porta interessants que es detallen a continuació.
- Pany de porta RFID Arduino
- Pany de solenoide Arduino
- Bloqueig de codi digital Raspberry Pi
- 555 Temporitzador electrònic Pany de porta
Abans de construir el nostre projecte de bloqueig de portes amb contrasenya, primer, hem de recollir els components necessaris i després seguir endavant i seguir el procés de construcció pas a pas.
Llista de components
- Placa Arduino Uno / Pro / Mini o personalitzada mitjançant microcontrolador Atmega 328p
- LCD de 16 x 2 (pantalla de cristall líquid)
- Teclat de matriu 4 x 3 o 4 x 4 per Arduino
- Servomotor
- Armari de porta imprès en 3D / armariet de porta personalitzat
- Components addicionals per a la font d'alimentació d'un carregador mòbil d'1 Amp de 5 volts
- Caixes de plàstic de 4 "/ 6", cables de pont, perns de femella, carcassa de plàstic, etc.
Diagrama de circuits per al bloqueig de la porta del teclat Arduino
A continuació es mostra el diagrama de circuits complet del nostre projecte de bloqueig de la porta del teclat digital basat en Arduino.

Primer de tot, partim del cervell d’aquest projecte, que és la placa Arduino UNO. La placa Arduino està connectada a una pantalla LCD i a un servomotor. El servomotor s’utilitza per empènyer (bloquejar) o estirar (desbloquejar) el pestell de la porta. Es necessita una pantalla LCD de 16 x 2 per mostrar el missatge d'Arduino, 16 x 2 significa que té 16 nombre de columnes i 2 nombre de files. Si sou completament nou en els mòduls de pantalla LCD de 16x2, podeu consultar aquest tutorial Arduino LCD Interfacing per obtenir més informació.
Aquí faig servir un servomotor Towerpro SG90 de 5v per fabricar el nostre armariet de porta personalitzat. És un servomotor de nivell bàsic i funciona bé amb Arduino sense cap circuit de conducció ni mòdul extern. A més, el cost d’aquest servomotor és molt menor, de manera que podeu comprar-lo fàcilment. També podeu consultar aquest tutorial Arduino Servo Motor Control per obtenir més informació sobre el servo motor i el seu funcionament. Connecteu el servomotor amb el pin D9 d'Arduino Digital i amb una font d'alimentació de 5 volt. Aquest servomotor té un total de 3 línies d’entrada (GND, + 5V i SIGNAL LINE).
En aquest projecte, he utilitzat un teclat matricial de 4 x 4 (però la part del teclat 4 x 4 no està disponible per fer aquesta representació gràfica), però no us preocupeu, ja que el teclat Matrix 4 x 3 també funciona bé amb la meva codificació. Necessitem un teclat per introduir la contrasenya i bloquejar manualment el nostre armari personalitzat. Consisteix en 16 tecles (commutador suau) 4 tecles en files (R1, R2, R3, R4) i 4 tecles en columnes (C1, C2, C3, C4) quan es prem una tecla, estableix una connexió entre les files corresponents i columnes. La taula següent mostra com connectar el vostre Arduino amb el teclat.
| Teclat | Arduino |
| Pin 1 (fila 1) | Pin digital1 |
| Pin 2 (fila 2) | Pin digital 2 |
| Pin 3 (fila 3) | Pin digital 3 |
| Pin 4 (fila 4) | Pin digital 4 |
| Pin 5 (columnes 5) | Pin digital 5 |
| Pin 6 (columnes 6) | Pin digital 6 |
| Pin 7 (columnes 7) | Pin digital 7 |
Codi Arduino per al pany del teclat digital
Es pot trobar el codi complet de bloqueig de la porta Arduino a la part inferior d’aquesta pàgina. Podeu penjar el codi directament, però es recomana llegir els paràgrafs següents per entendre com funciona el codi. A més, és important assegurar-vos que heu afegit la següent biblioteca de teclats al vostre ID Arduino per compilar el codi amb èxit. Per fer-ho, només cal obrir l'enllaç següent i descarregar el fitxer ZIP. A continuació, a l’IDE Arduino, aneu a Sketch -> Inclou biblioteca -> Add.ZIP Library i cerqueu el fitxer que acabeu de descarregar.
- Biblioteca del teclat Arduino
Després d'inserir tots els fitxers de capçalera i biblioteca, assigneu tots els pins per a LCD i definiu la longitud de la contrasenya i configureu la posició inicial del servo a 0. Després d'això, agafeu un tipus de dades "char" per declarar el número que pot contenir-lo, inclòs el caràcter nul.
//#incloure
Amb aquest tros de codi (char Master = "123456";): sota el Char Master, declaro la contrasenya del pany de la porta, després assigno el nombre de files i columnes del teclat i també declaro keyMaps i em connecto amb files i columnes. Sota la configuració de buit, inicialitzeu el pin de senyal del servo D9, l'estat del servo tancat i imprimiu el nom del projecte / dispositiu / empresa amb 3 segons de retard a la pantalla LCD en iniciar el dispositiu.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Porta Arduino"); lcd.setCursor (0, 1); lcd.print ("- Mira el projecte -"); retard (3000); lcd.clear (); }
Sota la funció de bucle, hi ha la condició simple if-else. Segons l'estat (es bloqueja automàticament), imprimiu "La porta està tancada" amb 3 segons de retard i el servo gira fins a la posició de tancament, les dades de la porta es compten com a 1 en cas contrari, l'armari de la porta roman obert i el recompte de dades 0, el servo obert gira a la posició 0 de 180 a 180 graus i per tancar-lo passa de 180 a 0. Les funcions servo obertura i servo tancament es mostren a continuació.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// va de 0 a 180 graus // en passos d'1 grau myservo.write (pos); // digueu al servo que vagi a la posició en el retard variable 'pos' (15); // espera 15 ms perquè el servo assoleixi la posició}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// va de 180 a 0 graus myservo.write (pos); // digueu al servo que vagi a la posició en el retard variable 'pos' (15); // espera 15 ms perquè el servo assoleixi la posició}}
Escriviu la posició del servo amb 15 segons de retard per arribar a la posició del servo. Sota la funció d'obertura buida, imprimiu a la pantalla LCD "Introduïu la contrasenya" i, a continuació, la condició especifica que la contrasenya introduïda hauria de ser la mateixa que la clau personalitzada, dins d'aquest cos es comptabilitzaran les dades i s'emmagatzemaran els caràcters a la matriu de dades, la contrasenya incrementada i introduïda a la pantalla LCD la longitud de les dades (nombre de claus) i la contrasenya d’entrada coincideixen amb Data Master (on hi ha les claus predefinides). A continuació, com a acció LCD clara, servoaccionament, imprimiu a la pantalla LCD “La porta està oberta” i el comptador de dades es restableix a 0.
Si la tecla d'entrada no coincideix amb Data Master, com a acció a la impressió LCD clara a la pantalla "Contrasenya incorrecta", es notifica amb 1 segon de retard i es manté a la posició de bloqueig amb els comptadors de dades a 1 i es continua aquest procés en bucle.
if (data_count == Password_Lenght - 1) // si l'índex de matriu és igual al nombre de caràcters esperats, compareu les dades amb el master {if (! strcmp (Data, Master)) // igual a (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("La porta està oberta"); porta = 0; } else {lcd.clear (); lcd.print ("contrasenya incorrecta"); retard (1000); porta = 1; } esborrar les dades(); }
Muntatge i prova del bloqueig de porta del teclat Arduino
Ara, col·loqueu-ho tot en una caixa de plàstic de 4 polzades i accioneu-lo amb un carregador mòbil, alineneu-ho tot amb una carcassa. L’ideal seria que pogués fer servir la impressió 3D per muntar el pany, però després de dissenyar els meus fitxers, vaig trobar que la impressió 3D costava molt, de manera que primer vaig arreglar el servo i, després, vaig connectar el portaobjectes normal amb el meu servo amb placa metàl·lica i vaig cobrir amb fibra de vidre, tot i que funciona bé, és menys segur.

Si voleu més seguretat, heu d’imprimir un model de pany de porta 3D que funcioni internament amb aquest servo. Podeu descarregar els fitxers STL necessaris del següent enllaç i imprimir-los en 3D si teniu accés a una impressora 3D.
Descarregueu fitxers STL per a la impressió 3D
Els fitxers de disseny també es mostren a la imatge següent.

Al començament del projecte, en el moment en què l’encenem per primera vegada, hem de donar el nom del projecte (també es pot mostrar el nom de l’empresa) perquè sembli elegant i exclusiu com un dispositiu comercial (com podeu veure a la imatge següent).

Amb 3 segons de retard, bloquegeu ràpidament la porta i comproveu directament l'estat del pany de la pantalla, tal com es mostra a la imatge que es mostra a continuació.

Quan es bloqueja manualment la porta prement la tecla "#", primer es mostra que la porta està tancada durant 1 segon i, a continuació, es mostra Introduïu la contrasenya. D'altra banda, quan es desbloqueja la porta introduint la contrasenya correcta, es mostra que la porta està oberta.

Si la porta es manté en estat de desbloqueig, es mostra: la porta està oberta sempre que es bloqueja manualment la porta segons la codificació. He donat el codi i podeu personalitzar la configuració canviant el paràmetre de visualització del codi segons sigui necessari. També podeu consultar el funcionament complet amb el vídeo enllaçat a la part inferior d’aquesta pàgina.
