ID karšu identifikācijas sistēma


Lai ierobežotu lietotāju piekļuvi, piemēram, lai piekļūtu kādai telpai, ikdienā bieži tiek izmantotas dažādas identifikācijas sistēmas, tāpēc šoreiz autors izveidojis ID karšu identifikācijas sistēmu, izmantojot Arduino Uno, kura atpazīst īsto identifikācijas kodu no citiem. 

Sistēmas darbības princips ir balstīts uz RFID (radio-frequency identification) jeb radiofrekvenču identifikācijas, kur tiek izmantoti RFID retranslatori (signālu uztvērēji, kas automātiski atbild uz saņemto signālu), kur katram no tiem ir savs kods, lai varētu identificēt dažādus lietotājus. Ja tiek izmantoti pasīvie retranslatori (tags), tad tiem nav sava elektrobarošanas nodrošinājuma, jo tie izmanto elektromagnētiskajā laukā inducēto enerģiju, kad tiek novietoti tuvu lasītāja (raiduztvērēja) antenai.

RFID karšu lasītājs, kad pie tā tiek novietota RFID karte, nosūta saņemto informāciju mikrokontrolierim, kurš tālāk veic saņemto datu apstrādi, lai noteiktu, vai ID karte atbilst kādam no datu bāzē esošajiem lietotājiem, kur tālāk uz šķidro kristālu displeja tiek izvadīta atbilstoša informācija. Gaismas diode tiek izmantota indikācijai, lai informētu lietotāju, kad tiek vai netiek atļauta piekļuve.


1.1.att. ID karšu identifikācijas sistēma, izmantojot Arduino Uno





#include <SPI.h>
#include <RFID.h>
#include <LiquidCrystal.h>
#define SDA_DIO 10
#define RST_DIO A0
RFID RC522(SDA_DIO, RST_DIO);

int Peteris_B[5]  = {103,120, 99, 67, 63}; 
int cnt=0;
int ID=A3;

const int rs = A5, rw=A2, en = A1, d4 = 6, d5 = 7, d6 = 8, d7 = 9;
LiquidCrystal lcd(rs,rw,en, d4, d5, d6, d7);



void setup(){

   lcd.begin(16, 2);
   pinMode(ID, OUTPUT);
   Serial.begin(9600);
   SPI.begin();
   RC522.init();
   Serial.println("Uzradi ID karti!");
   delay(1000);
   lcd.setCursor(0,0);
   lcd.print("Uzradi ID karti!");
   delay(1000);
   lcd.clear();

}

void loop(){


  lcd.clear();
  lcd.print("Gaida ID karti");
  delay(500);
  lcd.clear();

  if (RC522.isCard()){
   
    RC522.readCardSerial();

    Serial.println("ID numurs decimala forma:");
    for(int i=0;i<5;i++){
     
      Serial.print(RC522.serNum[i],DEC);
      if (RC522.serNum[i]==Peteris_B[i]){
        cnt++;
      }
      else{
        cnt=cnt;
      }
    }
   
    Serial.println();
    Serial.println("ID numurs heksadecimala forma:");
    for(int i=0;i<5;i++){
       
        Serial.print(RC522.serNum[i],HEX);
    }
    Serial.println();



   
    if(cnt==5){
     
      digitalWrite(ID, HIGH);
      lcd.setCursor(0,0);
      lcd.clear();
      lcd.print("Peteris Bitans");
      cnt=0;
      delay(500);
      digitalWrite(ID, LOW);
   }

   else{
      digitalWrite(ID, LOW);
      lcd.setCursor(0,0);
      lcd.clear();
      lcd.print("Nederigs ID!");
   }

  }
 
  delay(500);
 
}

UZ SĀKUMU