RFID Lock DIY

RFID Lock DIY

Settembre 29, 2020 0 Di IoTLife

RFID Lock o “serratura RFID” è un sistema di serratura smart, sempre più utilizzato, poiché comodo e sicuro.

Recentemente, anche grossi marchi di mobili per casa ed ufficio, hanno iniziato a produrne con l’integrazione di queste serrature.

Il sistema RFID è composto da due parti fondamentali, il “Lettore” ed i “Tag“, come quelli riportati qui sopra.

La differenza, tra i due modelli di Tag, è esclusivamente relativa alla comodità personale, per via del loro aspetto.

Quando si avvicina il Tag al Lettore, quest’ultimo ne consulta i dati memorizzati ed agisce di conseguenza.

Si tratta di una soluzione adottata anche nelle Smart House, sostituendo la chiave di casa con un Tag.

RFID Lock

Disclaimer

Il progetto proposto è relativamente semplice, ma prevede di lavorare tensioni elettriche. Richiesto anche saldatore a stagno e relativo materiale.
Non procedere se non si ha esperienza.

Perché RFID Lock DIY?

Chiunque si interessi di domotica, è consapevole di quanto possano essere elevati i costi di determinati prodotti.

Alcuni preferiscono affidarsi interamente a pacchetti pronti all’uso, altri tentano soluzioni differenti, come il Do-It-Yourself o Fai-Da-Te.

Si può sfruttare questo metodo per valutare la sua funzionalità ed in caso poi sostituirla con un prodotto commerciale con garanzia ed assistenza.

Arduino Uno R3

Arduino è molto conosciuto per chi realizza questo tipo di progetti ed è consigliato per la sua facilità di utilizzo.

Ci sono molte versioni, le quali differiscono per dimensioni, capacità e potenza, ma la più famosa è Arduino Uno R3.

Associabile con diversi strumenti esterni, in questo caso verrà collegato al sensore RFID RC522.

Tramite una componente che ospita un Relè, si controlla un solenoide, per eseguire l’apertura della serratura.

A scelta personale, è possibile inserire anche LED e Buzzer per avere un riscontro della lettura.

Ci sono due modi per collegare questi dispositivi ad Arduino:
– Connessione diretta
– Connessione Dupont

In entrambi i casi sarà necessario l’utilizzo di un saldatore a stagno.

Nel primo caso è possibile collegare i cavi direttamente ai dispositivi, rendendo la comunicazione con Arduino più stabile e sicura.

Questa prima opzione lo rende più definitivo, dovendo ricorrere di nuovo al saldatore, in caso ci fosse il bisogno di intervenire.

Riguardo alla seconda opzione, le varie componenti si possono staccare ed attaccare facilmente, ma bisogna prima saldare i pin di connessione.

In questo caso diventa estremamente facile sostituire una o più parti, ma nasce anche il rischio che un cavo si stacchi, rendendo impossibile l’apertura.

RFID Lock: schema elettrico

RFID Lock
credits to viralsciencecreativity.com

Nello schema è possibile vedere come collegare tutte le componenti, compresi degli eventuali LED ed un Buzzer, in modo da avere un riscontro.

Non sono richieste componenti elettroniche particolari, come condensatori o resistenze, rendendo più facile la realizzazione.

Quando tutti i cavi sono collegati, rimane solo da inserire il solenoide nel Relè, collegare l’alimentazione e caricare il programma dentro Arduino.

Nonostante Arduino possa essere alimentato da USB, una volta installato è consigliabile alimentarlo tramite il connettore Barrel Jack.

Il Codice

Prima di tutto, scaricare la Libreria RFID per Arduino da GitHub.

Collegare Arduino al computer e tramite la GUI, caricare lo Sketch seguente.

#include <SPI.h>
#include <MFRC522.h>
 
#define SS_PIN 10
#define RST_PIN 9
#define LED_G 5 //define green 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_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(RELAY, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  digitalWrite(RELAY, HIGH);
  Serial.println("Put your card to the reader...");
  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) == "XX XX XX XX") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(500);
    digitalWrite(RELAY, LOW);
    digitalWrite(LED_G, HIGH);
    delay(ACCESS_DELAY);
    digitalWrite(RELAY, HIGH);
    digitalWrite(LED_G, LOW);
  }
 
 else   {
    Serial.println(" Access denied");
    digitalWrite(LED_R, HIGH);
    tone(BUZZER, 300);
    delay(DENIED_DELAY);
    digitalWrite(LED_R, LOW);
    noTone(BUZZER);
  }
}

Arduino ora è programmato per gestire le componenti della RFID Lock, ma non è ancora in grado di svolgere il suo compito, rifiutando qualsiasi Tag.

Per risolvere questo particolare, bisogna aprire nella GUI il Serial Monitor, in modo da passare davanti al lettore il Tag e conoscere il suo codice UID.

A questo punto, è possibile copiare il suo UID ed inserirlo nel codice del programma.

Scorrendo il testo, infatti, è possibile trovare la seguente riga:

if (content.substring(1) == "XX XX XX XX")

Sostituire le “XX” con il codice UID, rispettando gli spazi, in modo da ottenere un risultato simile a questo:

if (content.substring(1) == "D5 A8 43 87")

Salvare e caricare nuovamente lo Sketch dentro ad Arduino.

Da ora in poi, il Tag con il codice UID corrispondente a quello inserito nello Sketch, sarà l’unico a poter aprire la RFID Lock

Nel video di seguito è possibile vedere tutti i passaggi ed il funzionamento.

Come usarlo

Una serratura RFID è sicuramente divertente da costruire, ma quale uso se ne può fare?

Può essere integrata praticamente in ogni cosa che abbia la possibilità di ospitarla, come un cassetto, una porta o lo sportello di un mobile.

Cercando di occultare la scheda RC522, per motivi estetici, è importante non posizionarla dietro a pannelli che ne vadano ad impedire il funzionamento.

In caso di installazione all’interno di mobili o cassetti, valutare come gestire l’alimentazione.

Per ulteriori informazioni su Arduino, clicca qui.

Per altri articoli, torna a IoTLife.