- Lista över komponenter
- Kretsschema för Arduino-knapplås
- Arduino-kod för digitalt knapplås
- Arduino knappsats Dörrlås Montering och testning
Ofta behöver vi säkra ett rum i vårt hem eller kontor (kanske ett hemligt fingerlaboratorium) så att ingen kan komma åt rummet utan vårt tillstånd och säkerställa skydd mot stöld eller förlust av våra viktiga tillbehör och tillgångar. Det finns så många typer av säkerhetssystem närvarande idag men bakom scenen, för autentisering, de förlitar sig alla på fingeravtryck, näthinneskanner, irisskanner, ansikts-id, tungskanner, RFID-läsare, lösenord, stift, mönster etc. Av alla lösningar den billigaste är att använda ett lösenord eller ett pin-baserat system. Så i det här projektet har jag byggt ett Arduino-knapplås som kan monteras på någon av dina befintliga dörrar för att säkra dem med ett digitalt lösenord. Tidigare har vi också byggt andra intressanta dörrlås som listas nedan.
- Arduino RFID dörrlås
- Arduino Solenoid dörrlås
- Raspberry Pi Digital kodlås
- 555 Timer elektroniskt dörrlås
Innan vi bygger vårt lösenordsdörrlåsningsprojekt måste vi först samla in nödvändiga komponenter och sedan gå vidare och följa steg för steg-byggprocessen.
Lista över komponenter
- Arduino Uno / Pro / Mini eller anpassat kort med Atmega 328p Microcontroller
- 16 x 2 LCD (Liquid Crystal Display)
- 4 x 3 eller 4 x 4 matris tangentbord för Arduino
- Servomotor
- 3D-tryckt dörrskåp / anpassat dörrskåp
- Ytterligare komponenter för strömförsörjning av 1 Amp 5 Volt mobil laddare
- 4 '' / 6 '' plastlådor, bygeltrådar, mutterbultar, plasthölje etc.
Kretsschema för Arduino-knapplås
Det fullständiga kretsschemat för vårt Arduino-baserade Digital Keypad Door Lock-projekt visas nedan.
Först och främst börjar vi från hjärnan i detta projekt som är Arduino UNO-styrelsen. Arduino-kortet är anslutet till en LCD och en servomotor. Servomotorn används för att skjuta (låsa) eller dra (låsa upp) spärren på dörren. En 16 x 2 LCD krävs för att visa meddelandet av Arduino, 16 x 2 betyder att det har 16 antal kolumner och 2 antal rader. Om du är helt ny med 16x2 LCD-skärmmoduler kan du läsa den här Arduino LCD-gränssnittshandledningen för att lära dig mer om det.
Här använder jag en 5v Towerpro SG90 servomotor för att göra vårt skräddarsydda dörrskåp. Det är en servomotor på grundnivå och fungerar bra med Arduino utan någon drivkrets eller extern modul. Kostnaden för denna servomotor är också mycket mindre så att du enkelt har råd att köpa den. Du kan också kontrollera den här Arduino Servo Motor Control-handledningen för att lära dig mer om servomotorn och hur den fungerar. Anslut servomotorn med Arduino Digital-stift D9 och med en 5-volts strömförsörjning. Denna servomotor har totalt 3 ingångsledningar (GND, + 5V & SIGNAL LINE).
I det här projektet har jag använt en matrisstangentbord på 4 x 4 (men delstycken 4 x 4 är inte tillgänglig för att göra den här grafiska representationen), men oroa dig inte eftersom 4 x 3 Matris-tangentbord också fungerar bra med min kodning. Vi behöver en knappsats för inmatning av lösenord och låser vårt anpassade dörrlås manuellt. Den består av 16 tangenter (mjuk omkopplare) 4 tangenter i rader (R1, R2, R3, R4) och 4 tangenter i kolumner (C1, C2, C3, C4) när en knapp trycks in, den upprättar en anslutning mellan motsvarande rader och kolumner. Tabellen nedan visar hur du ansluter din Arduino till tangentbordet.
Knappsats | Arduino |
Stift 1 (rad 1) | Digital stift1 |
Stift 2 (rad 2) | Digital stift 2 |
Stift 3 (rad 3) | Digital stift 3 |
Stift 4 (rad 4) | Digital stift 4 |
Stift 5 (kolumner 5) | Digital stift 5 |
Stift 6 (kolumner 6) | Digital stift 6 |
Stift 7 (kolumner 7) | Digital stift 7 |
Arduino-kod för digitalt knapplås
Den kompletta Arduino-dörrlåskoden finns längst ner på denna sida. Du kan ladda upp koden direkt, men det rekommenderas att du läser styckena nedan för att förstå hur koden fungerar. Det är också viktigt att se till att du har lagt till följande knappsatsbibliotek i din Arduino IDE för att kompilera koden framgångsrikt. För att göra det öppnar du bara länken nedan och laddar ner ZIP-filen. Navigera sedan på din Arduino IDE till Sketch -> Inkludera bibliotek -> Add.ZIP-bibliotek och bläddra efter filen du just laddade ner.
- Arduino tangentbibliotek
När du har infogat alla rubrik- och biblioteksfiler, tilldela alla stift för LCD och definiera lösenordslängden och ställ in startpositionen för servon till 0. Därefter tar du en "char" -datatyp för att deklarera numret som kan innehålla det inklusive null karaktär.
//#omfatta
Med denna kod (char Master = "123456";) - under Char Master förklarar jag lösenordet för dörrlåset, tilldelar sedan antalet rader och kolumner på tangentbordet och deklarerar även keyMaps och ansluter till rader och kolumner. Under den ogiltiga inställningen, initiera servosignalstift D9, servostatus stängd och skriv ut namnet på projektet / enheten / företaget med 3 sekunders fördröjning på LCD-tidpunkten för start av enheten.
ogiltig installation () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Se projekt -"); fördröjning (3000); lcd.clear (); }
Under loop-funktionen är det enkla if-else-villkoret där. Enligt status (den låses automatiskt), skriv ut "Dörren är nära" med 3 sekunders fördröjning och servo rotera till stängningsläge, dörrdata räknas som 1 annars förblir dörrskåpet öppen och datatalet 0, servo öppet roterar till positionen går 0 grader till 180 grader och för att stänga går det från 180 till 0. Funktionerna för servoöppen och servostängning visas nedan.
ogiltigt ServoOpen () {för (pos = 180; pos> = 0; pos - = 5) {// går från 0 grader till 180 grader // i steg om 1 grad myservo.write (pos); // be servo att gå till position i variabel 'pos' fördröjning (15); // väntar 15 ms för att servon ska nå positionen}} ogiltig ServoClose () {för (pos = 0; pos <= 180; pos + = 5) {// går från 180 grader till 0 grader myservo.write (pos); // be servo att gå till position i variabel 'pos' fördröjning (15); // väntar 15 ms för att servon ska nå positionen}}
Skriv servopositionen med 15 sekunders fördröjning för att nå servoläget. Under tomrumsöppningsfunktionen, skriv ut på LCD: n "Ange lösenord", då anger villkoret att det inmatade lösenordet ska vara detsamma med anpassad nyckel, i denna kroppsdata räknas och lagras char i dataarrayen, inkrementerad och inmatad lösenord tryckt på LCD om datalängd (antal nycklar) och inmatat lösenord matchar Data Master (där de fördefinierade tangenterna finns). Därefter, som en åtgärd LCD-klar, servostyrning, skriv ut på LCD ”Dörren är öppen” och dataräknaren återställs till 0.
Om ingångsknappen inte stämmer överens med Data Master, som en åtgärd på LCD-skärmen rensar utskriften på LCD "Fel lösenord" för att meddela med 1 sekund om fördröjning och förblir i sitt låsläge med dataräknaruppsättningar till 1 och fortsätter denna process i en slinga.
if (data_count == Password_Lenght - 1) // om arrayindexet är lika med antalet förväntade tecken, jämför data med master {if (! strcmp (Data, Master)) // lika med (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Dörren är öppen"); dörr = 0; } annat {lcd.clear (); lcd.print ("Fel lösenord"); fördröjning (1000); dörr = 1; } radera data(); }
Arduino knappsats Dörrlås Montering och testning
Nu monterar du allt på en 4-tums / 6-tums plastlåda och driver den med en mobil laddare, rada upp allt snyggt med höljet. Helst kunde jag ha använt 3D-utskrift för att montera mitt lås, men efter att jag designat mina filer fann jag att 3D-utskrift är mycket kostsamt, så jag fixade bara servon först och kopplade sedan det vanliga glidskåpet till min servo med metallplåt och täckt upp med glasfiber, även om det fungerar bra, är det mindre säkert.
Om du vill ha mer säkerhet måste du skriva ut en 3D-dörrlåsmodell som fungerar internt med denna servo. Du kan ladda ner de nödvändiga STL-filerna från länken nedan och 3D-skriva ut dem om du har tillgång till en 3D-skrivare.
Ladda ner STL-filer för 3D-utskrift
Designfilerna visas också på bilden nedan.
I början av projektet, när vi startar det för första gången, måste vi ange projektnamnet (du kan också visa företagsnamnet) så det ser smart och exklusivt ut som en kommersiell enhet (som du kan se i bilden nedan).
Med 3 sekunders fördröjning, lås snabbt dörren och kontrollera direkt på displayen för status för dörrlåset som visas på bilden nedan.
När du manuellt låser dörren genom att trycka på “#” visas först Dörren är stängd i 1 sekund och sedan anger du Lösenord. Å andra sidan, när dörren är upplåst genom att ange rätt lösenord, visar den Dörren är öppen.
Om dörren förblir i upplåst skick visas den - Dörren är öppen så länge du manuellt låser dörren enligt kodningen. Jag har gett koden och du kan anpassa inställningarna genom att ändra kodvisningsparametern efter behov. Du kan också kontrollera hela arbetet med den länkade videon längst ner på denna sida.