cavi dupont jumper ponticelli femmina-femmina,...
Post on 16-Feb-2019
216 Views
Preview:
TRANSCRIPT
Istituto Tecnico Industriale Statale Marconi di Jesi
TESINA ESAME DI MATURITÀ
Simone Barigelli
Anno: 2017-2018
Classe: 5°B
Indirizzo: informatica
“ Teca da museo “
INDICE:Pagina 1
Istituto Tecnico Industriale Statale Marconi di Jesi
1. Obiettivo2. Analisi
2.1. Funzionalità2.2. Struttura fisica
3. Fasi di lavoro4. Materiali utilizzati
4.1. Hardware5. Ambiente di sviluppo
5.1. Software5.2. Interfaccia del Software
6. Codice sviluppato7. Costi8. Problematiche9. Opzioni future da tenere in considerazione
10. Conclusione
Obbiettivo:Si vuole progettare e creare un prototipo di una teca da museo, che ospiterà al suo interno un oggetto da esporre in modo protetto, grazie a varii sistemi di protezione e anti-furto, alla clientela.
Pagina 2
Istituto Tecnico Industriale Statale Marconi di Jesi
Analisi:Funzionalità:La funzionalità della teca sarà quella di ospitare ed esporre in modo sicuro e protetto, tramite dei sensori di rivelazione un oggetto.
Dovrà prevedere queste differenti situazioni: La teca dovrà ospitare uno specifico oggetto scelto a priori, al
quale sarà associato una tessera che lo identificherà in modo univoco grazie al codice presente in un chip.
Se venisse prelevato l’oggetto dal piedistallo di appoggio (caso di furto) si attiverà il sistema di allarme composto da una sirena che emetterà dei segnali acustici e da un led rosso che lampeggerà, avvertendo il personale circostante.
Se l’oggetto “originale” venisse sostituito da un’altro oggetto che non rispecchiasse il codice associato dell’oggetto originale si attiverà il sistema di allarme.
Nel retro della teca sono presenti 3 bottoni: Premendo il bottone giallo sarà possibile far scendere dalla
parte interna e superiore del prototipo una protezione a forma di cubo che andrà a coprire l’oggetto in esposizione garantendo un sistema di sicurezza in più per la notte.
Premendo il bottone bianco sarà possibile far alzare la protezione a forma di cubo che copriva l’oggetto in esposizione non appena si vorrà far mostrare l’oggetto alla clientela.
Premendo il bottone rosso, sarà possibile disattivare l’allarme se attivo.
Pagina 3
Istituto Tecnico Industriale Statale Marconi di Jesi
Sarà possibile monitorare eventuali movimenti dell’oggetto all’interno della protezione a forma di cubo se qualcuno dovesse tentare di scassinare la protezione per rubarlo; in quel caso scatterà il sistema di allarme.
Sarà monitorata e visualizzata la temperatura e l’umidità all’interno della teca tramite un display LCD (per controllare se l’ambiente è adatto al corretto mantenimento dell’oggetto).
Struttura fisica:
Il case è composto principalmente da legno e plexiglass (parte che permetterà l’esposizione del prodotto verso l’esterno), questo per far sì che i prezzi di produzione di quest’ultimi ed in più l’acquisto dei sensori, dispositivi e dei vari materiali siano bassi e si mantengono giusti per uno specifico budget economico di 100 euro.
Le dimensioni e il peso non sono eccessivamente esagerati, per permettere una sua facile portabilità nel caso in cui si dovessero effettuare degli spostamenti tra stanze dello stesso museo.
I vari dispositivi e sensori sono collegati tramite dei cavi passanti sulla parte posteriore della teca. Per vedere i vari collegamenti è possibile rimuovere parte del case in modo facile e immediato.
Foto teca:
Pagina 4
Istituto Tecnico Industriale Statale Marconi di Jesi
Circuiteria
Pagina 5
Istituto Tecnico Industriale Statale Marconi di Jesi
Parte posteriore della teca
Pagina 6
Istituto Tecnico Industriale Statale Marconi di Jesi
Parte laterale della teca
Fasi di lavoro:Suddivisione del lavoro in fasi:
Pagina 7
Istituto Tecnico Industriale Statale Marconi di Jesi
Analisi: appena mi sono deciso sul da fare mi sono messo a pensare e a cercare in internet le varie funzionalità di una teca. Ho riscontrato varie modalità di funzionamento ed ho optato per le le più rappresentative, più facili ma interessanti da implementare per il mio progetto. Successivamente ho analizzato i possibili materiali che mi sarebbero dovuti servire per il prototipo, le loro funzionalità e i loro costi, in modo da verificare se rientravano negli obiettivi e costi previsti.
Progettazione: Dopo aver fatto una corretta analisi, ho progettato su carta il prototipo. Una volta disegnato con tutta la sua componentistica e i singoli dettagli mi sono rimboccato le maniche e ho iniziato a realizzarlo.
Realizzazione: mi sono ricavato tutto il materiale necessario per la costruzione della teca. Per quanto riguarda il case, ho consultato un falegname che mi ha realizzato i pezzi e successivamente li ho assemblati andando a dare la forma prevista alla teca. Ho tagliato dei pezzi di plexiglass e li ho usati come vetrina, in modo da poter far visualizzare l’oggetto all’interno della teca dall’esterno. Una volta creata la struttura ho controllato, uno ad uno il corretto funzionamento di
Pagina 8
Istituto Tecnico Industriale Statale Marconi di Jesi
tutti i dispositivi che sono stati utilizzati per il progetto e li ho infine distribuiti all’interno del prototipo e collegati. Una volta fatto ciò, mi sono creato il codice del funzionamento di tutte le varie funzionalità che ho descritto all’inizio della relazione.
Materiali utilizzato:Hardware:
Arduino Mega:
Pagina 9
Istituto Tecnico Industriale Statale Marconi di Jesi
Arduino è una piattaforma di prototipazione elettronica open-source che si basa su soluzioni hardware e software immediate quanto semplici da modificare.L'Arduino Mega 2560 è una scheda per microcontrollori basata su ATmega2560. Dispone di 54 pin di input / output digitali (di cui 15 utilizzabili come uscite PWM), 16 ingressi analogici, 4 UART (porte seriali hardware), un oscillatore a cristalli 16 MHz, una connessione USB, un jack di alimentazione, un'intestazione ICSP, e un pulsante di reset. Contiene tutto il necessario per supportare il microcontrollore; è sufficiente collegarlo a un computer con un cavo USB o alimentarlo con un adattatore CA-CC o una batteria per iniziare. Il Mega 2560 è un aggiornamento di Arduino Mega.
Caratteristiche:
Pagina 10
Istituto Tecnico Industriale Statale Marconi di Jesi
Display LCD1602 Module:
Pagina 11
Istituto Tecnico Industriale Statale Marconi di Jesi
Display LCD utilizzato per far visualizzare l’umidità e la temperatura all’interno della teca.
Funzione dei pin:
ULN2003 Stepper Motor Driver Board:
Pagina 12
Istituto Tecnico Industriale Statale Marconi di Jesi
Driver necessario per il funzionamento dello stepper motor. Esso permette di interfacciare uno stepper unipolare ad Arduino è utilizzare un breakout per transistor ULN2003A chip di array. L'ULN2003A contiene sette driver transistor darlington ed è un po 'come avere sette TIP120 transistor tutto in un unico pacchetto. L'ULN2003A può passare fino a 500 mA per canale e ha un internocalo di tensione di circa 1 V quando acceso. Contiene inoltre diodi a morsetto interno per dissipare i picchi di tensione quando trasmette carichi induttivi. Per controllare lo stepper, sarà necessario applicare la tensione a ciascuna bobina in una sequenza specifica.
Stepper motor 28BYJ-48 5V:
Pagina 13
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivo utilizzato per far girare la carrucola, ad esso assemblata, in senso orario ed antiorario. Questo farà sì che il filo che sostiene la protezione a forma di cubo andrà ad avvolgersi alla carrucola che, di sua volta farà scorrere tra i binaria la protezione e permetterà il nascondersi dell’oggetto esposto al suo interno o la sua esposizione a seconda delle condizioni.
E’ un motore passo-passo, cioè dispositivo elettromeccanico che converte gli impulsi elettrici in movimenti meccanici discreti. L'albero o il mandrino di un motore passo-passo ruota con incrementi di passo discreti quando impulsi di comando elettrici gli sono applicati nella sequenza corretta. La rotazione del motore sono regolate tramite questi impulsi di ingresso applicati. La sequenza degli impulsi applicati è direttamente correlata alla direzione del motore e rotazione delle aste. La velocità della rotazione degli alberi motore è direttamente correlata alla frequenza degli impulsi di
Pagina 14
Istituto Tecnico Industriale Statale Marconi di Jesi
ingresso e la lunghezza della rotazione è direttamente correlata al numero di impulsi di ingresso applicati.
Caratteristiche: Model : 28BYJ-48 Rated voltage : 5VDC Number of Phase : 4 Speed Variation Ratio : 1/64 Stride Angle : 5.625° /64 Frequency : 100Hz DC resistance : 50Ω±7%(25 ) Idle In-traction Frequency : > 600Hz Idle Out-traction Frequency : > 1000Hz In-traction Torque >34.3mN.m(120Hz) Self-positioning Torque >34.3mN.m Friction torque : 600-1200 gf.cm Pull in torque : 300 gf.cm Insulated resistance >10MΩ(500V) Insulated electricity power :600VAC/1mA/1s Insulation grade :A Rise in Temperature <40K(120Hz) Noise <35dB(120Hz,No load,10cm)
Modulo-Lettore di card RFID-RC522:
Pagina 15
Istituto Tecnico Industriale Statale Marconi di Jesi
Sensore utilizzato per rilevare la presenza dell’oggetto all’interno della teca. La tessera magnetica (tessera bianca- vedere prossimo dispositivo dell’elenco) contiene al suo interno un chip con assegnato un codice univoco. Questa tessera verrà associata ad un oggetto che renderà univoco anche quest’ultimo (oggetto originale da esporre). Il sensore RFIDS quindi rileverà la presenza o meno dell’oggetto sopra il piedistallo della teca.
Questo Card Reader RFID a 13.56 Mhz è basato sul chip MFRC522 della NXP Semiconductors che permette la lettura/scrittura di tag per l'identificazione a radio frequenza.
Caratteristiche:
Pagina 16
Istituto Tecnico Industriale Statale Marconi di Jesi
Alimentazione: 3.3V
Corrente di funzionamento:
13-26mA
Corrente in Stand-by:
10-13mA
Corrente in Sleep: <80uA
Corrente di picco: <30mA
Frequenza operativa:
13.56MHz
Card supportate: S50, S70 Ultralight, Pro, DESFire
Temperatura operativa:
-20/80° C
Temperatura di stoccaggio:
-40/85° C
Umidità relativa: 5%-95%
Interfaccia SPI
Velocità di trasferimento dati:
max 10Mbit/s
Dimensioni: 40 x 60 mm
Peso: 20,5g
IC card S50 standard (formato tessera):
Pagina 17
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivo utilizzato per rendere univoco l’oggetto da esporre all’interno della teca.
Tessera operante a 13,56MHz, ogni tag è fornito preprogrammato con un codice univoco, realizzato in ABS con capacità di memoria: 1024 Kbit
Card S50 dalla particolare forma a portachiavi:
Dispositivo utilizzato per verificare la corretta lettura di un codice che non è stato stabilito come codice assegnato all’oggetto da esporre all’interno della teca(caso di furto dell’oggetto originale e scambio con un falso).
Pagina 18
Istituto Tecnico Industriale Statale Marconi di Jesi
Porta chiave operante a 13,56MHz, ogni tag è fornito preprogrammato con un codice univoco.
DHT-11 (Temperature and Humidity Sensor):
Sensore utilizzato per acquisire la temperatura e l‘umidità all’interno della teca, per poi far visualizzare questi dati nel display LCD presente nel piedistallo.
Il sensore DHT11 è un sensore di temperatura e umidità con uscita dei dati in formato digitale. Il sensore utilizza una tecnica digitale esclusiva che unita alla tecnologia di rilevamento dell'umidità, ne garantisce l'affidabilità e la
Pagina 19
Istituto Tecnico Industriale Statale Marconi di Jesi
stabilità. I suoi elementi sensibili sono connessi con un processore 8-bit single-chip. Ogni sensore di questo modello è compensato in temperatura e calibrato in un'apposita camera di calibrazione che determina in modo preciso il valore di calibrazione il cui coefficiente viene salvato all'interno della memoria OTP. La sua distanza di trasmissione arriva fino a 20 m.
Caratteristiche:
Modello DHT11
Alimentazione 3-5.5V DC
Segnale di uscita digitale del segnale tramite single-bus
Elemento sensibile Resistenza in Polimero
Campo di misura umidità
20-90% di umidità relativa, temperatura di 0-50 gradi Celsius
Precisione umidità + -4% RH (Max + -5% di umidità relativa), temperatura +-2.0Celsius
Risoluzione o la sensibilità
umidità 1% di umidità relativa, temperatura 0.1Celsius
Pagina 20
Istituto Tecnico Industriale Statale Marconi di Jesi
Ripetibilità umidità
+ -1% di umidità relativa temperatura +-1Celsius
Umidità isteresi + -1% RH
Stabilità a lungo termine
+ -0.5% UR / anno
Tempo di rilevazione
medio: 2s
Dimensioni 12 * 15,5 * 5,5 millimetri
Relay module:
Pagina 21
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivo utilizzato per attivare o disattivare la teca.
Il Relay può attivare o disattivare dispositivi mantenendoli isolati dal microcontrollore. Consente di controllare dispositivi ad alta potenza (fino a 10 A) tramite il relè di bordo. Il controllo del relè viene fornito tramite un'intestazione 1 x 3.
Caratteristiche: Supply Voltage-5V Control high-power devices up to 10 A with a simple high/low signal Provides isolation between the microcontroller and device being controlled Screw terminals for relay connections 3-pin servo-style header for power/signal interface Equipped with a high-current relay (10A @ 28VDC) 2xLED's that show the current state of the relay
HC-SR501 PIR Motion Sensor:
Pagina 22
Istituto Tecnico Industriale Statale Marconi di Jesi
Sensore utilizzato per rilevare dei movimenti inopportuni all’interno della protezione a forma di cubo quando andrà a coprire l’oggetto esposto.
Scheda dalle dimensioni 33x25mm e di 8g di peso. Questo modulo è un sensore a infrarossi in grado di fornire un segnale alto a 3V quando rileva un corpo caldo in movimento.
Caratteristiche:
Pagina 23
Istituto Tecnico Industriale Statale Marconi di Jesi
Tensione di alimentazione: da 4,5Vdc a 20Vdc Tensione di uscita: 0-3,3V Corrente di uscita: 10mA Angolo di visione: <140° Distanza di rilevamento: da 3 a 7 mt
10k Potentiometer:
Pagina 24
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivo utilizzato per andare a regolamentare il contrasto e luminosità del display LCD.
Un potenziometro è un resistore variabile regolabile manualmente con 3 terminali. Due terminali sono collegati ad entrambe le estremità di un elemento resistivo e il terzo terminale si collega ad un contatto scorrevole, chiamato tergicristallo, che si muove sopra l'elemento resistivo. La posizione del tergicristallo determina la tensione di uscita del potenziometro.
Caratteristiche: Type: Rotary a.k.a Radio POT Available in different resistance values like 500Ω, 1K, 2K, 5K, 10K, 22K, 47K, 50K,
100K, 220K, 470K, 500K, 1 M. Power Rating: 0.3W Maximum Input Voltage: 200Vdc Rotational Life: 2000K cycles
Active Buzzer:
Pagina 25
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivo utilizzato per emettere suoni acustici che rispecchiano quelli di un allarme.
Il buzzer ronza a una frequenza predefinita (2300 ± 300 Hz) da solo, anche quando si applica semplicemente la potenza CC costante. Sono anche in grado di produrre una certa varietà di toni applicando un segnale oscillante.
Caratteristiche:
Rated Voltage 5 V
Operating Voltage 4~8 V
Max Rated Current ≤32 mA
Min. Sound Output at 10cm
85 dB
Resonant Frequency 2300 ±300 Hz
Operating Temperature
-20°C to 45°C
Dimensions (Excluding Pins)
Height 9.16 mm
Pagina 26
Istituto Tecnico Industriale Statale Marconi di Jesi
(0.36")
Diameter 11.78 mm (0.46")
Weight 1.6 g (0.057 oz)
Button - Key cap:
I bottoni sono utilizzati per azionare il Motor Stepper o stoppare l’allarme se attivo. I key cap sono delle cover assemblabili ai bottoni.
I pulsanti sono di forma quadrata standard da 12 mm.
Resistor 220 hom e 10 Khom:
Pagina 27
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivi utilizzati destinato a opporre una specifica resistenza elettrica al passaggio della corrente elettrica.
Usb cable:
Cavo utilizzato per collegare l’arduino Mega 2560 con il PC.
830 tie-points Breadboard:
Pagina 28
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivo utilizzato per il montaggio di tutto il circuito e i dispositivi che permetteranno il funzionamento della teca.
Cavi Dupont Jumper Ponticelli femmina-femmina, Maschio - Maschio e Maschio - Femmina:
Materiale utilizzati per i collegamenti dei vari dispositivi con l’arduino MEGA e la breadboard.
Led giallo e rosso:
Pagina 29
Istituto Tecnico Industriale Statale Marconi di Jesi
Dispositivi utilizzate per verificare la presenza o meno dell’oggetto nella teca. Se attivo il led giallo, l’oggetto è presente sopra al piedistallo mentre se attivo il led rosso e lampeggia, l’oggetto non è presente più sopra al piedistallo (caso di furto).
Caratteristiche:Tensioni dirette standard di alimentazione dei diodi led:
Le colore ROSSO: 1.8 Volt
Led colore GIALLO: 1.9 Volt
Ambiente di sviluppo:
Pagina 30
Istituto Tecnico Industriale Statale Marconi di Jesi
Come ambiente di sviluppo ho scelto di utilizzare l’ Arduino Desktop IDE. Esso mi ha permesso di scrivere, compilare e trasferire il mio programma nella scheda Arduino.
Una volta scaricato ho ricominciato a prenderci mano e a capire meglio come funzionasse. Non è stato un compito particolarmente difficile dato lo svolgersi di alcune vecchie lezioni su tale argomento in classe.
Software
Per fortuna Arduino è un IDE dedicato e questo permette l’aumentare della produttività e ridurre i tempi di sviluppo. Il linguaggio di programmazione utilizzato per Arduino è il C/C++; si può parlare di entrambi i linguaggi, in quanto è possibile utilizzare o meno il supporto per le classi che il C++ mette a disposizione. Inoltre, il compilatore utilizzato è ovviamente dedicato per i microcontrollori della famiglia AVR della Atmel e fa parte di una ben definita toolchain GCC. Dispone di una libreria Wiring per gestire input/output ed è un derivato da Processing ma con alcune differenze.
Interfaccia grafica del software:
Pagina 31
Istituto Tecnico Industriale Statale Marconi di Jesi
Funzioni principali:
Le funzioni principali sono di setup() e loop() :
setup(): chiamata una sola volta, all’inizio del programma. Usata per inizializzazione delle variabili e dello stato dei pin.
loop(): è un ciclo, all’interno del quale implementare il vero e proprio programma Librerie e funzioni predefinite per accedere ai pin e impostare/leggere il valore.
Pagina 32
Istituto Tecnico Industriale Statale Marconi di Jesi
Codice sviluppato://Librerie utili per il sensore DHT e il display LCD
#include <DHT.h>
#include <LiquidCrystal.h>
//Definito pin del sensore DHT per l'Arduino Mega
#define DHTPin 45
////Librerie utile per utilizzare il sensore rfid
#include <SPI.h>
#include <RFID.h>
//Libreria utile per utilizzare lo stepper
#include <Stepper.h>
//Vengono definiti PIN di vari dispositivi per l'Arduino Mega
#define SDA_DIO 53 //Sensore RFID
#define RESET_DIO 10 //Sensore RFID
#define ledGiallo 23
#define ledRosso 25
#define rele 38
#define buzzer 22
Pagina 33
Istituto Tecnico Industriale Statale Marconi di Jesi
#define delayLedRosso 200
#define delayRead 4000
//Vengono definiti PIN dei bottoni e del driver ULN2003A per l'Arduino Mega
#define button_1 47 //bottone 1
#define button_2 49 //bottone 2
#define motorPin1 28 //pin 1 del driver dello stepper motor
#define motorPin2 30 //pin 2 del driver dello stepper motor
#define motorPin3 32 //pin 3 del driver dello stepper motor
#define motorPin4 34 //pin 4 del driver dello stepper motor
//Variabile indice
int index=0;
LiquidCrystal lcd(12, 11, 5, 4,3, 2); //Definiti pin LCD (RS, E, D4, D5, D6, D7) per Mega
DHT dht; //define DHT pin
//Variabili utilizzate per l'esecuzione dello stepper motor
int motor_Speed = 2;
//Variabili che andranno a contenere lo stato dei bottoni
int val1 = 0; //del bottone 1
Pagina 34
Istituto Tecnico Industriale Statale Marconi di Jesi
int val2 = 0; //del bottone 2
//Viene creata una istanza della RFID libreria
RFID RC522(SDA_DIO, RESET_DIO);
String codiceAutorizzato = "84CE621E36"; //codice esadecimale della scheda magneticha che deve essere riconosciuta
String codiceLetto = ""; //Variabile che conterrà il codice della tessera letta dal sensore RFID
boolean TecaAttivata = false; //Variabile che controllerà lo stato della teca (Attiva - non attiva)
//Variabile che serve per far eseguire la funzione void accendiLedRossoBuzzer()
int buzzerCounter = 0;
void setup()
dht.setup(DHTPin);
lcd.begin(16,2); //Inizializzo LCD e specifico le dimensioni
Serial.begin(9600); // Dichiaro un collegamento seriale
SPI.begin();
Pagina 35
Istituto Tecnico Industriale Statale Marconi di Jesi
//Viene inizilizzato RFID reader
RC522.init();
Serial.println("ACCESO");
//Inizializzati i pin in input ed in output a seconda delle funzionalità
pinMode(ledGiallo, OUTPUT);
pinMode(ledRosso, OUTPUT);
pinMode(rele, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(button_1, INPUT);
pinMode(button_2, INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
void loop()
Pagina 36
Istituto Tecnico Industriale Statale Marconi di Jesi
/*Alzare e abbassare protezione*/
/*Funzionamento per alzare protezione con il bottone giallo*/
val1 = digitalRead(button_1);
if (val1 == HIGH)
alzaprotezione();
else
/*Funzionamento per abbassare la protezione con il bottone bianco*/
val2 = digitalRead(button_2);
if (val2 == HIGH)
abbassaprotezione();
/*Visualizzare sul display LCD i dati raccolti dal sensore DHT*/
float temp = dht.getTemperature();
float humi = dht.getHumidity();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(temp);
Pagina 37
Istituto Tecnico Industriale Statale Marconi di Jesi
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Humi: ");
lcd.print(humi);
lcd.print(" %");
delay(2000);
/*Funzionamento sistema anti furto dell'oggetto posizionato sull'RFID*/
byte i; /* Contatore di loop contemporaneo */
// Controllo se viene letta una tessera
if (RC522.isCard())
//Stampa sull'interfaccia seriale il seguente messaggio
Serial.println("");
Serial.println("E' stato rilevato un'oggetto.");
//Viene letto il suo codice
RC522.readCardSerial();
Pagina 38
Istituto Tecnico Industriale Statale Marconi di Jesi
Serial.print("Il codice dell'oggetto è: ");
//Variabile che conterrà il codice letto
codiceLetto = "";
// Viene caricato il codice della tessera, all'interno della Stringa
for (i = 0; i <= 4; i++)
codiceLetto += String (RC522.serNum[i], HEX);
codiceLetto.toUpperCase();
//Stampa il codice letto nell'interfaccia seriale
Serial.println(codiceLetto);
//Controllo se codice letto è uguale a quello stabilito inizialmente
if (verificaCodice(codiceLetto, codiceAutorizzato))
//Controllo se la teca ha fatto la prima lettura della tessera autorizzata
if (!TecaAttivata)
//Prima lettura della tessera e attivazione dell'allarme
Serial.println("L'oggeto è l'originale!!!");
accendiLedGiallo();
Pagina 39
Istituto Tecnico Industriale Statale Marconi di Jesi
digitalWrite (rele, HIGH);
delay (1000); // Tempo relè in stato ON
digitalWrite (rele, LOW);
TecaAttivata = true;
else
spegniAllarme(); //Spengo allarme se si riappoggia la tessera originale
accendiLedGiallo(); //Riaccendo il led se si riappoggia la tessera originale
else
//Controllo che fa scattare l'allarme se la tessera originale non è posizionata più sopra al piedistallo
if (TecaAttivata)
Serial.println("ATTENZIONE!!! L'oggetto rilevato non è l'originale.");
//Spegnimeto del led giallo
spegniLedGiallo();
//Attivazione dell'allarme
accendiLedRossoBuzzer_old();
Pagina 40
Istituto Tecnico Industriale Statale Marconi di Jesi
else
if (TecaAttivata)
Serial.println("ATTENZIONE!!! L'oggetto originale non c'è più.");
spegniLedGiallo();
accendiLedRossoBuzzer_old();
RC522.halt();//Arresto necessario del sensore RFID
//Funzione per alzare la protezione
void alzaprotezione()
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(motor_Speed);
Pagina 41
Istituto Tecnico Industriale Statale Marconi di Jesi
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(motor_Speed);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(motor_Speed);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(motor_Speed);
//Funzione per abbassare la protezione
void abbassaprotezione()
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
Pagina 42
Istituto Tecnico Industriale Statale Marconi di Jesi
delay(motor_Speed);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delay(motor_Speed);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delay(motor_Speed);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delay(motor_Speed);
// Questa funzione verifica se il codice letto è autorizzato
boolean verificaCodice(String codiceLetto, String codiceAutorizzato)
if (codiceLetto.equals(codiceAutorizzato))
return true;
Pagina 43
Istituto Tecnico Industriale Statale Marconi di Jesi
else
return false;
// Questa funzione permette di accendere il led giallo fino a quando non viene più letto il codice della tessera autorizzata
void accendiLedGiallo()
digitalWrite(ledGiallo, HIGH);
//Questa funzione permette lo spegnimeto dell'allarme
void spegniAllarme()
digitalWrite(ledRosso, LOW); // spegne il led
digitalWrite(buzzer, LOW); // spegne il suono
Pagina 44
Istituto Tecnico Industriale Statale Marconi di Jesi
//Funzione che permette lo spegnersi del led giallo
void spegniLedGiallo()
digitalWrite(ledGiallo, LOW); // spegne il led
// Questa funzione permette di accendere un LED per un determinato periodo e far suonare un buzzer contemporaneamente (allarme)
void accendiLedRossoBuzzer_old ()
for (int i= 0; i < 150; i++)
digitalWrite(buzzer, HIGH); // attiva il suono
digitalWrite(ledRosso, HIGH); // accende il led
delay(0.5); // attende 1 millisecondo. Di fatto ripete il suono ogni 2 millisecondi e
// quindi con una frequenza di 500 ripetizioni al secondo
digitalWrite(buzzer, LOW); // disattiva il suono
delay(1); // attende 1 millisecondo e riparte dall’istruzione for (350 ripetizioni)
Pagina 45
Istituto Tecnico Industriale Statale Marconi di Jesi
index++;
delay(50);
for (int i = 0; i < 150; i++)
digitalWrite(buzzer, HIGH); // attiva il suono
digitalWrite(ledRosso, LOW); // accende il led
delay(0.5); // attende 1 millisecondo. Di fatto ripete il suono ogni 2 millisecondi e
// quindi con una frequenza di 500 ripetizioni al secondo
digitalWrite(buzzer, LOW); // disattiva il suono
delay(1); // attende 1 millisecondo e riparte dall’istruzione for (350 ripetizioni)
index++;
Costi:Descrizione prodotto Costo in €
Legno (Falegname) 20 €
Arduino Mega 2560 10 €
Display LCD1602 Module 4,43 €
ULN2003 Stepper Motor Driver e stepper motor 5V 6,82 €
Pagina 46
Istituto Tecnico Industriale Statale Marconi di Jesi
Modulo Lettore di card RFID-RC522, tessera e porta chiave 2,85 €
DHT-11 (Temperature and Humidity Sensor) 2,45 €
Relay module 1,85 €
HC-SR501 PIR Motion Sensor 2,58 €
10k Potentiometer 1,00 €
Active Buzzer 1,00 €
Bottons e Jay cap 2, 20 €
Resistor 220 hom e 10 Khom 1,20 €
Usb cable 0 €
830 tie-points Breadboard 3,10 €
Cavi Dupont Jumper Ponticelli femmina-femmina, Maschio - Maschio e Maschio - Femmina
6,30 €
Spedizioni 10 €
Costo tot. 75,78 €
Notare bene: non oltrepassati i 100 euro di budget previsti.
Pagina 47
Istituto Tecnico Industriale Statale Marconi di Jesi
Problematiche:Problematiche rilevate durante la creazione del prototipo:
In fase di montaggio della circuiteria: Cavi non di lunghezza necessaria per il montaggio
dei vari dispositivi e sensori. Si è provveduto con l’acquistare altri cavi tramite internet.
In fase di sviluppo del codice: Piccoli problemi sul codice che impedivano la sua
esecuzione corretta. Perdita di tempo nello scaricare librerie
fondamentali per il funzionamento dei dispositivi.
Opzioni future da tenere in considerazione:
Opzioni da implementare preferibilmente in futuro:
Si potrebbe implementare r (immagine 1) nella parte inferiore ed esterna della teca tramite l’ Ultrasonic Sensor una monitorizzazione continua di eventuali avvicinamenti entro un certo raggio di azione dalla teca, cioè impedire che la clientela si avvicini troppo alla teca.
Pagina 48
Istituto Tecnico Industriale Statale Marconi di Jesi
rilevata la presenza di persone all’interno del raggio far scattare eventualmente l’allarme.
(Immagine 1)
Si potrebbe implementare un sistema di apertura della teca basato sulla digitazione di un codice tramite la Keyboard module matrix 4x4 (immagine 2).
Pagina 49
Istituto Tecnico Industriale Statale Marconi di Jesi
(immagine 2)
Conclusione:Il prototipo è stato realizzato e finito secondo gli obiettivi e le funzionalità prestabilite inizialmente.
Pagina 50
top related