Controle de Acesso via Cartão RFID - Inspirações
Materiais necessários:
Arduino UNO;
Módulo Relay;
Solenoid lock;
LED;
Buzzer;
BreadBoard;
Jumpers.
Video de base:
https://www.youtube.com/watch?v=nAcTO1LELN0
Site de base:
https://www.viralsciencecreativity.com/post/arduino-rfid-solenoid-lock
Outra alternativa:
https://www.youtube.com/watch?v=ZIozXRrKaHg
Imagem do protótipo:
Código base:
#include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 9 #define LED_Y 5 //define yellow LED pin #define LED_R 4 //define red LED #define RELAY 3 //relay pin #define BUZZER 2 //buzzer pin #define ACCESS_DELAY 2000 #define DENIED_DELAY 1000 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. void setup() { Serial.begin(9600); // Initiate a serial communication SPI.begin(); // Initiate SPI bus mfrc522.PCD_Init(); // Initiate MFRC522 pinMode(LED_Y, OUTPUT); pinMode(LED_R, OUTPUT); pinMode(RELAY, OUTPUT); pinMode(BUZZER, OUTPUT); noTone(BUZZER); digitalWrite(RELAY, LOW); Serial.println("Aproxime seu cartão..."); Serial.println(); } void loop() { // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } //Show UID on serial monitor 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) == "80 CF F5 2B") //change here the UID of the card/cards that you want to give access { Serial.println("Autorizado meu parça ;)"); Serial.println(); delay(500); digitalWrite(RELAY, HIGH); digitalWrite(LED_Y, HIGH); delay(ACCESS_DELAY); digitalWrite(RELAY, LOW); digitalWrite(LED_Y, LOW); } else { Serial.println("Acesso negado, tente novamente!!!"); digitalWrite(LED_R, HIGH); tone(BUZZER, 3000); delay(500); digitalWrite(LED_R, LOW); noTone(BUZZER); } }
Comentários
Postar um comentário