- Komponentų sąrašas
- „Arduino“ klaviatūros durų užrakto schema
- „Arduino“ skaitmeninės klaviatūros durų užrakto kodas
- „Arduino“ klaviatūros „DoorLock“ surinkimas ir testavimas
Dažnai mes turime užsitikrinti kambarį savo namuose ar biure (galbūt slaptojo vekselio laboratorijoje), kad niekas negalėtų patekti į kambarį be mūsų leidimo ir užtikrinti apsaugą nuo vagystės ar svarbių mūsų priedų ir turto praradimo. Šiandien yra tiek daug apsaugos sistemų tipų, tačiau užkulisiuose autentifikavimo tikslais jie visi persiunčiami į pirštų atspaudus, tinklainės skaitytuvą, rainelės skaitytuvą, veido ID, liežuvio skaitytuvą, RFID skaitytuvą, slaptažodį, PIN kodą, šablonus ir kt. Ne visi sprendimai pigiausia yra naudoti slaptažodį arba PIN sistema. Taigi šiame projekte aš sukūriau „Arduino“ klaviatūros durų užraktą, kurį galima pritvirtinti prie bet kokių jūsų esamų durų, kad jas būtų galima apsaugoti skaitmeniniu slaptažodžiu. Anksčiau mes taip pat sukūrėme kitas įdomias durų spynas, kurios yra išvardytos žemiau.
- „Arduino“ RFID durų spyna
- „Arduino“ elektromagnetinių durų spyna
- „Raspberry Pi“ skaitmeninis kodinis užraktas
- 555 Laikmatis elektroninis durų užraktas
Prieš kurdami savo slaptažodžių durų užrakinimo projektą, pirmiausia turime surinkti reikiamus komponentus, tada tęsti žingsnį po žingsnio.
Komponentų sąrašas
- „Arduino Uno“ / „Pro“ / „Mini“ arba „Custom“ plokštė, naudojant „Atmega 328p“ mikrovaldiklį
- 16 x 2 skystųjų kristalų ekranas
- 4 x 3 arba 4 x 4 matricos klaviatūra, skirta „Arduino“
- Servo variklis
- 3D atspausdinta durų spintelė / pritaikyta durų spintelė
- Papildomi 1 Amp 5 voltų mobiliojo įkroviklio maitinimo komponentai
- 4 "/ 6" plastikinės dėžės, trumpiklių laidai, veržlių varžtai, plastikinis korpusas ir kt.
„Arduino“ klaviatūros durų užrakto schema
Visa „Arduino“ pagrindu sukurto „Digital Keypad“ durų užrakto projekto schema parodyta žemiau.
Pirmiausia mes pradedame nuo šio projekto, kuris yra „Arduino UNO“ valdyba, smegenų. „Arduino“ plokštė yra prijungta prie LCD ir servovariklio. Servovariklis naudojamas durų skląsčiui stumti (užrakinti) arba traukti (atrakinti). Norint parodyti „Arduino“ pranešimą, reikalingas 16 x 2 skystųjų kristalų ekranas, 16 x 2 reiškia, kad jame yra 16 stulpelių ir 2 eilučių skaičius. Jei dar nesinaudojote 16x2 LCD ekranų moduliais, galite sužinoti šią „Arduino LCD Interfacing“ mokymo programą, kad sužinotumėte daugiau apie tai.
Čia naudoju 5v „ Towerpro SG90“ servovariklį, kad galėčiau gaminti pritaikytą durų spintelę. Tai yra pagrindinio lygio servovariklis ir puikiai veikia su „Arduino“ be jokios pavaros grandinės ar išorinio modulio. Be to, šio servovariklio kaina yra labai maža, todėl galite lengvai sau leisti jį nusipirkti. Taip pat galite patikrinti šią „Arduino“ servovariklio valdymo pamoką, kad sužinotumėte daugiau apie servovariklį ir jo veikimą. Servovariklį prijunkite su „Arduino Digital“ kaiščiu D9 ir 5 voltų maitinimo šaltiniu. Šiame servo variklyje yra 3 įvesties linijos (GND, + 5 V ir SIGNAL LINE).
Šiame projekte aš naudojau 4 x 4 matricos klaviatūrą (tačiau 4 x 4 klaviatūros dalis nėra prieinama formuojant šį grafinį vaizdą), bet nesijaudinkite, nes 4 x 3 matricos klaviatūra taip pat puikiai veikia su mano kodavimu. Mums reikia klaviatūros slaptažodžiui įvesti ir rankiniu būdu užrakinti mūsų pritaikytą durų spintelę. Jį sudaro 16 klavišų (programinis jungiklis), 4 klavišai eilutėse (R1, R2, R3, R4) ir 4 klavišai stulpeliuose (C1, C2, C3, C4), kai paspaudžiamas klavišas, jis užmezga ryšį tarp atitinkamų eilučių ir stulpelius. Žemiau esančioje lentelėje parodyta, kaip prijungti „Arduino“ su klaviatūra.
Klaviatūra | Arduino |
1 kaištis (1 eilutė) | Skaitmeninis kaištis |
2 kaištis (2 eilutė) | 2 skaitmeninis kaištis |
3 kaištis (3 eilutė) | Skaitmeninis kaištis 3 |
4 kaištis (4 eilutė) | Skaitmeninis kaištis 4 |
5 kaištis (5 stulpeliai) | 5 skaitmeninis kaištis |
6 kaištis (6 stulpeliai) | Skaitmeninis kaištis 6 |
7 kaištis (7 stulpeliai) | Skaitmeninis kaištis 7 |
„Arduino“ skaitmeninės klaviatūros durų užrakto kodas
Visą „Arduino“ durų užrakto kodą galite rasti šio puslapio apačioje. Galite tiesiogiai įkelti kodą, tačiau rekomenduojama perskaityti toliau pateiktas pastraipas, kad suprastumėte, kaip kodas veikia. Taip pat svarbu įsitikinti, kad prie „Arduino IDE“ pridėjote šią klaviatūros biblioteką, kad sėkmingai sukompiluotumėte kodą. Norėdami tai padaryti, tiesiog atidarykite žemiau esančią nuorodą ir atsisiųskite ZIP failą. Tada „Arduino IDE“ eikite į „Eskizas“ -> „Įtraukti biblioteką“ -> „Add.ZIP“ biblioteka ir raskite ką tik atsisiųstą failą.
- „Arduino“ klaviatūros biblioteka
Įdėję visus antraštės ir bibliotekos failus, priskirkite visą LCD kaištį, nustatykite slaptažodžio ilgį ir nustatykite pradinę servo padėtį į 0. Po to paimkite „char“ duomenų tipą, kad deklaruotumėte numerį, kuriame jį galima laikyti, įskaitant nulinis simbolis.
// # įtraukti
Naudodamas šį kodo elementą (char Master = "123456";) - po „Char Master“ aš deklaruoju durų užrakto slaptažodį, tada priskiriu eilučių ir stulpelių skaičių klaviatūroje, taip pat deklaruoju „KeyMaps“ ir jungiuosi su eilėmis ir stulpeliai. Atlikę tuščią sąranką, inicializuokite servo signalo kaištį D9, servo būsena uždaryta ir atspausdinkite projekto / įrenginio / įmonės pavadinimą su 3 sekundžių vėlavimu įjungiant LCD ekraną.
negaliojanti sąranka () {myservo.attach (9); „ServoClose“ (); lcd.begin (16, 2); lcd.print („Arduino durys“); lcd.setCursor (0, 1); lcd.print ("- Look project--"); vėlavimas (3000); lcd.clear (); }
Pagal ciklo funkciją yra paprastoji sąlyga „jei kitaip“. Pagal būseną (ji užrakinama automatiškai) atspausdinkite „Durys uždarytos“ su 3 sekundžių vėlavimu ir servo pasukama į uždarymo padėtį, durų duomenys skaičiuojami kaip 1, kitaip durų spintelė lieka atvira, o duomenų skaičius 0, atidarytas servo pasukamas į padėtį 0 laipsnių iki 180 laipsnių, o uždarymui - nuo 180 iki 0. Servo atidarymo ir uždarymo funkcijos rodomos žemiau.
void „ServoOpen“ () {for (pos = 180; pos> = 0; pos - = 5) {// eina nuo 0 laipsnių iki 180 laipsnių // 1 laipsnio žingsniais myservo.write (pos); // liepti servo eiti į padėtį kintamuoju „pos“ vėlavimu (15); // laukia 15 ms, kol servo pasieks padėtį}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// eina nuo 180 laipsnių iki 0 laipsnių myservo.write (pos); // liepti servo eiti į padėtį kintamuoju „pos“ vėlavimu (15); // laukia 15ms, kol servo pasieks padėtį}}
Parašykite servo padėtį su 15 sekundžių vėlavimu, kad pasiektumėte servo padėtį. Vykdydami negaliojančią atidarymo funkciją, atspausdinkite LCD ekrane „Enter Password“, tada sąlygoje nurodoma, kad įvestas slaptažodis turi sutapti su pasirinktiniu raktu. Šiame kūno duomenyje suskaičiuojami ir saugomi simboliai į duomenų masyvą, padidintas ir įvestas slaptažodis atspausdintas LCD, duomenų ilgis (rakto skaičius) ir įvesties slaptažodis sutampa su „Data Master“ (kur yra iš anksto nustatyti raktai). Tada, kai veiksmo skystasis ekranas išvalo, servo pavara, atspausdinkite LCD skystyje „Durys atidarytos“ ir duomenų skaitiklis nustatomas į 0.
Jei įvesties raktas nesutampa su „Data Master“, tai veiksmas, kai skystųjų kristalų ekrane aiškiai spausdinama „Neteisingas slaptažodis“, kad būtų pranešta su 1 sekundės vėlavimu ir jis lieka užrakto padėtyje, kai duomenų skaitiklis nustatytas į 1 ir tęskite šį procesą kilpa.
if (data_count == Slaptažodis_Lenght - 1) // jei masyvo indeksas yra lygus numatomų simbolių skaičiui, palyginkite duomenis su pagrindiniu {if (! strcmp (Data, Master)) // // lygu (strcmp (Data, Master) == 0) {lcd.neaišku (); ServoOpen (); lcd.print („Durys atidarytos“); durys = 0; } dar {lcd.clear (); lcd.print ("neteisingas slaptažodis"); vėlavimas (1000); durys = 1; } Išvalyti duomenis(); }
„Arduino“ klaviatūros „DoorLock“ surinkimas ir testavimas
Dabar viską sutalpinkite ant 4 colių / 6 colių plastikinės dėžutės ir maitinkite mobiliuoju įkrovikliu, viską gražiai surikiuokite naudodami korpusą. Idealiu atveju aš galėčiau naudoti 3D spausdinimą surinkdamas savo užraktą, bet suprojektavęs failus, supratau, kad 3D spausdinimas yra labai brangus, todėl aš pirmiausia sutvarkiau servo servisą, tada prijungiau įprastą skaidrių spintelę prie savo servo naudodamas metalinę plokštelę ir uždengiau stiklo pluoštu, nors jis veikia gerai, jis yra mažiau saugus.
Jei norite daugiau saugumo, turite atspausdinti 3D durų užrakto modelį, kuris veikia viduje su šiuo servo. Reikiamus STL failus galite atsisiųsti iš toliau pateiktos nuorodos ir 3D juos atsispausdinti, jei turite prieigą prie 3D spausdintuvo.
Atsisiųskite STL failus 3D spausdinimui
Dizaino failai taip pat parodyti paveikslėlyje žemiau.
Projekto pradžioje, kai mes jį pirmą kartą įjungiame, turime suteikti projekto pavadinimą (taip pat galite rodyti įmonės pavadinimą), kad jis atrodytų protingas ir išskirtinis kaip komercinis įrenginys (kaip matote paveikslėlyje žemiau).
Vėluodami 3 sekundes, greitai užrakinkite duris ir tiesiogiai patikrinkite, ar ekrane nėra durų užrakto būsenos, kaip parodyta toliau pateiktame paveikslėlyje.
Kai rankiniu būdu užrakinate duris, paspausdami klavišą „#“, pirmiausia rodoma, kad durys 1 sekundei uždarytos, tada rodoma Įvesti slaptažodį. Kita vertus, kai durys atrakinamos įvedus teisingą slaptažodį, tai rodo, kad durys yra atidarytos.
Jei durys lieka neužrakintos, rodoma - Durys atidarytos tol, kol rankiniu būdu užrakinate duris pagal kodą. Aš daviau kodą ir galite pritaikyti nustatymus, jei reikia, pakeisdami kodo rodymo parametrą. Taip pat galite patikrinti, ar darbas su vaizdo įrašu susietas šio puslapio apačioje.