Relè con tessera magnetica RIFD

Share

Ecco un esempio di codice Arduino per il controllo di un relè utilizzando una tessera magnetica RFID:

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10    // Pin di selezione Slave per il modulo RC522
#define RST_PIN 9    // Pin di reset per il modulo RC522
#define RELAY_PIN 7  // Pin di controllo del relè

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Inizializzazione del modulo RC522

void setup() {
  Serial.begin(9600);   // Inizializza la comunicazione seriale
  SPI.begin();          // Inizializza la comunicazione SPI
  mfrc522.PCD_Init();   // Inizializza il modulo RC522
  
  pinMode(RELAY_PIN, OUTPUT);  // Imposta il pin del relè come output
  digitalWrite(RELAY_PIN, HIGH);  // Inizialmente, il relè è spento
  Serial.println("In attesa di una tessera RFID...");
}

void loop() {
  // Verifica se è presente una tessera RFID
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    // Legge l'UID della tessera RFID
    String cardUID = "";
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      cardUID.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : ""));
      cardUID.concat(String(mfrc522.uid.uidByte[i], HEX));
    }
    
    // Stampa l'UID della tessera RFID
    Serial.println("UID della tessera: " + cardUID);
    
    // Verifica se il relè deve essere attivato o disattivato
    if (cardUID == "YOUR_CARD_UID") {
      digitalWrite(RELAY_PIN, LOW);  // Attiva il relè
      Serial.println("Relè attivato");
    } else {
      digitalWrite(RELAY_PIN, HIGH);  // Disattiva il relè
      Serial.println("Relè disattivato");
    }
    
    delay(2000);  // Attendere qualche secondo prima di leggere la prossima tessera
    mfrc522.PICC_HaltA();  // Ferma la comunicazione con la tessera corrente
  }
}

Assicurati di installare la libreria ‘MFRC522‘ nella tua IDE di Arduino. Puoi farlo andando su “Sketch -> Includi libreria -> Gestisci librerie” e cercando “MFRC522”, quindi selezionando e installando la libreria appropriata.

Nel codice sopra, sostituisci "YOUR_CARD_UID" con l’UID univoco della tua tessera RFID. Puoi ottenere l’UID eseguendo un programma di lettura delle tessere RFID e leggendo l’output seriale durante il test.

Il codice inizializza il modulo RC522 e il relè nel metodo ‘setup()‘. Nel loop principale ‘loop()‘, viene verificato se una tessera RFID è presente. Se viene rilevata una tessera, viene letto il suo UID e confrontato con quello specificato nel codice. A seconda della corrispondenza, il relè viene attivato o disattivato. Viene anche stampato l’UID della tessera RFID e lo stato del relè sulla seriale.