- Liste over komponenter
- Kredsløbsdiagram til Arduino tastaturdørlås
- Arduino-kode til digitalt tastaturdørlås
- Arduino Tastatur Dørlås Montering og test
Ofte har vi brug for at sikre et værelse hjemme eller på kontoret (måske et hemmeligt fingerlaboratorium), så ingen kan få adgang til rummet uden vores tilladelse og sikre beskyttelse mod tyveri eller tab af vores vigtige tilbehør og aktiver. Der er så mange typer sikkerhedssystemer til stede i dag, men bag scenen, til autentificering er de alle afhængige af fingeraftryk, nethinden scanner, iris scanner, ansigt id, tunge scanner, RFID læser, adgangskode, pin, mønstre osv. Fra alle løsninger den billige er at bruge et kodeord eller et pin-baseret system. Så i dette projekt har jeg bygget en Arduino tastaturdørlås, som kan monteres på en hvilken som helst af dine eksisterende døre for at sikre dem med et digitalt kodeord. Tidligere har vi også bygget andre interessante dørlåse, som er anført nedenfor.
- Arduino RFID dørlås
- Arduino Solenoid dørlås
- Raspberry Pi Digital kodelås
- 555 Timer elektronisk dørlås
Før vi bygger vores adgangskodedørelåsningsprojekt, skal vi først samle de nødvendige komponenter og derefter gå videre og følge trin for trin byggeproces.
Liste over komponenter
- Arduino Uno / Pro / Mini eller brugerdefineret kort ved hjælp af Atmega 328p Microcontroller
- 16 x 2 LCD (Liquid Crystal Display)
- 4 x 3 eller 4 x 4 matrix tastatur til Arduino
- Servomotor
- 3D-trykt dørskab / tilpasset dørskab
- Yderligere komponenter til strømforsyning af 1 Amp 5 Volt mobil oplader
- 4 '' / 6 '' plastkasser, jumperwirer, møtrikbolte, plastikhus osv.
Kredsløbsdiagram til Arduino tastaturdørlås
Det komplette kredsløbsdiagram for vores Arduino-baserede Digital Keypad Door Lock-projekt er vist nedenfor.
Først og fremmest starter vi fra hjernen i dette projekt, som er Arduino UNO-bestyrelsen. Arduino-kortet er tilsluttet en LCD og en servomotor. Servomotoren bruges til at skubbe (låse) eller trække (låse op) låsen på døren. En 16 x 2 LCD er påkrævet for at vise meddelelsen af Arduino, 16 x 2 betyder, at den har 16 antal kolonner og 2 antal rækker. Hvis du er helt ny med 16x2 LCD-skærmmoduler, kan du tjekke denne Arduino LCD-grænsefladesvejledning for at lære mere om det.
Her bruger jeg en 5v Towerpro SG90 servomotor til at lave vores tilpassede dørskab. Det er en grundlæggende servomotor og fungerer fint med Arduino uden noget drivkredsløb eller eksternt modul. Omkostningerne ved denne servomotor er også meget mindre, så du nemt har råd til at købe den. Du kan også tjekke denne Arduino Servo Motor Control-vejledning for at lære mere om servomotoren og hvordan den fungerer. Tilslut servomotoren med Arduino Digital pin D9 og med en 5 volt strømforsyning. Denne servomotor har i alt 3 indgangslinjer (GND, + 5V & SIGNAL LINE).
I dette projekt har jeg brugt et 4 x 4 matrix-tastatur (men 4 x 4-tastaturets del er ikke tilgængelig i fritzing til at lave denne grafiske repræsentation), men rolig, da 4 x 3 Matrix-tastatur også fungerer fint med min kodning. Vi har brug for et tastatur til indtastning af adgangskode og låser vores tilpassede dørlås manuelt. Den består af 16 taster (soft switch) 4 taster i rækker (R1, R2, R3, R4) og 4 taster i kolonner (C1, C2, C3, C4) når der trykkes på en tast, opretter en forbindelse mellem de tilsvarende rækker og kolonner. Nedenstående tabel viser, hvordan du forbinder din Arduino med tastaturet.
Tastatur | Arduino |
Pin 1 (række 1) | Digital pin1 |
Pin 2 (række 2) | Digital pin 2 |
Pin 3 (række 3) | Digital pin 3 |
Pin 4 (række 4) | Digital pin 4 |
Pin 5 (kolonne 5) | Digital pin 5 |
Pin 6 (kolonne 6) | Digital pin 6 |
Pin 7 (kolonne 7) | Digital pin 7 |
Arduino-kode til digitalt tastaturdørlås
Den komplette Arduino dørlåsekode findes nederst på denne side. Du kan uploade koden direkte, men det anbefales at læse nedenstående afsnit for at forstå, hvordan koden fungerer. Det er også vigtigt at sikre, at du har tilføjet følgende tastaturbibliotek til din Arduino IDE for at kompilere koden med succes. For at gøre det skal du bare åbne linket nedenfor og downloade ZIP-filen. Gå derefter til Sketch -> Inkluder bibliotek -> Tilføj.ZIP-bibliotek på din Arduino IDE og søg efter den fil, du lige har downloadet.
- Arduino-tastaturbibliotek
Når du har indsat alle header- og biblioteksfiler, skal du tildele al pin til LCD og definere adgangskodelængden og indstille startpositionen til servoen til 0. Tag derefter en "char" datatype til at erklære det nummer, der kan indeholde det inklusive null karakter.
//#omfatte
Med dette stykke kode (char Master = "123456";) - under Char Master erklærer jeg adgangskoden til dørlåsen, tildeler derefter antallet af rækker og kolonner på tastaturet og erklærer også keyMaps og forbinder med rækker og kolonner. Under tomrumsopsætningen initialiser du servosignalstift D9, servostatus lukkes og udskriver navnet på projektet / enheden / virksomheden med 3 sekunders forsinkelse på LCD-tidspunktet for start af enheden.
ugyldig opsætning () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Se projekt -"); forsinkelse (3000); lcd.clear (); }
Under loop-funktionen er den enkle if-else-betingelse der. I henhold til status (den låses automatisk), udskriver "Døren er tæt" med 3 sekunders forsinkelse, og servo roterer til lukkeposition, dørdata tæller som 1 ellers forbliver dørlåsen åben og datatællingen 0, servo åben roterer til positionen går 0 grader til 180 grader, og for at lukke går det fra 180 til 0. Funktionerne Servo åben og Servoluk vises nedenfor.
ugyldigt ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// går fra 0 grader til 180 grader // i trin på 1 grad myservo.write (pos); // fortæl servo at gå til position i variabel 'pos' forsinkelse (15); // venter 15 ms på, at servoen når positionen}} ugyldig ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// går fra 180 grader til 0 grader myservo.write (pos); // fortæl servo at gå til position i variabel 'pos' forsinkelse (15); // venter 15 ms på, at servoen når positionen}}
Skriv servopositionen med 15 sekunders forsinkelse for at nå servopositionen. Under ugyldig åbningsfunktion skal du udskrive på LCD “Indtast adgangskode”, så angiver betingelsen, at den indtastede adgangskode skal være den samme med brugerdefineret nøgle, inden i denne kropsdata tælles og gemmer char i dataarrayet, inkrementeret og indtastet adgangskode udskrevet på LCD, hvis datalængde (antal nøgler) og inputadgangskode stemmer overens med Data Master (hvor de foruddefinerede taster er til stede). Derefter, som et handlings-LCD klart, servodrev, udskrives på LCD “Døren er åben” og datatælleren nulstilles til 0.
Hvis inputtasten ikke stemmer overens med Data Master, som en handling på LCD-klar udskrivning på LCD "Forkert adgangskode" for at give besked med 1 sekund om forsinkelse og forbliver i sin låseposition med datatællersæt til 1 og fortsætte denne proces i en sløjfe.
hvis (data_count == Password_Lenght - 1) // hvis matrixindekset er lig med antallet af forventede tegn, skal du sammenligne data med master {hvis (! strcmp (Data, Master)) // lig med (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Døren er åben"); dør = 0; } andet {lcd.clear (); lcd.print ("Forkert adgangskode"); forsinkelse (1000); dør = 1; } slet data(); }
Arduino Tastatur Dørlås Montering og test
Monter nu alt på en 4 tommer / 6 tommer plastkasse, og tænd den med en mobil oplader, og still alt pænt op ved hjælp af kabinet. Ideelt set kunne jeg have brugt 3D-udskrivning til at samle min lås, men efter at have designet mine filer, fandt jeg ud af, at 3D-udskrivning er meget dyr, så jeg fik bare repareret servoen først og derefter tilsluttet den normale glideskab med min servo ved hjælp af metalplade og dækket det op med glasfiber, selvom det fungerer fint, er det mindre sikkert.
Hvis du vil have mere sikkerhed, skal du udskrive en 3D-dørlåsemodel, der fungerer internt med denne servo. Du kan downloade de krævede STL-filer fra nedenstående link og 3D udskrive dem, hvis du har adgang til en 3D-printer.
Download STL-filer til 3D-udskrivning
Designfilerne er også vist på billedet nedenfor.
I starten af projektet, i det øjeblik vi starter det for første gang, skal vi give projektnavnet (du kan også vise firmanavnet), så det ser smart og eksklusivt ud som en kommerciel enhed (som du kan se i billedet nedenfor).
Med 3 sekunders forsinkelse skal du hurtigt låse døren og tjekke direkte på displayet for dørlåsens status som vist på billedet nedenfor.
Når du manuelt låser døren ved at trykke på “#” -tasten, viser den først, at døren er lukket i 1 sekund, og derefter viser den Enter Password. På den anden side, når døren låses op ved at indtaste den korrekte adgangskode, viser den Dør er åben.
Hvis døren forbliver i oplåsningstilstand, vises den - Døren er åben, så længe du manuelt låser døren i henhold til kodningen. Jeg har givet koden, og du kan tilpasse indstillingerne ved at ændre kodevisningsparameteren efter behov. Du kan også kontrollere komplet arbejde med den linkede video nederst på denne side.