- Nepieciešamās sastāvdaļas:
- Pirkstu nospiedumu sensora modulis ar Arduino:
- Darba skaidrojums:
- Ķēdes skaidrojums:
- Programmas skaidrojums:
Drošība ir nopietnas rūpes mūsu ikdienas dzīvē, un digitālās slēdzenes ir kļuvušas par nozīmīgu šo drošības sistēmu sastāvdaļu. Lai nodrošinātu mūsu vietu, ir pieejami daudzi drošības sistēmu veidi. Daži piemēri ir uz PIR balstīta drošības sistēma, uz RFID balstīta drošības sistēma, digitālās bloķēšanas sistēma, biomatricas sistēmas, elektroniskā koda atslēga. Šajā amatā mēs sasaistīsimies ar pirkstu nospiedumu sensora moduli ar Arduino un izveidosim uz pirkstu nospiedumiem balstītu biometrisko drošības sistēmu ar durvju bloķēšanu. Pirkstu druka tiek uzskatīta par vienu no drošākajām atslēgām, lai bloķētu vai atbloķētu jebkuru sistēmu, jo tā var unikāli atpazīt jebkuru personu un to nevar viegli nokopēt.
Nepieciešamās sastāvdaļas:
- Arduino Uno
- Pirkstu drukas modulis
- Nospiediet pogu -4
- Gaismas diodes -2
- 1K rezistors -3
- 2.2K rezistors -1 "
- Enerģijas padeve
- Savienojošie vadi
- Kartona kastē
- Servomotors -1
- 16x2 LCD -1
- Maizes dēlis -1
Pirkstu nospiedumu sensora modulis ar Arduino:
Pirkstu drukas sensora modulis vai pirkstu drukas skeneris ir modulis, kas uztver pirksta izdrukas attēlu, pēc tam pārveido to līdzvērtīgā veidnē un saglabā tos atmiņā ar Arduino izvēlēto ID (atrašanās vietu). Šeit visu procesu pavada Arduino, piemēram, pirkstu nospiedumu attēla uzņemšana, pārveidošana par veidnēm un atrašanās vietas saglabāšana utt.
Šajā Arduino pirkstu nospiedumu sensoru projektā mēs izmantojām pirkstu nospiedumu sensora moduli, lai pirkstu vai īkšķu nospiedumus ņemtu par ievadi sistēmā. Šeit mēs izmantojam 4 spiedpogas, lai reģistrētos / atgrieztos, dzēstu / labi, augšup un lejup. Katrai atslēgai ir dubultas funkcijas. Reģistrācijas taustiņš tiek izmantots, lai reģistrētu jaunu pirkstu nospiedumus sistēmā un muguras funkcijās. Tas nozīmē, ka tad, kad lietotājs vēlas reģistrēt jaunu pirkstu, viņam / viņai jānospiež reģistrācijas taustiņš, pēc tam LCD pieprasa ID vai vietu, kur lietotājs vēlas saglabāt pirkstu nospiedumu izvadi. Tagad, ja lietotājs nevēlas turpināt tālāk, viņš / viņa var vēlreiz nospiest reģistrēšanās taustiņu, lai atgrieztos (šoreiz reģistrēšanās taustiņš darbojas kā Atpakaļ). Nozīmē, ka reģistrēšanās taustiņam ir gan reģistrēšanās, gan atpakaļ funkcija. DEL / OK taustiņšir arī tāda pati dubultā funkcija kā, kad lietotājs reģistrē jaunu pirkstu, tad viņam / viņai ir jāizvēlas pirksta ID vai atrašanās vieta, izmantojot vēl divus taustiņus, proti, UP / MATCH UN DOWN / MATCH (kam ir arī dubultā funkcija), tagad lietotājam jānospiež DEL / OK atslēga (šoreiz šī atslēga darbojas kā labi), lai turpinātu atlasīto ID vai atrašanās vietu. UP / DOWN taustiņi atbalsta arī pirkstu nospiedumu spēles funkciju. Pārbaudiet video beigās pilnai demonstrāciju.
Šeit mēs esam pievienojuši arī kartona kārbu ar servomotoru, lai darbotos kā drošības vārti, kas atvērsies tikai tad, kad sistēma nolasīs pareizo pirkstu druku. Dzeltenā gaismas diode norāda, ka vārti ir aizvērti, un zaļā gaismas diode norāda, ka vārti ir atvērti.
Darba skaidrojums:
Šī pirksta nospieduma sensora durvju slēdzenes darbībair viegli. Šajā projektā mēs izmantojām vārtus, kas būs atvērti, kad novietosim glabāto pirkstu pie pirkstu nospiedumu moduļa. Pirmkārt, lietotājam ir jāreģistrē pirksts ar spiedpogas / taustiņu palīdzību. Lai to izdarītu, jānospiež taustiņš ENROLL un pēc tam LCD pieprasa ievadīt atrašanās vietu / ID, kur pirksts būs veikals. Tāpēc tagad lietotājam jāievada ID (atrašanās vieta), izmantojot UP / DOWN taustiņus. Pēc atrašanās vietas / ID izvēles lietotājam jānospiež taustiņš OK (DEL taustiņš). Tagad LCD lūgs novietot pirkstu virs pirksta drukas moduļa. Tagad lietotājam jāpieliek pirksts virs pirksta drukas moduļa. Tad LCD lūgs noņemt pirkstu no pirkstu drukas moduļa un atkal lūgs ievietot pirkstu. Tagad lietotājam atkal jāpieliek pirksts virs pirksta drukas moduļa.Tagad pirkstu nospiedumu modulis uzņem attēlu un pārvērš tos veidnēs un pēc atlasītā ID saglabā pirkstu drukas moduļa atmiņā. Tagad lietotājs var atvērt vārtus, ievietojot to pašu pirkstu, kuru viņš / viņa ir pievienojis vai reģistrējis sistēmā, un pēc tam nospiediet taustiņu MATCH (UP / Down taustiņš). Ar to pašu metodi lietotājs var pievienot vairāk pirkstu. Pilnu demonstrāciju skatiet zemāk esošajā videoklipā.
Tagad, ja lietotājs vēlas noņemt vai izdzēst kādu no saglabātajiem ID, viņam / viņai jānospiež taustiņš DEL, pēc DEL taustiņa nospiešanas LCD lūgs atlasīt atrašanās vietu, piemēram, atlasīt ID, kas jāizdzēš. Tagad lietotājam jāizvēlas ID un jānospiež taustiņš OK (tas pats DEL taustiņš). Tagad LCD paziņos, ka pirksts ir veiksmīgi izdzēsts. Tagad lietotājs var pārbaudīt, vai tas ir izdzēsts, noliecot to pašu pirkstu virs pirkstu drukas moduļa un nospiežot taustiņu MATCH (taustiņš AUGŠUP / LEJUP).
Kad pirksts būs derīgs, zaļā gaismas diode mirgos piecas sekundes, un vārti vienlaikus arī tiks atvērti. Pēc 5 sekundēm vārti tiks automātiski aizvērti. Lietotājs var pielāgot vārtu / durvju atvēršanu un aizvēršanu atbilstoši viņu prasībām. Servo motors ir atbildīgs par vārtu atvēršanu un aizvēršanu.
Ķēdes skaidrojums:
Šīs Arduino pirkstu nospiedumu drošības sistēmas shēma ir ļoti vienkārša, kas satur Arduino, kas kontrolē visu projekta procesu, spiedpogu, skaņas signālu un LCD. Arduino kontrolē pilnīgus procesus.
Spiežamā poga ir tieši savienota ar Arduino tapām D14 (ENROLL), D15 (DEL), D16 (UP) un D17 (DOWN) attiecībā pret zemi. Arduino digitālajā tapā D7 attiecībā pret zemi caur 1k rezistors un zaļais LED ir savienots ar Arduino D6 ar to pašu metodi. Pirkstu drukas moduļa Rx un Tx ir tieši savienoti ar Arduino programmatūras sērijas vai digitālajām tapām D2 un D3. 5v padeve tiek izmantota, lai darbinātu pirkstu nospiedumu moduli, kas ņemts no Arduino dēļa, un Servo motors ir pievienots arī Arduino PWM tapai D5. 16x2 LCD ir konfigurēts 4 bitu režīmā, un tā RS, EN, D4, D5, D6 un D7 ir tieši savienoti ar Arduino digitālo tapu D13, D12, D11, D10, D9 un D8.
Piezīme: šeit D14, D15, D16, D17 ir attiecīgi A0, A1, A2, A3.
Programmas skaidrojums:
Programmā mēs esam izmantojuši Adafruit Fingerprint Sensor Library, lai pirkstu nospiedumu moduli sasaistītu ar Arduino dēli. Jūs varat pārbaudīt pilnu kodu zemāk, to var viegli saprast. Šeit mēs izskaidrojam galvenās Arduino programmas funkcijas.
Zem koda daļas tiek izmantots pirkstu nospiedums kā ievade un rīkojieties atbilstoši pirksta validācijai. Ja pirksts tiks apstiprināts, vārti būs atvērti, pretējā gadījumā tie būs slēgti.
par (int i = 0; i <5; i ++) {lcd.skaidrs (); lcd.print ("Vietas pirksts"); kavēšanās (2000); int rezultāts = getFingerprintIDez (); if (rezultāts> = 0) {digitalWrite (openLight, HIGH); digitalWrite (closeLight, LOW); lcd.clear (); lcd.print ("Atļauts"); lcd.setCursor (0,1); lcd.print ("Gete atvērta"); myServo.write (0); kavēšanās (5000); myServo.write (180); digitalWrite (closeLight, HIGH); digitalWrite (openLight, LOW); lcd.setCursor (0,1); lcd.print ("vārti aizvērti");
Ņemot vērā void checkKeys (), tiek izmantota funkcija, lai pārbaudītu, vai taustiņš Enroll vai DEL ir nospiests vai nav, un kā rīkoties, ja tiek nospiests. Ja nospiedis taustiņu ENROLL, tiek izsaukta funkcija Reģistrēties () un nospiežot DEL taustiņu, tiek izsaukta dzēšanas () funkcija.
void checkKeys () {if (digitalRead (reģistrēties) == 0) {lcd.clear (); lcd.print ("Lūdzu, uzgaidiet"); kavēšanās (1000); while (digitalRead (reģistrēties) == 0); Reģistrēties (); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Lūdzu, uzgaidiet"); kavēšanās (1000); dzēst (); }}
Dotā funkcija tiek izmantota, lai ievadītu dzēšamo ID un izsauktu funkciju uint8_t deleteFingerprint (uint8_t id) , kas izdzēsīs pirkstu no ierakstiem.
void dzēst () {int skaits = 0; lcd.clear (); lcd.print ("Dzēst pirkstu"); lcd.setCursor (0,1); lcd.print ("Atrašanās vieta:"); kamēr (1) {lcd.setCursor (9,1); lcd.print (skaits); ja (digitalRead (augšup) == 0) {skaits ++; ja (skaits> 25) skaits = 0; kavēšanās (500); }……………….
Šī funkcija tiek izmantota pirkstu nospiedumu dzēšanai no izvēlētā ID ieraksta.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Lūdzu, uzgaidiet"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Izdzēsts!"); lcd.clear (); lcd.print ("Figer dzēsts"); lcd.setCursor (0,1); lcd.print ("Veiksmīgi"); kavēšanās (1000); } else {Serial.print ("Kaut kas nepareizs"); lcd.clear (); lcd.print ("Kaut kas nepareizs"); lcd.setCursor (0,1); lcd.print ("Mēģiniet vēlreiz vēlāk"); kavēšanās (2000); atgriešanās p; }}
Attiecīgā funkcija tiek izmantota, lai uzņemtu pirkstu nospiedumu attēlu un pārveidotu tos par veidni un ar atlasīto ID saglabātu pirkstu nospiedumu moduļa atmiņā.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("pirksta ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Vietas pirksts"); kavēšanās (2000); kamēr (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Tā mēs varam izmantot Arduino ar Finger Print Reader moduli drošības sistēmai.