Parcheggio automatico con Arduino: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 11:
{{Risorsa|tipo=laboratorio|materia1=Sistemi automatici per le superiori 2|avanzamento=25%}}
<!-- Non scrivere sopra questa linea -->
Questa risorsa descrive come realizzare un '''Parcheggio Intelligente''', sensorizzato che gestisce automaticamente l'organizzazione dei posti
== Presentazione del progetto ==
Il progetto volge alla realizzazione di un prototipo di parcheggio intelligente. Esso presenta all'esterno un display LCD sul quale viene presentato il numero di posti auto liberi e un visualizzatore luminoso composto da 8 LED RGB, che mostra i posti disponibili e quelli occupati. Al suo interno invece i posteggi sono forniti di sensori a infrarossi che rilevano la presenza dell'auto e la comunicano con il visualizzatore esterno. Per l'ingresso e l'uscita dal parcheggio, vengono utilizzati dei sensori RFID reader, che permettono l'apertura della sbarra (tramite un servomotore), solo con l'apposita chiave elettronica.
[[File:Led-rgb.svg|miniatura|immagine di un LED RGB con relativi pin.]]▼
== Componenti richiesti ==
{| class="wikitable"
|+Componenti utilizzati
Line 51 ⟶ 53:
=== Ingresso e uscita ===
[[File:RFID-RC522.jpg|miniatura|221x221px|
L'accesso e l'uscita dal parcheggio è possibile tramite una '''chiave magnetica''' e un '''lettore [[w:Identificazione a radiofrequenza|RFID]]'''.
La chiave (detta anche tag) contiene un codice univoco associato al veicolo che è autorizzato a entrare e uscire. Il tag è un [[w:Trasponder|trasponder]] passivo a radiofrequenza. Funziona come vera e propria chiave elettronica.
Nel nostro caso quindi, avvicinando il tag al lettore RFID, se esso riconosce il tag ID corretto, manda un impulso ad un servomotore che alza la sbarra e permette il passaggio dell'autoveicolo, abbassandosi automaticamente dopo pochi secondi. In uscita il funzionamento è analogo.▼
La lettura delle chiavi viene eseguita dal lettore RFID: un ricetrasmettitore che legge i dati contenuti nella chiave magnetica e li confronta con l'elenco dei codici autorizzati. L’antenna permette la comunicazione tra il tag e lettore.
[[File:13.56MHz RFID tags.jpg|miniatura|150x150px|RFID tags]]▼
▲
[[File:RFID_circuit.svg|centro|senza_cornice|550x550px|Schema elettrico del circuito di apertura con RFID]]
Di seguito il codice che pilota un servomotore quando si accosta una chiave elettronica al lettore RFID.<syntaxhighlight lang="arduino" line="1">
#include <Servo.h>
#include <SPI.h>
Line 67 ⟶ 74:
#define RST_PIN 9
#define chiave "14 36 E6 E9"
MFRC522 mfrc522(SS_PIN, RST_PIN);
Servo sbarra;
int posizioneSbarra = 180;
int pinSbarra = 7;
int velSbarra = 20; // Velocità con cui si movimenta la sbarra
void setup() {
Serial.begin(9600);
Serial.println("Accosta la chiave RFID");
sbarra.attach(
sbarra.write(posizioneSbarra);
SPI.begin();
Line 84 ⟶ 95:
void loop() {
// Non e' presente nessuna carta
if (!mfrc522.PICC_IsNewCardPresent()){
return;
}
// Non sta leggendo nessuna carta
if (!mfrc522.PICC_ReadCardSerial()){
return;
}
// Lettura chiave elettronica
String uid = leggiRFID();
Serial.println(uid);
// Se la chiave è corretta alza la sbarra
if(uid.substring(1) ==
Serial.println("V");
mov();
}
// Esegue un test ogni 100 ms
delay(100);
}
// Subroutine di lettura carta
String leggiRFID() {
String content = "";
byte letter;
// Scrive nella porta seriale il codice della chiave
Serial.print("UID: ");
for (byte i = 0; i < mfrc522.uid.size; i++){
Line 111 ⟶ 130:
}
// Movimentazione sbarra
void mov() {
// Alza la sbarra
delay(3000);
for (posizioneSbarra = 180; posizioneSbarra >= 90; posizioneSbarra
sbarra.write(posizioneSbarra);
delay(velSbarra);
}
// Abbassa la sbarra
delay(5000);
for (posizioneSbarra = 90; posizioneSbarra <= 180; posizioneSbarra
sbarra.write(posizioneSbarra);
delay(velSbarra);
}
}
Line 126 ⟶ 148:
=== Visualizzatore luminoso di posti liberi ===
Il progetto prevede l'utilizzo di 8 LED RGB, per comunicare quali – degli otto parcheggi – sono liberi o occupati. Il numero di cavi necessario è pari ai controlli (<math>8 \times 2 = 16</math>, relativi ai terminali rossi e verdi) oltre a uno comune per la massa.
Per il visualizzatore è stata realizzata una apposita [[Utente:Hackerino3/Parcheggio(progettazione 3D)|maschera (stampata con stampante 3D)]] nella quale sono inseriti gli 8 LED RGB, che – in base al colore rosso o verde
▲Per il visualizzatore è stata realizzata una [[Utente:Hackerino3/Parcheggio(progettazione 3D)|maschera (stampata con stampante 3D)]] nella quale sono inseriti gli 8 LED RGB, che in base al colore rosso o verde, indicano se quel posto auto è occupato o no.
=== Espansioni suggerite ===
Aggiunta di:
[[Categoria:Arduino]]
|