- Lista componentelor
- Diagrama circuitului pentru blocarea ușii tastaturii Arduino
- Cod Arduino pentru blocarea ușii tastaturii digitale
- Asamblare și testare a tastaturii Arduino
De multe ori, trebuie să ne asigurăm o cameră la noi acasă sau la birou (poate un laborator secret al unui dexter), astfel încât nimeni să nu poată accesa camera fără permisiunea noastră și să asigure protecție împotriva furtului sau pierderii accesoriilor și activelor noastre importante. Există atât de multe tipuri de sisteme de securitate prezente astăzi, dar în spatele scenei, pentru autentificare, toate se retrag pe amprentă digitală, scaner de retină, scaner de iris, identificator de față, scaner de limbă, cititor RFID, parolă, pin, modele etc. Off toate soluțiile cel cu costuri reduse este să folosiți o parolă sau un sistem bazat pe pin. Așadar, în acest proiect, am construit un dispozitiv de blocare a ușii cu tastatură Arduino care poate fi montat pe oricare dintre ușile existente pentru a le asigura cu o parolă digitală. Anterior, am construit și alte încuietori interesante, care sunt enumerate mai jos.
- Blocare ușă RFID Arduino
- Încuietoare cu solenoid Arduino
- Blocare cod digital Raspberry Pi
- 555 Timer electronic Încuietoare ușă
Înainte de a construi proiectul nostru de blocare a ușii, mai întâi, trebuie să colectăm componentele necesare și apoi să mergem mai departe și să urmăm procesul de construire pas cu pas.
Lista componentelor
- Placă Arduino Uno / Pro / Mini sau Custom utilizând microcontrolerul Atmega 328p
- 16 x 2 LCD (ecran cu cristale lichide)
- Tastatură matricială 4 x 3 sau 4 x 4 pentru Arduino
- Servo motor
- Încuietoare ușă tipărită 3D / dulap personalizat
- Componente suplimentare pentru alimentarea cu încărcător mobil de 1 Amp 5 Volți
- Cutii de plastic de 4 "/ 6", fire jumper, șuruburi piulițe, carcasă din plastic etc.
Diagrama circuitului pentru blocarea ușii tastaturii Arduino
Diagrama completă a circuitului pentru proiectul nostru de blocare a ușii cu tastatură digitală bazată pe Arduino este prezentată mai jos.
În primul rând, pornim de la creierul acestui proiect, care este placa Arduino UNO. Placa Arduino este conectată la un LCD și un servomotor. Servomotorul este folosit pentru a împinge (bloca) sau a trage (debloca) zăvorul de pe ușă. Un ecran LCD de 16 x 2 este necesar pentru afișarea mesajului de către Arduino, 16 x 2 înseamnă că are 16 număr de coloane și 2 număr de rânduri. Dacă sunteți complet nou la modulele de afișaj LCD 16x2, puteți verifica acest tutorial Arduino LCD Interfacing pentru a afla mai multe despre acesta.
Aici, folosesc un servomotor Towerpro SG90 de 5v pentru realizarea dulapului nostru personalizat. Este un servomotor de nivel de bază și funcționează bine cu Arduino fără niciun circuit de conducere sau modul extern. De asemenea, costul acestui servomotor este foarte mic, astfel încât vă puteți permite cu ușurință să îl cumpărați. De asemenea, puteți verifica acest tutorial Arduino Servo Motor Control pentru a afla mai multe despre servomotor și cum funcționează. Conectați servomotorul cu pinul Arduino Digital D9 și cu o sursă de alimentare de 5 volt. Acest servomotor are un total de 3 linii de intrare (GND, + 5V & SIGNAL LINE).
În acest proiect, am folosit o tastatură matricială 4 x 4 (dar partea tastaturii 4 x 4 nu este disponibilă pentru a face această reprezentare grafică), dar nu vă faceți griji, deoarece tastatura Matrix 4 x 3 funcționează bine cu codarea mea. Avem nevoie de o tastatură pentru introducerea parolei și de blocarea manuală a dulapului nostru personalizat. Se compune din 16 taste (comutator soft) 4 taste în rânduri (R1, R2, R3, R4) și 4 taste în coloane (C1, C2, C3, C4) la apăsarea unei taste, stabilește o conexiune între rândurile corespunzătoare și coloane. Tabelul de mai jos arată cum să vă conectați Arduino la tastatură.
Tastatura | Arduino |
Pinul 1 (rândul 1) | Pin digital 1 |
Pinul 2 (rândul 2) | Pin digital 2 |
Pinul 3 (rândul 3) | Pin digital 3 |
Pinul 4 (rândul 4) | Pin digital 4 |
Pinul 5 (coloanele 5) | Pin digital 5 |
Pinul 6 (coloanele 6) | Pin digital 6 |
Pin 7 (coloane 7) | Pin digital 7 |
Cod Arduino pentru blocarea ușii tastaturii digitale
Codul complet de blocare a ușii Arduino poate fi găsit în partea de jos a acestei pagini. Puteți încărca direct codul, dar este recomandat să citiți paragrafele de mai jos pentru a înțelege cum funcționează codul. De asemenea, este important să vă asigurați că ați adăugat următoarea bibliotecă de tastaturi la ID-ul dvs. Arduino pentru a compila codul cu succes. Pentru aceasta, deschideți linkul de mai jos și descărcați fișierul ZIP. Apoi, pe IDE-ul dvs. Arduino, navigați la Sketch -> Include Library -> Add.ZIP Library și căutați fișierul pe care tocmai l-ați descărcat.
- Biblioteca tastaturii Arduino
După introducerea tuturor fișierelor antet și bibliotecă, atribuiți tot pinul pentru LCD și definiți lungimea parolei și setați poziția inițială a servo-ului la 0. După aceea, luați un tip de date „char” pentru declararea numărului care îl poate ține, inclusiv caracter nul.
//#include
Cu această bucată de cod (char Master = "123456";) - sub Char Master, declar parola încuietorii ușii, apoi atribuiesc numărul de rânduri și coloane din tastatură și declar, de asemenea, keyMaps și mă conectez cu rânduri și coloane. În configurația nulă, inițializați pinul de semnal servo D9, starea servo închisă și imprimați numele proiectului / dispozitivului / companiei cu 3 secunde de întârziere pe LCD timp de pornire a dispozitivului.
void setup () {myservo.attach (9); ServoClose (); lcd.inceput (16, 2); lcd.print („Ușa Arduino”); lcd.setCursor (0, 1); lcd.print ("- Look project--"); întârziere (3000); lcd.clear (); }
Sub funcția buclă, există condiția simplă if-else. Conform stării (este blocat automat), tipăriți „Ușa este închisă” cu 3 secunde de întârziere și servo rotiți până la poziția închisă, datele ușii sunt numite 1 altfel dulapul ușii rămâne deschis și numărul de date 0, servo deschis rotiți până la poziția 0 grade până la 180 de grade și închiderea acestuia merge de la 180 la 0. Funcțiile servo deschis și servo închidere sunt prezentate mai jos.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// merge de la 0 grade la 180 grade // în pași de 1 grad myservo.write (pos); // spuneți servo să meargă în poziție în întârziere variabilă „pos” (15); // așteaptă 15ms pentru ca servo să ajungă la poziție}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// merge de la 180 grade la 0 grade myservo.write (pos); // spuneți servo-ului să meargă în poziția variabilă „pos” întârziere (15); // așteaptă 15ms ca servo să ajungă în poziție}}
Scrieți poziția servo cu 15 secunde de întârziere pentru a ajunge la poziția servo. Sub funcția de deschidere nulă, tipăriți pe ecranul LCD „Introduceți parola”, apoi condiția specifică faptul că parola introdusă trebuie să fie aceeași cu cheia personalizată, în acest corp datele contate și stochează caracterele în matricea de date, incrementate și parola de intrare tipărită pe LCD dacă lungimea datelor (numărul de cheie) și parola de intrare se potrivesc cu Data Master (unde sunt prezente cheile predefinite). Apoi, ca acțiune LCD clară, servo drive, imprimați pe LCD „Ușa este deschisă” și contorul de date este resetat la 0.
Dacă tasta de intrare nu se potrivește cu Data Master, ca o acțiune pe ecranul LCD imprimă pe ecran „Parolă greșită” pentru a notifica cu 1 secundă de întârziere și rămâne în poziția de blocare cu seturile de contor de date la 1 și continua acest proces într-o buclă.
if (data_count == Password_Lenght - 1) // dacă indexul matricei este egal cu numărul de caractere așteptate, comparați datele cu masterul {if (! strcmp (Data, Master)) // egal cu (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print („Ușa este deschisă”); usa = 0; } else {lcd.clear (); lcd.print („Parolă greșită”); întârziere (1000); usa = 1; } date clare(); }
Asamblare și testare a tastaturii Arduino
Acum, montați totul pe o cutie de plastic de 4 inci / 6 inci și alimentați-l cu un încărcător mobil, aliniați totul frumos folosind carcasă. În mod ideal, aș fi putut folosi imprimarea 3D pentru a-mi asambla blocarea, dar după ce am proiectat fișierele, am constatat că imprimarea 3D este foarte costisitoare, așa că am fixat mai întâi servo-ul, apoi am conectat dulapul normal cu servo-ul meu folosind o placă metalică și am acoperit cu fibră de sticlă, deși funcționează bine, este mai puțin sigur.
Dacă doriți mai multă siguranță, atunci trebuie să imprimați un model de încuietoare de ușă 3D care funcționează intern cu acest servo. Puteți descărca fișierele STL necesare din link-ul de mai jos și le puteți imprima 3D dacă aveți acces la o imprimantă 3D.
Descărcați fișiere STL pentru imprimare 3D
Fișierele de proiectare sunt, de asemenea, afișate în imaginea de mai jos.
La începutul proiectului, în momentul în care îl pornim pentru prima dată, trebuie să dăm numele proiectului (puteți afișa și numele companiei), astfel încât să arate inteligent și exclusiv ca un dispozitiv comercial (așa cum puteți vedea în poza de mai jos).
Cu 3 secunde de întârziere, blocați rapid ușa și verificați direct afișajul pentru starea încuietorii ușii, așa cum se arată în imaginea de mai jos.
Când blocați ușa manual apăsând tasta „#”, acesta arată mai întâi Ușa este închisă timp de 1 secundă și apoi afișează Enter Password. Pe de altă parte, când ușa este deblocată prin introducerea parolei corecte, se arată că ușa este deschisă.
Dacă ușa rămâne în stare de deblocare, se afișează - Ușa este deschisă atâta timp cât blocați manual ușa conform codificării. Am dat codul și puteți personaliza setările modificând parametrul de afișare a codului, după cum este necesar. De asemenea, puteți verifica funcționarea completă cu videoclipul legat în partea de jos a acestei pagini.