Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // RFID - Version: Latest
- #include <RFID.h>/*
- Sambungan Module RFID RC-522 ke Arduino
- * MOSI: Pin 11
- * MISO: Pin 12
- * SCK : Pin 13
- * SS/SDA: Pin 10
- * RST: Pin 9
- * RQ: Tidak digunakan
- */
- #include <SPI.h>
- #include <RFID.h>
- #define SS_PIN 10
- #define RST_PIN 9
- RFID rfid(SS_PIN,RST_PIN);
- const int buzzer = 7; //Passive buzzer ke Pin D7 dan GND
- const int doorLock = 8; //Driver Selenoid Door Lock/Relay input ke pin D8
- int serNum[5]; //Variable buffer Scan Card
- int cards [][5] = { {153,84,23,76,150} }; // <--Master Card
- int cards1[][5] = { {199,190,132,100,153} }; //Slave Card
- int cards2[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards3[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards4[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards5[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards6[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards7[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards8[][5] = { {0,0,0,0,0} }; //Slave Card
- int cards9[][5] = { {0,0,0,0,0} }; //Slave Card
- bool access = false;
- int alarm = 0;
- uint8_t alarmStat = 0;
- uint8_t maxError = 5;
- //Coding berikut dibuat oleh Dani untuk www.belajarduino.com
- //Semoga bermanfaat bagi yang sedang belajar RFID system
- //Support by RAJACELL - BEKASI
- //Semua module yang dibutuhkan dapat dibeli di www.tokopedia.com/rajacell
- void setup(){
- Serial.begin(9600);
- SPI.begin();
- rfid.init();
- pinMode(doorLock, OUTPUT);
- digitalWrite(doorLock, HIGH);
- tone (buzzer,1200);
- delay (2000);
- noTone (buzzer);
- }
- void loop(){
- if (alarm >= maxError){
- alarmStat = 1; }
- if (alarmStat == 0){
- if(rfid.isCard()){
- if(rfid.readCardSerial()){
- Serial.print(rfid.serNum[0]);
- Serial.print(" ");
- Serial.print(rfid.serNum[1]);
- Serial.print(" ");
- Serial.print(rfid.serNum[2]);
- Serial.print(" ");
- Serial.print(rfid.serNum[3]);
- Serial.print(" ");
- Serial.print(rfid.serNum[4]);
- Serial.println("");
- for(int x = 0; x < sizeof(cards); x++){
- for(int i = 0; i < sizeof(rfid.serNum); i++ ){
- if( (rfid.serNum[i] != cards [x][i])
- && (rfid.serNum[i] != cards2[x][i])
- && (rfid.serNum[i] != cards3[x][i])
- && (rfid.serNum[i] != cards4[x][i])
- && (rfid.serNum[i] != cards5[x][i])
- && (rfid.serNum[i] != cards6[x][i])
- && (rfid.serNum[i] != cards7[x][i])
- && (rfid.serNum[i] != cards8[x][i])
- && (rfid.serNum[i] != cards9[x][i])
- && (rfid.serNum[i] != cards1[x][i])
- ) {
- access = false;
- break;
- } else {
- access = true;
- }
- }
- if(access) break;
- }
- }
- if(access){
- digitalWrite(doorLock, LOW);
- tone (buzzer,900);
- delay(100);
- tone (buzzer,1200);
- delay(100);
- tone (buzzer,1800);
- delay(200);
- noTone(buzzer);
- delay(600);
- digitalWrite(doorLock, HIGH);
- lcd.clear();
- } else {
- alarm = alarm+1;
- Serial.println("Not allowed!");
- tone (buzzer,900);
- delay(200);
- noTone(buzzer);
- delay(200);
- tone (buzzer,900);
- delay(200);
- noTone (buzzer);
- delay(500);
- lcd.clear();
- }
- }
- rfid.halt();
- }
- else {
- Serial.println("-System LOCKED- ");
- Serial.println(" Please Wait ");
- for(int i=60; i>0; i--){
- tone (buzzer,1800);
- noTone (buzzer);
- alarmStat = 0;
- alarm = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement