-Daca cartela este corecta se transmite un semnal si se actioneaza stepper motor-ul, se activeaza ledul a carui culoare indica veridicitatea cartelei, dar si un ecran LCD unde putem citi actiunile aferente, si bine-nteles un buzzer ca sa avem si un feedback audio.
-Daca cartela este incorecta, stepper motor-ul nu se mai activeaza, se activeaza ledul a carui culoare ne indica faptul ca cartela nu este buna, vom vizualiza pe ecarnul LCD un mesaj aferent situatiei in care ne aflam, iar buzzer ul ne va veni din nou in ajutor cu un feddback audio.
PS: Schema circuitului este putin modifcata. Am inlocuit display-ul normal cu unul cu modul I2C si am scos potentiometru. Nu am realizat alta schema deoarece in TinckerCad nu am gasit un modul RFID.
* 1x Kit RFID RC522
* 1x Arduino UNO r3
* 1x Stepper motor
* 1x Buzzer
* 2x Led
* 1x 16×2 LCD Display with i2c Module
* 2x Breadboard
* Wires
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); delay(4); mfrc522.PCD_DumpVersionToSerial(); Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void loop() { if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }
Codul intregului sistem de securitate:
#include <SPI.h> #include <MFRC522.h> #include <Servo.h> #include <LiquidCrystal_I2C.h> #define SS_PIN 10 #define RST_PIN 9 #define LED_G 5 // define green LED #define LED_R 4 // define red LED #define BUZZER 2 // buzzer pin MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance Servo myServo; // define servo name LiquidCrystal_I2C lcd (0x27, 16, 2); // define lcd void setup() { Serial.begin(9600); SPI.begin(); lcd.init(); lcd.clear(); lcd.backlight(); mfrc522.PCD_Init(); myServo.attach(3); myServo.write(0); pinMode(LED_G, OUTPUT); pinMode(LED_R, OUTPUT); pinMode(BUZZER, OUTPUT); noTone(BUZZER); Serial.println("Put your card to the reader..."); } void loop() { lcd.setCursor(0, 0); lcd.print(" Hello sir!"); lcd.setCursor(0, 1); lcd.print(" Scan the card."); if (!mfrc522.PICC_IsNewCardPresent()) { return; } if (!mfrc522.PICC_ReadCardSerial()) { return; } Serial.print("UID tag :"); String content= ""; byte letter; for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); content.concat(String(mfrc522.uid.uidByte[i], HEX)); } Serial.println(); Serial.print("Message : "); content.toUpperCase(); if (content.substring(1) == "21 40 BB 1D") { Serial.println("Authorized access"); Serial.println(); delay(500); digitalWrite(LED_G, HIGH); lcd.clear(); lcd.setCursor(0, 0); lcd.print("*** Verified ***"); lcd.setCursor(0, 1); lcd.print(" Access granted"); tone(BUZZER, 500); delay(300); noTone(BUZZER); myServo.write(180); delay(5000); myServo.write(0); digitalWrite(LED_G, LOW); lcd.clear(); } else { Serial.println("Access denied"); digitalWrite(LED_R, HIGH); lcd.clear(); lcd.setCursor(0, 0); lcd.print(" Invalid Key!"); tone(BUZZER, 300); delay(1000); digitalWrite(LED_R, LOW); lcd.clear(); noTone(BUZZER); } }
Sistemul este actionat din exterior de 2 cartele:
-prima cu un cod UID inregistrat pe placuta(aceasta este cartela buna)
-a doua cu un cod UID care nu este inregistrat pe placuta(aceasta nu este o cartela buna)
Cand se actioneaza cartela buna se va trimite un semnal la placa arduino care la randul ei va actiona motorul pentru deschiderea usii, va aprinde led-ul verde(indicator de access permis) si se va afisa pe ecranul LCD:” Verified, Access granted ”, iar ca feedback audio avem un singur sunet scurt provocat de catre buzzer.
Cand se actioneaza cartela gresita se va trimite un semnal la placa arduino care la radul ei va aprinde led-ul rosu(indicator de access nepermis), va actiona buzzer-ul si se va afisa pe ecranul LCD:” Invalid key! ” in mod repetat la un interval de timp pana ce cartela gresita nu va mai fi in aria de detectie a modulului RFID.
In urma realizarii proiectului s-a tras concluzia urmatoare: daca se doreste securizarea unei incaperi s-au a unui spatiu de depozitare de orice marime se poate realiza fara mari eforturi un sistem de securitate unde detinatorul in cauza sa-l poate accesa cu o cartela unica printr un cod UID.
Bineinteles acestui sistem i se pot aduce upgrade-uri cum ar fi un modul bluetooth si unul wifi pentru a afla de la distanta, ce persoana doreste sa accese sistemul, printr-un simplu mesaj pe telefon.
Un alt upgrade care poate fi adus ar fi prin montarea unei camere, si de ce nu a unui microfon care sa transmita in timp real un scurt filmulet cu cine incearca sa scaneze o cartela.