Utente:Hackerino3/Parcheggio
Questa risorsa è stata scritta dagli studenti dell'Istituto ITIS "Enrico Mattei" di Urbino, della classe 4A/EN, Filippo Marzi, Sasha Fasolo Massoli, Nicolas Mangani, Daniel Gostoli, Matteo Omiccioli nell'a.s. 2021/2022, all'interno del corso di Sistemi automatici per le superiori 2.
Per favore, prima di apportare modifiche, attendi sino alla fine dell'anno scolastico (termina il 30 giugno 2022) oppure contatta il docente di riferimento Giacomo Alessandroni nel caso venissero rilevati contenuti non in linea con le linee guida della comunità. Se leggi questo avviso ad anno scolastico concluso puoi rimuoverlo. |
Questa risorsa descrive come realizzare un Parcheggio Intelligente, sensorizzato che gestisce automaticamente l'organizzazione dei posti
Presentazione del progetto
[modifica]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.
Descrizione | Tipo | Quantità |
---|---|---|
Arduino | Mega | 1 |
Sensori a infrarossi | TCRT5000 | 8 |
LED | RGB | 8 |
Display | LCD 16X2 | 1 |
Servomotore | Tower Pro SG90 | 2 |
Lettore RFID | RC522 | 2 |
RFID tag | ISO14443-A | 1 |
Ingresso sensorizzato
[modifica]L'ingresso del parcheggio è comandato da un sensore RFID reader e da un tag. Il reader o lettore RFID è un ricetrasmettitore che ha il compito di richiedere e ricevere informazioni in risposta da ciascun tag. Il tag invece è un trasponder passivo a radiofrequenze costituito da un circuito integrato (chip), da una memoria e da un’antenna.Esso funziona come una chiave elettronica, la quale identifica univocamente un oggetto.. L’antenna permette la comunicazione tra il tag e il reader, del quale nella maggior parte dei casi è parte integrante. Nel nostro caso quindi, avvicinando il tag al lettore RFID, se esso riconosce il tag ID corretto, manda un impulso ad un motore passo-passo che alza la sbarra e permette il passaggio dell'autoveicolo, abbassandosi automaticamente dopo pochi secondi.
Codice
[modifica]#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
Servo sbarra;
int posizioneSbarra = 180;
void setup() {
Serial.begin(9600);
Serial.println("Accosta la chiave RFID");
sbarra.attach(7);
sbarra.write(posizioneSbarra);
SPI.begin();
mfrc522.PCD_Init();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
}
void loop() {
if (!mfrc522.PICC_IsNewCardPresent()){
return;
}
if (!mfrc522.PICC_ReadCardSerial()){
return;
}
String uid = leggiRFID();
Serial.println(uid);
if(uid.substring(1) == "14 36 E6 E9") {
Serial.println("V");
mov();
}
delay(100);
}
String leggiRFID() {
String content = "";
byte letter;
Serial.print("UID: ");
for (byte i = 0; i < mfrc522.uid.size; i++){
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
content.toUpperCase();
return content;
}
void mov() {
delay(3000);
for (posizioneSbarra = 180; posizioneSbarra >= 90; posizioneSbarra -= 1) { // da 180 a 90 gradi
sbarra.write(posizioneSbarra); // Modifica la posizione del servo
delay(20); // Ritardo introdotto prima di cambiare posizione
}
delay(5000);
for (posizioneSbarra = 90; posizioneSbarra <= 180; posizioneSbarra += 1) { // da 90 a 180 gradi
sbarra.write(posizioneSbarra); // Modifica la posizione del servo
delay(20); // Ritardo introdotto prima di cambiare posizione
}
}
Visualizzatore luminoso di posti liberi
[modifica]Il progetto precedente prevedeva l'utilizzo di 16 LED (uno rosso ed uno verde per ogni postazione auto), il che comportava la presenza di due cavi per LED, per un totale di 32 cavi. Utilizzando invece 8 LED RGB, nel nostro caso, il numero di cavi si riduce a 17, considerando due cavi per LED e un cavo in comune per il ground.
Espansioni suggerite
[modifica]Aggiunta di: