Components and supplies
1
Resistor 10k ohm
1
SG90 Micro-servo motor
1
Push button (Generic)
1
RFID-RC522 module
1
RGB Diffused Common Cathode
1
Arduino UNO
Tools and machines
1
Soldering iron (generic)
Apps and platforms
1
Arduino IDE
Project description
Code
Code to this project
c_cpp
1#include <Servo.h> 2#include <MFRC522.h> 3#include <SPI.h> 4 5int SS_PIN = 10; 6int RST_PIN = 9; 7int green = 7; 8int red = 6; 9bool permission = false; 10int reading_pin = A0; 11 12int button_pin = 2; 13int button_state = 0; 14 15MFRC522 mfrc522 (SS_PIN, RST_PIN); 16Servo servo; 17 18void setup() { 19 20 pinMode(green, OUTPUT); 21 pinMode(red, OUTPUT); 22 pinMode(reading_pin, INPUT); 23 pinMode(button_pin, INPUT); 24 25 Serial.begin(9600); // Initiate serial monitor 26 mfrc522.PCD_Init(); // Initiate MFRC522 27 SPI.begin(); // Initiate SPI bus 28 servo.attach(8); //servo pin 29 servo.write(0); //servo start position 30} 31 32void loop() { 33 // Kitty bank code 34 if (permission == true) { 35 if (analogRead(reading_pin) >= 1000) { 36 servo.write(180); 37 delay(1000); 38 servo.write(0); 39 } 40 } 41 42 // Lock the kitty bank if button is pressed 43 button_state = digitalRead(button_pin); 44 if (button_state == HIGH) { 45 permission = false; 46 digitalWrite(red, HIGH); 47 delay(1000); 48 digitalWrite(red, LOW); 49 } 50 51 // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. 52 if ( ! mfrc522.PICC_IsNewCardPresent()) { 53 return; 54 } 55 56 // Select one of the cards 57 if ( ! mfrc522.PICC_ReadCardSerial()) { 58 return; 59 } 60 61 //Show UID on serial monitor 62 Serial.print("UID tag :"); 63 String content= ""; 64 byte letter; 65 for (byte i = 0; i < mfrc522.uid.size; i++) { 66 Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); 67 Serial.print(mfrc522.uid.uidByte[i], HEX); 68 content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); 69 content.concat(String(mfrc522.uid.uidByte[i], HEX)); 70 } 71 72 Serial.println(); 73 Serial.print("Message : "); 74 content.toUpperCase(); 75 if (content.substring(1) == "F7 8D 9D 35") { 76 Serial.println("Authorized access"); 77 Serial.println(); 78 79 digitalWrite(green, HIGH); 80 delay(1000); 81 digitalWrite(green, LOW); 82 83 permission = true; 84 85 delay(500); 86 } 87 88 else if (content.substring(1) != "F7 8D 9D 35") { 89 Serial.println(" Access denied"); 90 91 permission = false; 92 digitalWrite(red, HIGH); 93 delay(1000); 94 digitalWrite(red, LOW); 95 96 delay(500); 97 } 98 99} 100
Code to this project
c_cpp
1#include <Servo.h> 2#include <MFRC522.h> 3#include <SPI.h> 4 5int 6 SS_PIN = 10; 7int RST_PIN = 9; 8int green = 7; 9int red = 6; 10bool permission 11 = false; 12int reading_pin = A0; 13 14int button_pin = 2; 15int button_state 16 = 0; 17 18MFRC522 mfrc522 (SS_PIN, RST_PIN); 19Servo servo; 20 21void setup() 22 { 23 24 pinMode(green, OUTPUT); 25 pinMode(red, OUTPUT); 26 pinMode(reading_pin, 27 INPUT); 28 pinMode(button_pin, INPUT); 29 30 Serial.begin(9600); // Initiate 31 serial monitor 32 mfrc522.PCD_Init(); // Initiate MFRC522 33 SPI.begin(); 34 // Initiate SPI bus 35 servo.attach(8); //servo pin 36 servo.write(0); 37 //servo start position 38} 39 40void loop() { 41 // Kitty bank code 42 43 if (permission == true) { 44 if (analogRead(reading_pin) >= 1000) { 45 servo.write(180); 46 47 delay(1000); 48 servo.write(0); 49 } 50 } 51 52 // Lock the 53 kitty bank if button is pressed 54 button_state = digitalRead(button_pin); 55 56 if (button_state == HIGH) { 57 permission = false; 58 digitalWrite(red, 59 HIGH); 60 delay(1000); 61 digitalWrite(red, LOW); 62 } 63 64 // Reset 65 the loop if no new card present on the sensor/reader. This saves the entire process 66 when idle. 67 if ( ! mfrc522.PICC_IsNewCardPresent()) { 68 return; 69 } 70 71 72 // Select one of the cards 73 if ( ! mfrc522.PICC_ReadCardSerial()) { 74 return; 75 76 } 77 78 //Show UID on serial monitor 79 Serial.print("UID tag :"); 80 81 String content= ""; 82 byte letter; 83 for (byte i = 0; i < mfrc522.uid.size; 84 i++) { 85 Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); 86 87 Serial.print(mfrc522.uid.uidByte[i], HEX); 88 content.concat(String(mfrc522.uid.uidByte[i] 89 < 0x10 ? " 0" : " ")); 90 content.concat(String(mfrc522.uid.uidByte[i], 91 HEX)); 92 } 93 94 Serial.println(); 95 Serial.print("Message : "); 96 97 content.toUpperCase(); 98 if (content.substring(1) == "F7 8D 9D 35") { 99 100 Serial.println("Authorized access"); 101 Serial.println(); 102 103 digitalWrite(green, 104 HIGH); 105 delay(1000); 106 digitalWrite(green, LOW); 107 108 permission 109 = true; 110 111 delay(500); 112 } 113 114 else if (content.substring(1) 115 != "F7 8D 9D 35") { 116 Serial.println(" Access denied"); 117 118 permission 119 = false; 120 digitalWrite(red, HIGH); 121 delay(1000); 122 digitalWrite(red, 123 LOW); 124 125 delay(500); 126 } 127 128} 129
Downloadable files
Schematics of this project
Schematics of this project

Comments
Only logged in users can leave comments