Arduino თითის ანაბეჭდის სენსორი. ბიომეტრიული საკეტი - სკანერის დაყენება და მიკროკონტროლერის დაპროგრამება. გათიშვა კომპორტიდან

მიუხედავად იმისა, რომ თქვენ შეგიძლიათ უსაფრთხო სისტემებზე წვდომა პაროლებისა და გასაღებების მეშვეობით, ორივე ვარიანტი შეიძლება იყოს მოუხერხებელი და ადვილად დასავიწყებელი. ამ გაკვეთილზე ჩვენ ვისწავლით, თუ როგორ გამოვიყენოთ FPM10A მოდული Adafruit Arduino ბიბლიოთეკაში შესაქმნელად ბიომეტრიული სისტემათითის ანაბეჭდები.

ტრადიციულად, ვიწყებთ ჩვენი გაკვეთილის კომპონენტებით.

დეტალები

  • FPM10A თითის ანაბეჭდის მოდული
  • არდუინო უნო

ბიბლიოთეკები და პროგრამული უზრუნველყოფა

  • Arduino IDE
  • Adafruit Fingerprint Library

კავშირის დიაგრამა

FPM10A მოდულისა და Arduino Uno-ს კავშირის დიაგრამა ერთმანეთთან უნდა იყოს დაკავშირებული, როგორც ზემოთ მოცემულ ფიგურაში. ჩვენ უფრო დეტალურად განვიხილავთ შემდეგ ეტაპზე.

კომპონენტების დამაკავშირებელი

ამ მოდულის დაწყება წარმოუდგენლად მარტივია, რადგან ის იყენებს სერიულ პორტს კომუნიკაციისთვის. თუმცა, რადგან Arduino Uno-ს აქვს მხოლოდ ერთი აპარატურის სერიული პორტი, თქვენ უნდა გამოიყენოთ სერიული პორტი პროგრამული უზრუნველყოფა 2 და 3 ქინძისთავები თითის ანაბეჭდის მოდულთან კომუნიკაციისთვის (ტექნიკის სერიული პორტი დაცულია კომპიუტერთან კომუნიკაციისთვის).

ლენტიანი კაბელი, რომელიც მოჰყვება FPM10A მოდულს, არ არის ძალიან მეგობრული ჰობისთვის, რადგან მავთულები დგას კორპუსში 1,27 მმ მოედანზე, ამიტომ ჩვენ დავჭრათ ერთი მხარე და შემდეგ მივაერთეთ მავთულები ჯემპერებს.

ბიბლიოთეკის ინსტალაცია და გამოყენება

FPM10A-ის გამოყენების პირველი ნაბიჯი არის Adafruit's Fingerprint ბიბლიოთეკის დაყენება, რაც შეიძლება გაკეთდეს ბიბლიოთეკის მენეჯერის გამოყენებით. გახსენით Arduino IDE და გადადით:

ჩანახატი → ბიბლიოთეკის ჩართვა → ბიბლიოთეკების მართვა

როდესაც ბიბლიოთეკის მენეჯერი ატვირთავს ძიებას „თითის ანაბეჭდისთვის“, პირველი შედეგი უნდა იყოს Adafruit თითის ანაბეჭდის ბიბლიოთეკა. დააინსტალირეთ.

ბიბლიოთეკის ინსტალაციის შემდეგ, შექმნის დროა ახალი პროექტიარდუინო. დააწკაპუნეთ ფაილი → ახალი და შემდეგ შეინახეთ პროექტი საკუთარ საქაღალდეში. ამ ეტაპზე გახსენით თქვენი პროექტის საქაღალდე და დააკოპირეთ მასში “fingerprint.h” ფაილი.

ეს სპეციალური ფაილისათაური, რომელიც დაიწერა თითის ანაბეჭდის ბიბლიოთეკის გამოსაყენებლად. სათაურის ფაილს აქვს მხოლოდ სამი ფუნქცია:

  • fingerprint_setup() - აკონფიგურირებს სერიულ პორტს 9600 ბაუდზე და უერთდება მოდულს;
  • readFingerprint() - გამოკითხვის ფუნქცია, რომელიც აბრუნებს -1-ს, თუ რამე არასწორედ მოხდა, ან აბრუნებს ინფორმაციას წარმატებული თითის ანაბეჭდის აღმოჩენის შესახებ
  • enrollFingerprint (int id) - ამატებს თითის ანაბეჭდს სისტემას მინიჭებული იდენტიფიკატორით „id“.

იმისათვის, რომ ჩართოთ ეს ფაილი თქვენს პროექტში, უბრალოდ გამოიყენეთ include ბრძანება, როგორც ეს ნაჩვენებია ქვემოთ:

#include "fingerprint.h"

პირველი ფუნქცია, რომელიც უნდა გამოძახოთ setup()-ში არის fingerprint_setup(), რომელიც ავტომატურად უერთდება მოდულს და ადასტურებს, რომ ყველაფერი მუშაობს.

Void setup() ( fingerprint_setup();)

ახალი თითის ანაბეჭდის დასამატებლად გამოიძახეთ enrollFingerprint(id) ფუნქცია.

ეს უბრუნდება -1-ს, თუ წარუმატებლობა მოხდება. წინააღმდეგ შემთხვევაში, მნიშვნელობები მიუთითებს წარმატებულ თითის ანაბეჭდის რეგისტრაციაზე. ID უზრუნველყოფდა ამ ფუნქციას ბმულებით დასკანირებულ თითის ანაბეჭდთან და თითოეულ თითის ანაბეჭდს ჰქონდა უნიკალური საიდენტიფიკაციო ნომერი.

თითის ანაბეჭდის რეგისტრაცია (0x01);

არდუინოს კოდი

თქვენ შეგიძლიათ დააკოპიროთ საბოლოო ესკიზი ჩვენი Arduino დაფისთვის ქვემოთ:

#include "fingerprint.h" void setup() ( fingerprint_setup(); ) void loop() ( // თითის ანაბეჭდის ახალი ჩანაწერის შექმნა enrollFingerprint(0x01); delay(1000); // შესვლის მოთხოვნა Serial.println(" \nUSER შესვლის მოთხოვნა... მოათავსეთ თითის სენსორზე \n"); while(readFingerprint() == -1); Serial.println(" \nწვდომა გაცემულია \n"); Serial.println(" \nთითის ანაბეჭდის საიმედოობა: " + სტრიქონი (დარწმუნებულობა) + "\n");

ოპერაციული პრინციპი

როდესაც ამ პროექტს ჩართავთ, ის ჯერ მოგთხოვთ თითი დაადოთ სკანერზე. თუ სკანერს შეუძლია თქვენი თითის ანაბეჭდების წაკითხვა, ის მოგთხოვთ ამოიღოთ და შემდეგ შეცვალოთ თითი სკანერით. ამან შეიძლება გამოიწვიოს სკანერმა წარმატებით დაამატოს თქვენი თითის ანაბეჭდი ID 1-ში და თითის სკანერზე დადებამ უნდა გამოიწვიოს სისტემაში წვდომა.

ეს პროექტი ადვილად შეიძლება გაფართოვდეს და მოიცავდეს საკეტებს და სოლენოიდის რელეებს, რათა უფლებამოსილ მომხმარებლებს შეცვალონ ცვლილებები და განბლოკონ სისტემა. როდესაც თქვენი პროექტი მზად არის, დააინსტალირეთ ახალი სკანერიკარებში, კაბინეტებში, სეიფებში, ფანჯრებში, ელექტრო სისტემებში, კომპიუტერებში და სხვა მრავალი!

თითის ანაბეჭდის სენსორთან კავშირის შესაქმნელად გამოყენებული იქნა ჯოშ ჰეულის ინსტრუქციები (ინსტრუქციების პირდაპირი ჩამოტვირთვა).

ასოების ეკრანით თითის ანაბეჭდის სკანერის მუშაობის გამართვისთვის საჭიროა სინქრონიზაცია.

თითის ანაბეჭდის სენსორს აქვს საკუთარი მეხსიერება სკანირებული სურათების შესანახად. ასე რომ, მას შემდეგ, რაც სენსორი დაიწყებს მუშაობას, ჩამოტვირთეთ ეს თითის ანაბეჭდის მონაცემთა ბაზაში 0 მისამართის დამატებით. გახსენით მართვის კონსოლი თქვენს კომპიუტერში და მიჰყევით ამომხტარ ბრძანებებს.

კოდები – მოციმციმე მაგალითი:

/* ბიბლიოთეკის მაგალითი GT-511C3 თითის ანაბეჭდის სკანერის (FPS) სამართავად */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardware setup - FPS დაკავშირებულია: //ციფრული პინი 10(arduino rx, fps tx) //ციფრული პინი 11(arduino tx - 560ohm resistor fps tx - 1000ohm resistor - ground) //ეს ამცირებს 5v tx ხაზს დაახლოებით 3.2v-მდე, ასე რომ ჩვენ არ შევწვათ ჩვენი fps FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // ასე რომ თქვენ შეგიძლიათ ნახოთ შეტყობინებები სერიული გამართვის ეკრანზე fps.Open(); ) void loop())( // FPS Blink LED სატესტო fps .SetLED(true) // ჩართეთ LED-ის შიგნით დაყოვნება (1000); გამორთე LED შიგნით fps delay (1000); )

კოდები – დარეგისტრირების მაგალითი:

/* FPS_Enroll.ino - ბიბლიოთეკის მაგალითი GT-511C3 თითის ანაბეჭდის სკანერის (FPS) სამართავად */ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardware setup - FPS დაკავშირებულია: //ციფრული პინი 10 (arduino rx, fps tx) //ციფრული პინი 11(arduino tx - 560ohm resistor fps tx - 1000ohm resistor - ადგილზე) //ეს ამცირებს 5v tx ხაზს დაახლოებით 3.2v-მდე, ასე რომ ჩვენ არ შევწვათ ჩვენი fps FPS_GT511C3 fps(1 11); void setup())( Serial.begin(9600); delay(100); fps.Open(); fps.SetLED(true); Enroll(); ) void Enroll())( // რეგისტრაცია ტესტი // იპოვე გახსნილი enroll id int enrollid = 0.EnrollStart(enrollid) .CaptureFinger(true); int iret = 0 if (bret != false) (Serial.println("Remove finger"); Serial.println("დააჭირე ისევ იგივე თითს" while(fps.IsPressFinger() == false) delay(100); fps.Enroll2(); IsPressFinger() == true) delay(100 Serial.println)("დააჭირე ისევ იგივე თითს" while(fps. IsPressFinger() == false) delay(100); if (bret != false) ( Serial.println ("თითის ამოღება"); iret = fps.Enroll3(); if (iret == 0) ( Serial.println ("რეგისტრაცია წარმატებით დასრულდა"); ) else ( Serial.print ("რეგისტრაციაშეცდომის კოდი:"); Serial.println(iret); ) ) else Serial.println ("მესამე თითის დაჭერა ვერ მოხერხდა"); ) else Serial.println ("მეორე თითის დაჭერა ვერ მოხერხდა"); ) else Serial.println( "პირველი თითის დაჭერა ვერ მოხერხდა");

ფაილის სინქრონიზაცია:

ესკიზის სარეგისტრაციო ფაილი:

ეტაპი 7: ATtiny85 პროცესორის პროგრამირება

ATtiny85 მიკროჩიპი იაფია და სრულად თავსებადია Arduino-ს დაფასთან, ის ალბათ საუკეთესო ელექტრო ნაწილია, რაც კი ოდესმე შექმნილა!

Arduino პროგრამისტი ასევე საჭიროა ATmega328 ჩიპის განახლებისთვის, რომელიც აკონტროლებს LCD დისპლეის მუშაობას.

აწყობილ მოწყობილობაში ATtiny პროცესორი შეასრულებს ძალიან მარტივ ბრძანებებს: შეამოწმეთ თუ არა სიგნალი ATmega-დან და გახსენით ავტოფარეხის კარი, როდესაც სიგნალი დადასტურდება.

პროცესორის დასაპროგრამებლად, ის უნდა იყოს დაკავშირებული გამოყენებით პურის დაფაპროგრამისტთან ერთად 10 uF კონდენსატორთან ერთად, როგორც ნაჩვენებია ქვემოთ მოცემულ სურათზე.

და შემდეგ გადმოწერეთ საბოლოო კოდიდა მიჰყევით რეკომენდაციებს ინსტრუქციები High-Low Tech-ისგან.

ამის შემდეგ, გამომავალი 13 Arduino-ს დაფაზე, რომელიც დაკავშირებულია LED-თან, უნდა გადავიდეს HIGH მდგომარეობაზე, რომ აკონტროლოთ მუშაობა სინათლის ჩვენების გამოყენებით.

საბოლოო კოდი ატინი :

//fpsAttiny by Nodcah //მიიღებს მოკლე სიგნალს ძირითადი მოდულიდან, რომ დახუროს რელეს void setup())( pinMode(2,OUTPUT); //ინდიკატორი 10K რეზისტორის მეშვეობით pinMode(4,OUTPUT); //ტრაზისტორის პინი რომელიც ხსნის ავტოფარეხის pinMode-ს (0,INPUT) ) ( //მარტივი ნიმუში ტრანზისტორის დაყოვნების გასააქტიურებლად (125); if(digitalRead(0)==false)( delay(55); //დროები გამორთულია, რადგან ATtiny-ის ტაიმერი არ არის სრულყოფილი, თუ(digitalRead ( 0))( დაგვიანებით(55); if(digitalRead(0)==false)( delay(55); if(digitalRead(0))(delay(55); if(digitalRead(0)==false)( digitalWrite (4, HIGH ) ;

ბიომეტრიული საკეტი - საბოლოო კოდი, საფარის ამოჭრა, ავტოფარეხის მომზადება GPS საათიარდუინოზე ბიომეტრიული საკეტი - LCD დისპლეის დიაგრამა და შეკრება

რადგან მანქანა არ მყავს, არ მჭირდება ჩემი გასაღებები ყველგან თან ატარო. ამის გამო, გაირკვა, რომ რამდენჯერმე აღმოვჩნდი სახლის გარეთ გასაღებების გარეშე და მომიწია ლოდინი, როდის მოვიდოდა ჩემი ახლობელი სახლში და შემეშვა, და რაღაც მომენტში გადავწყვიტე, რომ რაღაც უნდა გამეკეთებინა. და დააპროექტა ხელნაკეთი ავტოფარეხის საკეტი.

ამ პროექტში მე გაჩვენებთ როგორ გააკეთოთ თითის ანაბეჭდის საკეტი თქვენი წინა კარისთვის.

ნაბიჯი 1: მასალები


აქ არის საჭირო მასალებისა და ხელსაწყოების სია.

ელექტრონიკა:

  • თითის ანაბეჭდის სკანერი (და JST კონექტორი)
  • LCD კომპლექტი (ATmega328-ით)
  • ATtiny85
  • NPN ტრანზისტორი
  • ტვიტერის დინამიკი
  • სპიკერის მავთული
  • ქეისი (მე-9 ნაბიჯში იქნება ფაილები 3D ბეჭდვისთვის)
  • სპილენძის ფილმი
  • ძაბვის რეგულატორი 5 ვ
  • 9 ვ ბატარეა
  • კონექტორი 9 ვ ბატარეისთვის
  • SPDT შეცვლა

მოხერხებულობისთვის Sparkfun-ის ვებსაიტზე დავამაგრებ მზა სურვილების სიას.

ინსტრუმენტი:

  • Soldering რკინის და solder
  • საიზოლაციო ლენტი
  • მავთულები და მხტუნავები
  • ნიპერები/სტრიპტიზიორი
  • პროტოტიპის დაფა
  • სხვადასხვა რეზისტორები
  • ხრახნები
  • საბურღი
  • რამდენიმე LED-ები ტესტირებისთვის
  • FTDI 5V დაფა
  • ცხელი წებოს იარაღი
  • წვდომა 3D პრინტერზე
  • სურვილისამებრ: სოკეტისთვის ინტეგრირებული სქემები(8-პინი ATtiny-სთვის და 28-პინი ATmega-სთვის)
  • სურვილისამებრ: კიდევ ერთი Arduino დაფა / 10uF კონდენსატორი (დეტალები ნაბიჯი 5)

ნაბიჯი 2: მოწყობილობის დიაგრამა






Sparkfun-ისგან შეძენილ LCD კომპლექტს მოჰყვა ATmega328, რომელიც აკონტროლებს ეკრანს. ATmega328 საკმაოდ ძლიერია და მისი გამოყენება შესაძლებელია არა მხოლოდ ჩვენების კონტროლისთვის, არამედ სხვა ამოცანებისთვისაც. ამის გათვალისწინებით, ჩვენ შეგვიძლია გამოვიყენოთ ის Arduino-ს ნაცვლად თითის ანაბეჭდის სკანერთან კომუნიკაციისთვის და ATtiny85-ზე ბრძანებების გასაგზავნად, ეკრანის და სიგნალის გასაკონტროლებლად.

იმისთვის, რომ კარის ბიომეტრიულმა საკეტმა მუდმივად არ იმუშაოს, მასში ჩამრთველი ჩავუშვით, რომელიც მუშაობს საქმის დახურვის მომენტში. თუ ქეისი დახურულია, მოწყობილობას ელექტროენერგია არ მიეწოდება და ჩვენ ვზოგავთ ბატარეის რესურსს.

მნიშვნელოვანი შენიშვნა: თითის ანაბეჭდის სკანერი მუშაობს 3.3 ვოლტზე, ამიტომ გირჩევთ გამოიყენოთ ძაბვის გამყოფი, რომელიც გადააქცევს სიგნალებს ATmega-დან 3.2V-მდე. ძაბვის გამყოფი შედგება 560 ომიანი რეზისტორისგან D10/წამში სკანერის პინს შორის და 1K რეზისტორისგან GND/მეორე სკანერის პინს შორის.

LCD პინი:

  • D10 - სკანერის პინი 1 (შავი მავთული)
  • D11 - სკანერის პინი 2 (ძაბვის გამყოფის საშუალებით)
  • D12 - ATtiny85
  • D13 - სკიერი

ATtiny85 pinout:

  • პინი 5 (0 პროგრამის კოდში) - შეყვანა ATmega-დან
  • პინი 3 (პროგრამის კოდში 4) - ტრანზისტორი / ყვითელი LED
  • პინი 7 (2 პროგრამის კოდში) - მითითება LED

ნაბიჯი 3: კომპონენტების აწყობა LCD კომპლექტიდან

ნაბიჯის სახელი თავისთავად მეტყველებს: მოსახერხებელი სწრაფი დაწყების/შეკრების სახელმძღვანელო

ნაბიჯი 4: მიკროსქემის აწყობა პროტოტიპის დაფაზე




კომპონენტების დაფაზე განთავსება თქვენზეა დამოკიდებული, უბრალოდ შეეცადეთ მავთულები ისე შეაერთოთ, რომ ისინი ერთი და იგივე მიმართულებით იყოს და არ გატყდეს.

აწყობის შემდეგ, დაფის ზედა და ქვედა ნაწილი დავფარე ცხელი წებოთი - ამით უზრუნველყოფილი და იზოლირებულია მიკროსქემის ელემენტები. ცხელი წებო არ დააზიანებს ჩიპს.

როგორც მთავარი დაფის შემთხვევაში, შეადუღეთ ყველაფერი ATtiny დაფაზე და წაისვით ცხელი წებო კომპონენტების დასამაგრებლად და იზოლაციისთვის. ძაბვის რეგულატორი შეიძლება ძალიან გაცხელდეს, ამიტომ კარგი იდეაა მოერიდოთ მასზე ან მის მახლობლად მდებარე ნებისმიერ ზედაპირს ცხელი წებოს წასმას. ასევე უმჯობესია არ დაფაროთ ATtiny დაფა ცხელი წებოთი, რადგან შეიძლება დაგჭირდეთ მისი ამოღება და გადაპროგრამირება.

ნაბიჯი 5: ATmega328-ის პროგრამირება

როგორც ნახსენები ნაბიჯი 2, ATmega328 აქვს საკმარისი ძლიერი პროცესორიდა საკმარისი ქინძისთავები LCD ეკრანის გასაკონტროლებლად, ხოლო ის აკონტროლებს სხვა არჩევით კომპონენტებს. ამის მისაღწევად საჭიროა ჩიპის დაპროგრამება.

თუ თქვენ გაქვთ Arduino Uno ან Duemilanove, შეგიძლიათ უბრალოდ ამოიღოთ ჩიპი მისგან და შეცვალოთ იგი კომპლექტში მოთავსებული ჩიპით. ან შეგიძლიათ იპოვოთ FTDI Basic Breakout-ის დაფა (5V) და შედუღების დანართები მის გვერდზე (იხილეთ ნახატები ნაბიჯი 3)

თქვენ ასევე დაგჭირდებათ კოდის ატვირთვა "Duemilanove w/ ATmega328" რეჟიმში.

კოდი ქვემოთ - სამუშაო პროგრამამოწყობილობის ფუნქციონირების შესამოწმებლად.

#include "LiquidCrystal.h" LiquidCrystal lcd(2,3,4,5,6,7,8); void setup() ( pinMode(9, OUTPUT); //backlight pinMode(13, OUTPUT); //beeper lcd.begin(16, 2); //16 სიმბოლო სიგანე, 2 მაღალი ციფრულიWrite(9, HIGH) ;/ /turn on backlight lcd.print(" Hello world! " //center the text using spaces delay(2000) void loop() .clear( lcd.print (" Buzzer is on ");

ნაბიჯი 6: თითის ანაბეჭდის სკანერის დაყენება

მე გამოვიყენე ეს ბიბლიოთეკა სკანერთან კომუნიკაციისთვის. პირდაპირი ჩამოტვირთვის ბმული.

იმის შესამოწმებლად, მუშაობს თუ არა თქვენი კოდი, ჩამოტვირთეთ ეს ციმციმის ტესტერი.

თითის ანაბეჭდის სკანერს აქვს საკუთარი ჩაშენებული მეხსიერება მონაცემთა შესანახად. ასე რომ, მას შემდეგ რაც დარწმუნდებით, რომ სკანერი მუშაობს, ჩამოტვირთეთ ეს პროგრამა, რომ დაამატოთ თქვენი თითის ანაბეჭდი მონაცემთა ბაზაში ID #0-ში. გახსენით თქვენი სერიული კონსოლი და უბრალოდ მიჰყევით ინსტრუქციას.

LED ციმციმის პროგრამა სკანერის შესამოწმებლად

/* ეს მარტივი კოდი ჩართავს და გამორთავს LED-ს. იგი გამოიყენება იმის გასაგებად, მუშაობს თუ არა კომუნიკაცია.

*/ #include "FPS_GT511C3.h" #include "SoftwareSerial.h" //Hardware setup - თითის სკანერი დაკავშირებულია: //ციფრული პინი 10(arduino rx, fps tx) //ციფრული პინი 11(arduino tx - 560ohm fps resistor tx - 1000ohm რეზისტორი - GND) //ეს ამცირებს 5v tx-ს დაახლოებით 3.2v-მდე და ჩვენ არ დავწვავთ ჩვენს სკანერს FPS_GT511C3 fps(10, 11); void setup())( Serial.begin(9600); fps.UseSerialDebug = true; // შეგიძლიათ იხილოთ შეტყობინებები სერიული გამართვის ეკრანზე fps.Open(); ) void loop())( // ციმციმის ტესტი LED-ისთვის fps სკანერი (true) რთავს LED-ს სკანერის დაყოვნებას (1000);

პროგრამა სკანერში მონაცემების ჩაწერისთვის

ნაბიჯი 7: დაპროგრამეთ ATtiny85


ATtiny85 არის რაღაც იაფი Arduino აწყობილი ერთ ჩიპში. ATtiny85 შეიძლება დაპროგრამდეს სხვა Arduinos-ის მიერ, მათ შორის ATmega328, რომელიც გვხვდება ჩვენს LCD კომპლექტში. პროექტში იგი გამოიყენება ძალიან მარტივი ბრძანებების გასაშვებად: შეამოწმეთ სიგნალი ATmega-დან და გახსენით კარიბჭე, თუ სიგნალი სწორია.

მის დასაპროგრამებლად დააკავშირეთ ყველაფერი თანდართული ფოტოების მიხედვით. შემდეგ ჩამოტვირთეთ საჭირო ფაილები და მიჰყევით ამ ინსტრუქციას.

კოდის ჩამოტვირთვის შემდეგ, PIN 13 Arduino-ზე (ჩაშენებული LED) უნდა აანთოს, რაც მიუთითებს, რომ კოდი გადმოწერილია.

საბოლოო კოდი:

//მიიღებს მოკლე სიგნალს მთავარი მოდულიდან რელეს void setup()) (pinMode(2,OUTPUT); //LED მითითება 10K რეზისტორის pinMode(4,OUTPUT); //ტრანზისტორის პინი, რომელიც ხსნის ავტოფარეხს pinMode(0,INPUT ); /მარტივი ნიმუში ტრანზისტორის გადართვისთვის (125 if(digitalRead(0)==false)(delay(55); //wait, ვინაიდან ATtiny ტაიმერი არ არის იდეალური if(digitalRead(0))( delay(55); if(digitalRead(0)= =false)(delay(55); if(digitalRead(0))(delay(55); if(digitalRead(0)==false)(digitalWrite(4, HIGH); / / ტრანზისტორი „დაჭერს“ ღილაკზე დაყოვნებას (1000 );

