Home Arduino Apriporta con tessera magnetica – Sensore RFID

Apriporta con tessera magnetica – Sensore RFID

650

Apriporta – Sensore RFID

con Federico De Vincenti

Difficoltà: facile

 

Guarda il mio video sull’Apriporta che si trova in fondo al post per saperne di più sul SENSORE!

 

il progetto:

Oggi voglio fare con voi un’apriporta con tessera magnetica cioè un sistema che apre la porta di casa avvicinando una tessera magnetica. Se non ho la tessera la porta non si apre. Tutto questo utilizzando il nostro fedele Arduino ed un sensore rfid.

 

Che cosa serve per fare il progetto?

  1. Arduino Uno R3
  2. kit sensore rfid (tessera magnetica + sensore)
  3. Breadboard
  4. fili jumper
  5. Servomotore

 

Una volta che avete tutti i componenti possiamo passare al circuito!

Il circuito

Untitled-Sketch_bb-1-320x280 Apriporta con tessera magnetica - Sensore RFID

 

(io ho utilizzato un servomotore per bloccare/sbloccare la porta)

 

Il programma

Copiate il programma sull’IDE e caricatelo sul vostro Arduino:

 

#include <MFRC522.h> // libreria per utilizzare il sensore RFID
#include <Servo.h> // libreria per utilizzare il Servo
MFRC522 rfid(10, 9); //creo un oggetto chiamato rfid i cui pin SDA e RST sono collegati ad Arduino
Servo mioservo; // creo una variabile per utilizzare il Servo
int val; // gradi che il Servo dovrà fare
void setup(){
Serial.begin(9600); // per utilizzare il monitor seriale
SPI.begin(); // inizializzo la comunicazione SPI
rfid.PCD_Init();// inizializzo l’oggetto rfid
mioservo.attach(8);// pin a cui ho collegato il Servo
mioservo.write(0);
}
void loop(){
if(rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()){ // se una tessera si è avvicinata al
//sensore ed è possibile leggere l’ID allora…
String uid = getUID(); // creo una variabile uid che è uguale all’ ID letto (questo è possibile grazie alla
//funzione getUID che ho richiamato)
Serial.println(“RFID ID: ” + uid); // nel monitor seriale scrivo l’ID letto

delay(10); // aspetto 10 millisecondi
if(uid == “c6d94ca5” || “4c048559”) // se l’ID è uguale a c6d9… o 4c04… allora…. (se i vostri ID sono
//diversi modificate questa riga di codice mettendo i vostri)
{
for(val = 0; val < 90; val++) // fai girare il Servo di 90 gradi
{

mioservo.write(val);
delay(10);
}
delay(5000); // aspetta 5 sec
for(val=89;val >-1; val–) // fai tornare il Servo nella posizione iniziale
{
mioservo.write(val);
delay(10);
}

}
}
}
String getUID(){ // creo una funzione che permette ad Arduino di leggere l’ID ricevuto dal sensore
String uid = “”; // all’inizio l’ID è vuoto
for(int i = 0; i < rfid.uid.size; i++){ // ciclo for
uid += rfid.uid.uidByte[i] < 0x10 ? “0” : “”; // qui si concatenano tutti i byte dell’ID
uid += String(rfid.uid.uidByte[i], HEX);
}
rfid.PICC_HaltA(); // termino la comunicazione con la tessera
return uid; // riporta il valore dell’ID
}

 

Una volta che avete caricato il programma, aprite il monitor seriale e passate la tessera vicino al sensore, vi comparirà un codice sul monitor seriale, copiate quel codice e mettetelo al posto del mio. Parte del codice dove mettere il codice:

if(uid == “c6d94ca5” || “4c048559”)  al posto di c6d9… e 4c0… mettete i vostri codici (io ne ho 2 perchè oltre alla tessera magnetica ho utilizzato anche una “chiave” magnetica che ha un codice diverso).

 

Qui sotto trovi il mio video:

Seguimi anche su Youtube, canale: Federico De Vincenti

oppure vai alla sezione Arduino

favicon Apriporta con tessera magnetica - Sensore RFID
Load More Related Articles
Load More By Federico De Vincenti
Load More In Arduino

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.