Tesina Esami di Stato 2017 con Arduino
Candidato: Fancello Salvatore
Classe: 5^ Elettronica
Anno scolastico 2016/2017
Arduino e Stampa 3D
La Casa Domotica in miniatura è nata nei tre anni di corso di studio all'istituto d’istruzione superiore ITI A. Monaco di Cosenza, dove si sono susseguiti vari progetti di domotica utilizzando la programmazione su Arduino Uno.
Lo scopo del progetto è di realizzare un Casa controllabile interamente da smartphone, PC, o qualunque dispositivo che abbia un browser e sia collegato nella stessa rete in modo tale da agevolare e migliorare le condizioni di vivibilità dell’appartamento.
Il progetto che ho portato per l’Esame di Maturità è un prototipo di sistema domotico stampato in 3D di una Casa in scala 1:24.
Funzioni
Oltre al controllo remoto dei dispositivi tramite Web Server è integrato un sistema di allarme domestico che si attiva/disattiva tramite la lettura di una tessera con codice tag e visualizzazione su un display LCD dello stato dei vari sensori, tra cui:
- Sensore PIR per rilevare la presenza di movimento in casa se l’allarme è attivo
- Sensore Gas MQ-02 per rilevare la fuoriuscita involontaria di gas combustibile, metano, propano o fumo.
- Sensore di Fiamma per rilevare la presenza di fuoco in caso di incendio.
Materiali e componenti utilizzati
2x Filamento per Stampa 3D 1Kg |
||
Pannello Multistrato di pioppo 18mm 70x60 |
||
Tappetino verde prato 100x50cm |
||
Servomotore Parallax Rotazione Continua |
||
Arduino YUN Orig |
||
Webcam Logitech E3500 |
||
MicroSD 8Gb Samsung |
||
Router Digicom 150 |
||
Arduino Mega 2560 |
||
Ethernet Shield W5100 |
||
Arduino UNO |
||
Display LCD 16x2 I2C |
||
Lettore di tessere tag RFID RC522 |
||
Sensore Fiamma |
||
Sensore Gas MQ-02 |
||
Sensore PIR |
||
Buzzer |
||
Ventola |
||
7x Diodi LED Bianchi 5mm |
||
2x Diodi LED Gialli 5mm |
||
Diodi LED Rossi 5mm |
||
10x Resistenze da 220Ω |
||
Breadboard |
||
Kit cavetti di collegamento |
||
Cavo ethernet |
||
PowerBank AUKEY 20000mAh |
Creazione della struttura in 3D
Il plastico è interamente realizzato con stampante 3D, la base è di multistrato di pioppo largo 70x60 cm e con spessore di 18mm così da rendere l’intera struttura leggera ma allo stesso tempo resistente.
Inizialmente è stato necessario realizzare la piantina della casa su AutoCAD per poi prendere le misure, riportarle alle dimensioni reali e suddividerle in più parti in quanto il piatto di stampa riesce a riprodurre oggetti con dimensioni max 200x200mm.
Tutti i componenti della Casa Domotica sono stati realizzati in 3D tramite il software gratuito Tinkercad che è il punto di partenza per chi vuole iniziare a creare oggetti semplici da stampare in 3D ed esportarli nel formato di file .STL compatibili con tutti i software di stampa.
Inizialmente è stato necessario realizzare la piantina della casa su AutoCAD per poi prendere le misure, riportarle alle dimensioni reali e suddividerle in più parti in quanto il piatto di stampa riesce a riprodurre oggetti con dimensioni max 200x200mm.
Tutti i componenti della Casa Domotica sono stati realizzati in 3D tramite il software gratuito Tinkercad che è il punto di partenza per chi vuole iniziare a creare oggetti semplici da stampare in 3D ed esportarli nel formato di file .STL compatibili con tutti i software di stampa.
Inoltre tutti i file di stampa .STL li ho resi pubblici sul sito Thingiverse all'indirizzo: https://www.thingiverse.com/thing:2364628
Thingiverse è un sito gratuito dove vengono condivisi tutti i progetti di stampa 3D.
Rendendolo pubblico chiunque può riprodurre facilmente il progetto, apportare delle modifiche e crearsi il proprio prototipo di casa domotica.
Thingiverse è un sito gratuito dove vengono condivisi tutti i progetti di stampa 3D.
Rendendolo pubblico chiunque può riprodurre facilmente il progetto, apportare delle modifiche e crearsi il proprio prototipo di casa domotica.
Stampa 3D
Successivamente alla creazione dei modelli 3D si passa alla stampa dove ho trascorso la maggior parte del tempo dedicato al progetto.
I modelli in formato .STL vengono infine caricati su un software che effettua la divisione in strati dell’oggetto da stampare (slicing).
I modelli in formato .STL vengono infine caricati su un software che effettua la divisione in strati dell’oggetto da stampare (slicing).
Il software Repetier-Host gestisce la stampante collegata tramite la porta USB del PC permettendo di regolare autonomamente il riempimento interno dell’oggetto, la temperatura dell’estrusore di stampa, la velocità, lo spostamento degli assi e molto altro.
La stampante che ho utilizzato è la GEEETech I3 ProB, economica ma con a bordo una scheda Arduino Mega 2560 anch'essa con software Open-Source, il che mi permetteranno in futuro di effettuare alcune modifiche per migliorare la qualità di stampa complessiva.
Assemblaggio
Le pareti sono larghe 8mm con ai lati degli incastri per facilitare l’assemblaggio e l’incollaggio con colla ciano-acrilica in modo da formare tutte le stanze presenti nella piantina.
A quel punto si avranno tutti gli spazi della casa pronti.
A quel punto si avranno tutti gli spazi della casa pronti.
Una volta assemblati i vari componenti della casa domotica si procede con il passo successivo, cioè inserire i supporti a T e ad L in modo da rendere le pareti più stabili, dove andremo successivamente ad inserire i circuiti d'illuminazione e installare i dispositivi di controllo.
Il passaggio successivo è l’inserimento dell’impianto di illuminazione, ho forato i muri in modo da inserire i diodi LED e lasciarli ben visibili, nascondendo i fili che fuoriuscivano dal retro della parete con una canalina creata con la stampante 3D.
Il cancello posto sul lato anteriore della casa è fatto muovere grazie ad un servomotore a rotazione continua. L'ingranaggio sul servo è tenuto saldamente da una vite, ed è fatto ruotare su un asta a cremagliera.
Il display LCD e il lettore di card sono inseriti in due appositi alloggiamenti posti uno sull'altro per consentire una facile lettura quando si passa la card o il portachiavi sul lettore.
Il display consente di monitorare lo stato dei sensori di Gas, Fiamma e si rende necessario per visualizzare lo stato del Sistema Anti-intrusione.
Per finire ho portato tutti i cavi sul retro della casa dove ho alloggiato le schede Arduino il router e una breadbord.
I fili sono nascosti sotto un tappetino verde che simula l'erba del giardino e per renderli facilmente individuabili li ho etichettati in modo da agevolare un prossimo upgrade del progetto.
Schema del circuito completo
Prima Parte del programma: Sistema di Allarme Domestico
La prima parte dello sketch (programma) è installato sulla scheda Arduino UNO. Questo sistema elettronico rappresenta un allarme domestico economico ma funzionale.
E' una semplice centrale a una zona nel mio caso perché ho un solo PIR a disposizione, ma ovviamente espandibile, che si attiva o disattiva tramite un tag RFID, essa può memorizzare fino a tre tag più una chiave master.
Il sensore di Fiamma e il sensore MQ-02 non dipendono dall'attivazione o meno dell'allarme e sono lasciati sempre attivi.
Se attivati dalla presenza di una fuoriuscita di gas oppure di una fiamma faranno suonare il buzzer e indicheranno sul display quale sensore (o pericolo) ha fatto attivare la sirena.
La prima configurazione consiste di inserire manualmente il codice decimale della propria card che si vuole utilizzare come master. La chiave master serve altresì per memorizzare gli altri gruppi di chiavi fino ad un massimo di tre tag.
Al posto del display LCD classico 16x2 HD44780 ho inserito un display LCD 16x2 con comunicazione seriale I2C per liberarci di un po di pin che altrimenti andrebbero occupati dal display stesso.
Sulla breadboard ho inserito tre diodi Led e un pulsante
Il sensore di Fiamma e il sensore MQ-02 non dipendono dall'attivazione o meno dell'allarme e sono lasciati sempre attivi.
Se attivati dalla presenza di una fuoriuscita di gas oppure di una fiamma faranno suonare il buzzer e indicheranno sul display quale sensore (o pericolo) ha fatto attivare la sirena.
La prima configurazione consiste di inserire manualmente il codice decimale della propria card che si vuole utilizzare come master. La chiave master serve altresì per memorizzare gli altri gruppi di chiavi fino ad un massimo di tre tag.
Al posto del display LCD classico 16x2 HD44780 ho inserito un display LCD 16x2 con comunicazione seriale I2C per liberarci di un po di pin che altrimenti andrebbero occupati dal display stesso.
Sulla breadboard ho inserito tre diodi Led e un pulsante
- Il Led rosso indica lo stato di attivazione della centrale d'allarme, se acceso l’allarme è attivo.
- Il Led giallo indica lo stato del sensore PIR, se acceso indica la presenza di movimento nell'abitazione.
- Il Led verde lampeggiante indica che la sirena è attiva e quindi è scattato l’allarme.
- Il pulsante ha la funzione di resettare le chiavi salvate fino a quel momento ma lascerà memorizzata la chiave master.
Sketch Prima Parte: Sistema di Allarme
Una volta costruito il circuito del sistema anti-intrusione è possibile caricare lo sketch sulla scheda Arduino UNO tramite il software di programmazione Arduino IDE.
Prima di procedere però è necessario includere la libreria del sensore RFID e del display LCD I2C seguendo queste semplici istruzioni:
Prima di procedere però è necessario includere la libreria del sensore RFID e del display LCD I2C seguendo queste semplici istruzioni:
- Scaricare le librerie rfid-master e newliquidcrystal_1.3.4 in formato .ZIP;
- Aprire Arduino IDE e fare clic su Sketch >> #include libreria >> aggiungi libreria da file .ZIP.
- Selezionare la libreria da installare e il gioco è fatto!
|
|
Clicca qui per modificare.
Seconda Parte del Programma: Controllo dispositivi tramite pagina Web-server
La seconda parte del progetto riguarda il controllo dei dispositivi tramite pagina web con Arduino Mega 2560 e la ethernet shield.
La ethernet shield è provvista di un connettore RJ45 per la connessione diretta al modem di casa così da controllare i dispositivi via rete locale o via Internet.
La ethernet shield è provvista di un connettore RJ45 per la connessione diretta al modem di casa così da controllare i dispositivi via rete locale o via Internet.
Nel nostro caso utilizzeremo la ethernet shield in rete locale collegata ad un modem router Digicom 150, impostiamo sullo sketch l’indirizzo IP fisso della board 192.168.10.89 in modo da rendere subito raggiungibile la pagina web tramite protocollo HTTP che ci consentirà di controllare i vari dispositivi.
Se si utilizza la ethernet shield in locale senza connessione internet dobbiamo fare a meno della grafica personalizzata perché caricata sulla pagina web: http://www.progettiarduino.com/ethernet.html in formato style.css , questo mi è stato di grande aiuto in quanto la memoria limitata di Arduino Mega 2560 non mi permetteva di caricare grandi formati di testo HTML.
Se la Ethernet Shield non è connessa in rete non può raggiungere l'editor grafico .css salvato sulla pagina web e quindi si avrà una pagina con grafica limitata ma pur sempre utilizzabile.
Se si utilizza la ethernet shield in locale senza connessione internet dobbiamo fare a meno della grafica personalizzata perché caricata sulla pagina web: http://www.progettiarduino.com/ethernet.html in formato style.css , questo mi è stato di grande aiuto in quanto la memoria limitata di Arduino Mega 2560 non mi permetteva di caricare grandi formati di testo HTML.
Se la Ethernet Shield non è connessa in rete non può raggiungere l'editor grafico .css salvato sulla pagina web e quindi si avrà una pagina con grafica limitata ma pur sempre utilizzabile.
Esempio di pagina Web Server senza connessione internet
Esempio di pagina Web Server con connessione internet
Sketch Seconda Parte: Controllo dispositivi tramite Web server
Una volta realizzato il circuito per il controllo dei dispositivi possiamo procedere con caricare lo sketch su Arduino Mega 2560 + Ethernet Shield.
In questo caso non è necessario includere altre librerie in quanto sono già presenti su Arduino IDE.
In questo caso non è necessario includere altre librerie in quanto sono già presenti su Arduino IDE.
Clicca qui per modificare.
Terza Parte del Programma: Controllo Webcam in Streaming
La terza parte del programma richiede un po di conoscenze sul sistema operativo Linux per poter programmare Arduino YUN e utilizzare la webcam per effettuare lo streaming video.
Ho seguito il tutorial su lucadentella.it che vi consiglio di visitare vi guiderà passo passo al collegamento di una webcam su Arduino YUN.
Ho seguito il tutorial su lucadentella.it che vi consiglio di visitare vi guiderà passo passo al collegamento di una webcam su Arduino YUN.
Arduino YUN monta una distribuzione Linux (Linino) ed è in grado di gestire webcam che supportano i driver UVC.
Ho utilizzato una webcam Logitech E-3500 e installato i driver kmod-video-uvc tramite il software integrato nella YUN.
Per trasmettere in rete lo streaming ho scelto di utilizzare mjpg-streamer, un applicativo in grado di catturare il video della webcam e renderlo disponibile tramite interfaccia web.
Per installarlo sulla Arduino YUN è stato necessario collegarla tramite il software gratuito Putty e protocollo SSH, spostarci nella cartella /tmp e scaricare il pacchetto tramite wget:
wget http://www.custommobileapps.com.au/downloads/mjpg-streamer.ipk
installare il pacchetto con opkg:
opkg install mjpg-streamer.ipk
ed infine ho eseguire il programma con:
/etc/init.d/mjpg-streamer start
Collegandoci con il browser all'indirizzo della YUN e alla porta 8080 (http://192.168.10.100:8080) possiamo visualizzare l'interfaccia di mjpg-streamer:
Desidero rivolgere un ringraziamento a tutti i professori dell'ITI A. Monaco di Cosenza in particolare ai professori
Porto Aldo e De Luca Carmelo per l'aiuto e il supporto dimostrato in questi anni, per avermi portato a conoscenza della scheda Arduino. Devo a loro la nascita del blog ProgettiArduino.com
Porto Aldo e De Luca Carmelo per l'aiuto e il supporto dimostrato in questi anni, per avermi portato a conoscenza della scheda Arduino. Devo a loro la nascita del blog ProgettiArduino.com