ნაბიჯი 8: საბოლოო კოდი

ქვემოთ მოცემულია Arduino პროგრამა, რომელიც დავწერე სკანერისა და დისპლეის ბიბლიოთეკების გამოყენებით. იმის გასაგებად, თუ რა ხდება პროგრამის თითოეულ ნაწილში, შევეცადე ყველაფერი საუკეთესოდ გამომეთქვა. ამ კოდის ჩამოტვირთვის შემდეგ ყველაფერი უნდა იმუშაოს და რაც რჩება გასაკეთებელი არის სისტემის კარში ინტეგრირება.

გაფრთხილება: თუ სკანერის ბიბლიოთეკა არ მუშაობს, მაშინ სცადეთ გამოყენება ძველი ვერსია Arduino IDE.

კოდი ATmega238-ისთვის:

#include "LiquidCrystal.h" //display library #include "FPS_GT511C3.h" //fps (თითის ანაბეჭდის სკანერი) ბიბლიოთეკა #include "SoftwareSerial.h" //გამოიყენება სკანერის ბიბლიოთეკის მიერ //დისპლეის და სკანერის პინების კონფიგურაცია LiquidCrystal lcd( 2, 3, 4, 5, 6, 7, 8); //აჩვენეთ pinout FPS_GT511C3 fps (10, 11); //RX, TX ლოგიკური isFinger = false; //true თუ fps ბიბლიოთეკა აღმოაჩენს თითს სკანერზე //გამომავალი ქინძისთავები const int buzzerPin = 13; const int backlightPin = 9; const int attinyPin = 12; const String idNames = ("self", "Bro", "Ryan", "Mom", "Dad", "Auntie", "Grandma", "Zeide", "Person", "person", "Thumb"); void setup())( //გამოსვლების დაყენება pinMode(buzzerPin, OUTPUT); pinMode(backlightPin, OUTPUT); pinMode(attinyPin, OUTPUT); //გამართვისთვის //Serial.begin(9600); fps.UseSerialDebug = false; / / ხდება ჭეშმარიტი fps გამართვისთვის სერიული პორტით // ბიბლიოთეკების ინიციალიზაცია lcd.begin(16,2); LCD უკანა განათება fps.Open();<30; i++){ tone(buzzerPin, 50+10*i, 30); delay(30); } tone(buzzerPin, 350); //вывод стартового сообщения lcd.print("Put your finger "); //команда вывода на экран lcd.setCursor(0, 1); //устанавливаем курсор на нулевую колонку первой строки lcd.print(" on the scanner "); delay(150); noTone(buzzerPin); //останавливаем стартовый звук } void loop(){ //сканируем и распознаём отпечаток, когда приложен палец waitForFinger(); lcd.clear(); //очищаем экран и устанавливаем курсов в положение 0,0 fps.CaptureFinger(false); //захватываем отпечаток для идентификации int id = fps.Identify1_N(); //идентифицируем отпечаток и сохраняем id if(id <= 10){ lcd.print(" Access granted "); //сообщение об успехе lcd.setCursor(0,1); //выводим на экран имя когда дверь открывается String message = " Hey " + idNames + "!"; lcd.print(message); tone(buzzerPin, 262, 1000); delay(1500); //отправляем сигнал для открытия двери digitalWrite(attinyPin, HIGH); //первый импульс синхронизирует задержку (10ms) delay(5); digitalWrite(attinyPin, LOW); delay(3); digitalWrite(attinyPin, HIGH); //следующие два - открывают дверь delay(15); digitalWrite(attinyPin, LOW); delay(5); digitalWrite(attinyPin, HIGH); delay(10); digitalWrite(attinyPin, LOW); delay(1000); lcd.clear(); lcd.print("Don"t forget to "); lcd.setCursor(0,1); lcd.print(" shut me off! "); delay(2000); waitForFinger(); //нажмите чтобы продолжить запись while(true){ //сохраняет новый отпечаток //выводит сообщение на экран lcd.clear(); lcd.print(centerText("So you want to")); lcd.setCursor(0,1); lcd.print(centerText("scan a new one?")); delay(2000); //Скопировано и слегка модифицировано из примера регистрации данных: int enrollid = 11; //выбираете какой id переписать\создать //отпустите палец, когда хотите записать id/имя, напечатанное на экране waitForFinger(); //ждёт, когда будет нажат fps while(enrollid==11){ for (int i = 1; i1){ lcd.print(i); enrollid = i-1; break; } } } //предупреждение, если в данном слоте уже есть данные if(fps.CheckEnrolled(enrollid)){ lcd.clear(); lcd.print(" Warning! ID #"); lcd.print(enrollid); lcd.setCursor(0,1); lcd.print(" has data. OK? "); delay(2500); waitForFinger(); //ждёт, когда будет нажат fps fps.DeleteID(enrollid); //удаляет данные delay(100); } //Enroll fps.EnrollStart(enrollid); lcd.clear(); lcd.print("Place finger to "); lcd.setCursor(0,1); lcd.print("enroll #"); lcd.print(enrollid); //выводит id, который был добавлен waitForFinger(); //ждёт, когда будет нажат fps //захватывает отпечаток и сохраняет его в память трижды для точности данных bool bret = fps.CaptureFinger(true); //картинка высокого качества для записи int iret = 0; //в случае ошибки if (bret != false){ //первая регистрация lcd.clear(); lcd.print(" Remove finger "); fps.Enroll1(); while(fps.IsPressFinger() == true) delay(100); //ждёт пока уберут палец lcd.clear(); lcd.print(" Press again "); waitForFinger(); //ждёт, когда будет нажат fps bret = fps.CaptureFinger(true); if (bret != false){ //вторая регистрация lcd.clear(); lcd.print(" Remove finger "); fps.Enroll2(); while(fps.IsPressFinger() == true) delay(100); lcd.clear(); lcd.print("Press yet again "); waitForFinger(); bret = fps.CaptureFinger(true); if (bret != false){ //третья регистрация iret = fps.Enroll3(); if (iret == 0){ //проверяет, были ли какие-нибудь ошибки lcd.clear(); lcd.print(" Success! "); delay(2000); beep(); //выключает Ардуино } else{ //запускает этот код в случае любой ошибки lcd.clear(); lcd.print("Fail. Try again "); delay(1000); } } lcd.clear(); lcd.print(" Failed 3rd "); //ошибка на третьей записи delay(1000); } lcd.clear(); lcd.print(" Failed 2nd "); //ошибка на второй записи delay(1000); } lcd.clear(); lcd.print(" Failed 1st "); //ошибка на первой записи delay(1000); } } else{ lcd.print("Fingerprint is"); //если отпечаток не распознан lcd.setCursor(0,1); lcd.print(" unverified "); delay(2000); lcd.clear(); lcd.print("Please try again"); lcd.setCursor(0,1); lcd.print("Use your pointer"); //pointer - указательный палец (можете использовать любой и заменить это слово) delay(500); } delay(250); } void beep(){ //издаёт звуки, чтобы кто-нибудь закрыл кейс lcd.clear(); lcd.print("Please close the"); lcd.setCursor(0,1); lcd.print(" case! "); for(int i=0;i=80 && !fps.IsPressFinger()){ beep(); } } timer = 0; //обнуляет таймер как только функция завершится } String centerText(String s) { //центрует текст на дисплее, чтобы он лучше смотрелся while(16-s.length()>fps.SetLED(true); //LED fps //ხმის ჩატვირთვა for(int i=0; i

