Maker%20Faire%20Rome%20ottobre%202014%20

MAKER FAIRE ROME - OTTOBRE 2014
QUADRO DI CONTROLLO AMBIENTALE
Realizzato dagli studenti dell’
I.T.I. - L.S. "Francesco Giordani" di Caserta
Classe 2a Q – Trasporti e Logistica – Costruzione del mezzo: aereo,
nell’anno scolastico 2013-2014, guidati da:
Prof. FRANCESCO COLUSSI – A.T. ALESSANDRO GILIBERTI
Le nuove linee guida per l'edilizia scolastica, pubblicate nell'aprile 2013, sottolineano la necessità di
garantire un adeguato comfort ambientale negli spazi di apprendimento e di monitorare i principali
parametri anche al fine di ottimizzare, con la domotica, le prestazioni degli impianti.
Alunni della classe 2a Q al lavoro
Coerentemente con le indicazioni ministeriali gli “apprendisti costruttori di aerei” della classe 2a Q
dell’I.T.I. “Francesco Giordani” di Caserta, nell’anno scolastico 2013-2014, nelle ore del corso di
Tecnologia e tecniche di rappresentazione grafica, guidati dal prof. Francesco Colussi e
dall’assistente tecnico Alessandro Giliberti, hanno realizzato uno strumento digitale per la
misurazione delle condizioni termo-igrometriche, acustiche e di luminosità necessarie a garantire il
benessere degli studenti.
1
Tale strumento digitale chiamato “Quadro di controllo ambientale” trasforma i dati rilevati dai
sensori in istruzioni a quattro servocomandi che, con la rotazione di indici su scale graduate,
evidenziano in modo intuitivo i valori registrati.
Quadro di controllo ambientale
Per la realizzazione del “Quadro di controllo ambientale” sono stati impiegati:

una scheda elettronica Arduino Uno;

una fotoresistenza LDR 20-50KΩ;

una resistenza 50KΩ:

un sensore DHT22 per temperatura e umidità dell’aria;

un sensore del suono Phidgets 1133;

un regolatore di tensione L7806 con tensione in uscita 6V dc;

un condensatore elettrolitico verticale 220µf 25V;

un condensatore ceramico 0.01µF 10V;

un modulo relè ad un canale;

piste positiva e negativa di una bread-board;

quattro micro servocomandi - 9 grammi;

quattro fascette in plastica e quattro puntine da disegno;

cavetti colorati jamper tipo DuPont e a guaina cilindrica m-m e m-f;

lastre in plexiglass spessore 3 mm;

lastre in pvc espanso spessore 3 mm;

compensato di pioppo spessore 4 mm;
2

listello di ayous 5x10 mm;

filo di nylon trasparente ∅2 mm per “chiodature” a caldo su plexiglass;

due rondelle piane 10x20x1 mm con reticella metallica;

un alimentatore esterno con output 9 Volt dc.
Il sistema di monitoraggio è stato assemblato su di un piano in plexiglass,che misura 420x297
mm(formato A3), intermedio tra la chiusura esterna ed il fondo su cui è stato posto il disegno del
circuito elettronico. Questa costruzione su diversi “layer” consente un esercizio gestaltico di
passaggio dalla figura del modello reale allo sfondo del modello teorico per sviluppare negli alunni
la consapevolezza del rapporto complesso tra teoria e prassi.
Dietro il piano di fondo è stato lasciato lo spazio per il cavetto USB di collegamento tra la scheda
Arduino ed il computer per visualizzare a monitor i parametri ambientali in formato digitale o per
eventuali aggiornamenti dello sketch con il quale è stata programmata la scheda elettronica.
Aula con quadro di controllo ambientale
Nel prossimo futuro si potrebbe installare, in ogni aula, un “quadro di controllo ambientale”
collegato alla rete Lan dell’Istituto così da regolare gli impianti come previsto dalle linee guida
sopra richiamate e provvedere al benessere ambientale nei nuovi spazi di apprendimento.
3
// SKETCH QUADRO CONTROLLO AMBIENTALE – SETTEMBRE 2014
// I.T.I. - L.S. Francesco Giordani - Caserta");
//QUADRO DI CONTROLLO AMBIENTALE");
//Pannello didattico - Classe II Q - A.S. 2013-14");
//Prof. Francesco Colussi - A.T. Alessandro Giliberti");
//SKETCH BY FRANCESCO COLUSSI - SETTEMBRE 2014
#include <Servo.h>
Servo myservo5; //definizione del servocomando 5 per luxometro
int servoPin5 = 5; //pin di collegamento del servo 5
Servo myservo6; //definizione del servocomando 6 fonometro
int servoPin6 = 6; //pin di collegamento del servo 6
Servo myservo10; //definizione del servocomando 10
int servoPin10 = 10; //pin di collegamento del servo 10 igrometro
Servo myservo11; //definizione del servocomando 11 termometro
int servoPin11 = 11; //pin di collegamento del servo 11
#include "DHT.h" // Richiamo la libreria del sensore di temperatura e umidità
#define DHTPIN 3 // collegamento del sensore di temperatura e umidita' al pin 3
void setup()
{
int rele = 13; //definizione del relè
pinMode( rele, OUTPUT );
digitalWrite( rele, LOW );
myservo5.attach(5); //attacco del servo 5 luxometro
myservo5.write(45); //posizione iniziale del servo 5
myservo6.attach(6); //attacco del servo 6 fonometro
myservo6.write(45); //posizione iniziale del servo 6
myservo10.attach(10); //attacco del servo 10 igrometro
myservo10.write(30); //posizione iniziale del servo 10
myservo11.attach(11); //attacco del servo 11 termometro
myservo11.write(30); //posizione iniziale del servo 11
Serial.begin(9600); // inizializzo la comunicazione seriale e stampo intestazione
Serial.println ("\t \t I.T.I. - L.S. Francesco Giordani - Caserta");
Serial.println ("\t \t \t QUADRO DI CONTROLLO AMBIENTALE");
Serial.println ("\t \t Pannello didattico - Classe II Q - A.S. 2013-14");
Serial.println ("\t \t Prof. Francesco Colussi - A.T. Alessandro Giliberti");
4
delay (2000);
digitalWrite( rele, HIGH );
}
void loop()
{
// LUMINOSITA'
int Luce; //Luce è definita come variabile di luminosita'
Luce=analogRead(0); //connetto il sensore di luce al pin Analogico 0
float L; // L è definita come variabile per il servocomando
L = map(Luce, 0, 1024, 0, 70); //proporziono la scala della luce alla scala del servocomando
myservo5.write(L); //valore L comanda il servo 5
// RUMORE IN DECIBEL
int rval; // rval è definita come variabile rumore
rval = analogRead(1); // connetto il sensore di rumore al pin Analogico 1
int dbval; // dbval è definita come variabile decibel
dbval = (rval*0.5); // si applica la formula seguente per convertire il valore analogico in decibel
float D; // D è definita come variabile per il servocomando
D = map(dbval, 0, 100, 90, 0); //proporziono la scala del rumore alla scala del servocomando
myservo6.write(D); //valore D comanda il servo 6
// TEMPERATURA E UMIDITA'
#define DHTTYPE DHT22 // DHT 22 (AM2302) in questo caso ho usato questo
// #define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
int temp = dht.readTemperature(); // attribuisco alla variabile temp la temperatura
int T; //T è definita come variabile per il servocomando
T = map(temp, 0, 40, 60, 0); //proporziono la scala della temperatura alla scala del servocomando
myservo11.write(T); //valore T comanda il servo 11
int humid = dht.readHumidity(); // attribuisco alla variabile humid l'umidita'
int H; //H è definita come variabile per il servocomando
H = map(humid, 0, 100, 60, 0); //proporziono la scala della temperatura alla scala del
servocomando
myservo10.write(H); //valore H comanda il servo 10
// STAMPA SU PORTA SERIALE
Serial.print("Temperatura: "); // scrivo Temperatura:
Serial.print(temp); // scrivo il valore di temperatura
5
Serial.print(" *C\t"); // scrivo l'unita' di misura della temperatura e faccio in modo, tramite \t, che
il prossimo valore sia scritto più staccato a dx
Serial.print("Umidita': "); // Scrivo Umidita':
Serial.print(humid); // scrivo il valore di umidità
Serial.print(" %\t"); // scrivo il simbolo di percentuale % e faccio in modo, tramite \t, che il
prossimo valore sia scritto più staccato a dx
Serial.print("Luminosita': "); // scrivo Luminosita':
Serial.print(Luce); // scrivo il valore della luminosita'
Serial.print(" lux\t"); // scrivo l'unita' di misura della luminosita' e faccio in modo, tramite \t, che
il prossimo valore sia scritto più staccato a dx
Serial.print("Rumore: "); // scrivo Rumore:
Serial.print(dbval); // scrivo il valore del rumore in decibel
Serial.print(" dB"); // scrivo l'unita' di misura del rumore
Serial.println(""); // vado a capo grazie all'aggiunta di ln dopo Serial.print
delay(200); // si ripete la misurazione ogni 200 millisecondi
}
6