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.