1)( //თუ ტექსტს სჭირდება ცენტრირება s = " " + s + " "; // თანაბრად ამატებს სივრცეებს ​​ორივე მხარეს ) დაბრუნების s; ) ფაილები

მარტივი ბიომეტრიული უსაფრთხოების სისტემის შესაქმნელად, რათა დავიცვათ თქვენი მანქანა არასანქცირებული წვდომისგან, დაგვჭირდება თითის ანაბეჭდის სენსორი და Arduino მიკროკონტროლერი. ეს პროექტი იყენებს Adafruit სასწავლო მასალას. გამეორების გასაადვილებლად გამოიყენება ამ მასალის სრული პროგრამის კოდი, მცირე ცვლილებებით.

იმის გამო, რომ თითოეულ მანქანას აქვს გაშვების კონფიგურაციის განსხვავებული სისტემა, თქვენ უნდა გაიაროთ კონსულტაცია ელექტრიკოსთან მანქანის ელექტრული სისტემის შესახებ ან გადახედოთ გაყვანილობის დიაგრამას გაშვების სისტემის შეცვლამდე.

გთხოვთ გაითვალისწინოთ, რომ თითის ანაბეჭდის სენსორი არ იწყებს ძრავას. ის უბრალოდ ააქტიურებს და გამორთავს დამწყებ რელეს, რომელიც კრძალავს ან აძლევს ძრავის გაშვებას.

ამ პროექტში ქურდობის საწინააღმდეგო მოწყობილობა დამონტაჟებულია 2-კარიან Mitsubishi Lancer 2000 კუპეზე.

ნაბიჯი 1: გამოყენებული კომპონენტები

ნაბიჯი 4: ჩატვირთეთ ძირითადი პროგრამა

შეაერთეთ თითის ანაბეჭდის სენსორი, როგორც ნაჩვენებია დიაგრამაზე და ჩატვირთეთ მთავარი პროგრამა. შეაერთეთ LED და რეზისტორი პინ 12-ზე სწორი მუშაობის მონიტორინგისთვის.

პროგრამა მუშაობს Adafruit Fingerprint სასწავლო მასალის პრინციპით. თუმცა, მე ოდნავ შევცვალე კოდი და დავამატე ტაიმერი, რათა გამორთო სენსორი 10 წამის შემდეგ, რათა თავიდან ავიცილოთ ყურადღება სენსორის მოციმციმე LED-ისგან.

ნაბიჯი 5: შეკრება ნაწილი 1

ამოიღეთ ხრახნები დაფის ქვეშ. გაათავისუფლეთ კაპოტის გამოშვების ბერკეტი. ამოიღეთ დაფის ქვედა ნაწილი. მოათავსეთ სენსორი თავისუფალ სივრცეში.

ნაბიჯი 6: შეკრება, ნაწილი 2

გაზომეთ საჭირო მანძილი და ამოიღეთ მცირე ფართობი სენსორის უსაფრთხოდ დასაყენებლად.

ნაბიჯი 7: შეკრება, ნაწილი 3

უმჯობესია დააინსტალიროთ Arduino Uno დაფა თითის ანაბეჭდის სენსორის უკან. სავარძელი ოდნავ გავამკაცრე, რომ Arduino Uno-ს დაფა სწორ პოზიციაში დამდგარიყო.


ასეთი პროექტის შესაქმნელად ავტორს მოუწია თავისი მანქანის სასტარტო სისტემის შეცვლა. ძირითადი კავშირი არის IG დირიჟორი ანთების გადამრთველიდან, რომლის მეშვეობითაც მიწოდების ძაბვა მიეწოდება ძაბვის რეგულატორს, შემდეგ კი თავად Arduino-ს, რომ ჩართოს, ასევე ჩართოს თითის სკანირების სენსორი. თუ თითის სკანირება წარმატებულია, სისტემა ააქტიურებს სარელეო ერთეულს და ის აკონტროლებს დამწყებ რელეს. ახლა თქვენ შეგიძლიათ ჩართოთ მანქანა. სენსორი მუშაობს 10 წამის განმავლობაში და მისი გადატვირთვა შესაძლებელია ანთების დაწყების ციკლის განმეორებით. თუ გამოყოფილი დროის განმავლობაში სენსორი არ აღმოაჩენს თითის ანაბეჭდს ან ის არ ემთხვევა მითითებულს, მაშინ გაშვების სისტემა გამოირთვება და ძრავა არ ჩაირთვება.

ვინაიდან თითოეულ მანქანას აქვს საკუთარი დაწყების კონფიგურაციის სისტემა, აუცილებელია ძრავის გაშვების სისტემის შეცვლამდე გადახედოთ ელექტრო დიაგრამას.

ეს სტატია აღწერს, თუ როგორ დააკავშიროთ ქურდობის საწინააღმდეგო მოწყობილობა 2-კარიანი Mitsubishi Lancer 2000 კუპესთან.

მასალები:
- არდუინო უნო.
- თითის ანაბეჭდის სენსორი.
- ელექტრომომარაგება.
- სარელეო ერთეული.
- NPN ტრანზისტორი BC547B
- რეზისტორი 1 kOhm










კავშირის დიაგრამა:
წრე ოდნავ შეცვლილია გამოყენებული კომპონენტების მიხედვით. გახსოვდეთ, რომ ის მოქმედებს მხოლოდ ამ მანქანის მოდელისთვის.

ნაბიჯი 1 პროგრამული უზრუნველყოფის კომპონენტების მომზადება:
Arduino IDE-ში ბიბლიოთეკა იტვირთება და ემატება.
ფაილი blank.ino ბიბლიოთეკიდან იტვირთება Arduino-ში, რომელიც იქნება ინტერფეისი სენსორსა და მიკროკონტროლერს შორის.
პროგრამა დაინსტალირებულია და სენსორი უკავშირდება Arduino-ს, როგორც ეს ნაჩვენებია დიაგრამაზე. რის შემდეგაც თითის ანაბეჭდი იტვირთება დაინსტალირებული პროგრამის მეშვეობით.


ახლა სენსორი დაკავშირებულია, როგორც ნაჩვენებია შემდეგ დიაგრამაში. რის შემდეგაც ავტორი აგრძელებს ძირითადი პროგრამის ჩამოტვირთვას. LED რეზისტორთან დაკავშირებულია პინ 12-თან.

პროგრამა იმუშავებს ძირითადად Adafruit Fingerprint სასწავლო მასალაზე. ერთადერთი, რაც დაემატა პროგრამის კოდს, არის სენსორის გამორთვის ტაიმერი 10 წამის განმავლობაში. შეგიძლიათ ჩამოტვირთოთ კოდი სტატიის ქვემოთ.

ნაბიჯი 3 შეკრება:
ნაწილი 1:

პირველი, გახსენით ხრახნები დაფის ქვეშ. პანელის ქვედა ნაწილი ამოღებულია და სენსორი შეიძლება განთავსდეს თავისუფალ სივრცეში.



ნაწილი 2:
სენსორისთვის არჩეულ ადგილას, ზონა ამოჭრილია მისი საიმედო ინსტალაციისთვის.





ნაწილი 3:
Arduino დაფა დამონტაჟებულია თითის ანაბეჭდის სენსორის უკან. Arduino-ს დაყენების ადგილი ოდნავ გამკაცრდა, რათა დაფამ სწორი პოზიცია დაიკავოს.



ნაწილი 4:
რეგულირებადი ელექტრომომარაგება დამონტაჟებულია დაფის უკან მძღოლის მხარეს.

ნაწილი 5:
დანარჩენ აღჭურვილობის კომპონენტები დაკავშირებულია სტატიის დასაწყისში სქემის მიხედვით.







ნაბიჯი 4 ინსტალაცია:
საჭირო სადენები დაკავშირებულია და მოწყობილობა დამონტაჟებულია დაფის ქვეშ. ავტორი დარწმუნდება, რომ მოკლე ჩართვა არ არის.