Università degli Studi Milano Bicocca Corso di laurea magistrale in Informatica LABORATORIO DI PROGETTAZIONE Sistema di risparmio energetico aziendale Analisi della gestione dell’illuminazione Analisi di dominio • • • La struttura sulla quale verrà installato il sistema è un edificio aziendale costituito da uno o più piani con diversi ambienti. Ai fini della gestione dell’illuminazione, ogni ambiente verrà considerato come una stanza, suddivisa in uno o più settori. I settori delle stanze vengono definiti in fase di configurazione del sistema. Saranno presenti uno o più terminali Video Touch Screen BTicino di controllo da 15’ per ogni piano e in altri punti strategici come l’ufficio del direttore e la portineria. L'edificio è equipaggiato con i seguenti impianti di domotica della Bticino. In base alla dimensione della stanza saranno presenti: Una o più luci a risparmio energetico. Un rilevatore di presenza per ogni settore. Un sensore di luminosità interna per ogni settore. Uno o più sensori di luminosità esterna per ogni lato dell'edificio. Uno o più pulsanti di regolazione delle luci per ogni settore. Uno o più pulsanti di apertura/chiusura delle tapparelle/tende per ogni settore. Un sensore di stato per ogni componente (luci/tende/tapparelle). Uno o più attuatori. Ogni componente (tapparella/tenda/luce) sarà collegato ad un attuatore, ed eventualmente più componenti potranno essere collegati allo stesso attuatore. Analisi di dominio • • L’associazione tra i sensori di luminosità esterna e i settori viene definita in fase di configurazione del sistema. Altri elementi non riguardanti unicamente la gestione dell’illuminazione sono: Un web server collegato ad internet e alla rete locale per la gestione del sistema Ogni stanza deve essere coperta da una connessione bluetooth collegata al sistema di risparmio energetico I percorsi dei robot devono essere tracciati lungo tutto l’edificio per mezzo di indicatori RFID (d’ora in poi chiamati waypoint). Ogni waypoint deve contenere il proprio identificativo univoco e una tabella contenente la direzione per raggiungere i waypoint contigui. Esempio tabella waypoint 2: In fase di configurazione viene caricata nel sistema la mappa di tutti i waypoint dell’edificio sotto forma di grafo e la collocazione di ogni waypoint nel rispettivo settore di una stanza. • Su ogni piano sarà presente almeno un Robot "Lego Mindstorms" con processore a 32 bit Atmel AT91SAM7S256 (classe ARM7) a 48 MHz con 256KB memoria flash e 64KB di memoria RAM. Definizioni Amministratore: utente loggato, con privilegi di amministrazione Sensore: dispositivo che effettua rilevazioni di una grandezza fisica, si divide in: • Sensore di luminosità interno ed esterno • Termo rilevatori di presenza • Sensore di stato Componenti: elementi sui quali il sistema può compiere delle azioni di modifica dello stato (Luci, Tapparelle elettriche, Tende elettriche) Attuatore: meccanismo che comanda uno o più componenti. Può essere impostato su manuale o automatico. Gli attuatori impostati su automatico vengono controllati dal sistema, al contrario il sistema non può comandare gli attuatori impostati su manuale. Trigger: è un insieme di esattamente tre condizioni: • una data/ora di inizio • una data/ora di fine • presenza di persone (si/no) Livello di luminosità: un valore di luminosità espresso in scala da 0 a 100 (rispetto alla scala da 0 a 1000 lux – lumen/metro2 – raccomandata dalla Commissione internazionale per l’illuminazione). Definizioni Profilo: un profilo è una coppia trigger-livello di luminosità. Un profilo è associato ad uno ed un solo settore di una stanza e ad un settore di una stanza è possibile associare più profili purché i rispettivi trigger non possano essere verificati contemporaneamente (può essere attivo un solo profilo per volta). Profilo attivo: è il profilo di un settore il cui trigger è verificato, ovvero per il quale tutte le condizioni sono vere. Nel caso in cui nessun trigger dei profili del settore sia verificato, il profilo attivo è quello di default. Per ogni settore esiste uno ed un solo profilo attivo. Profilo di default: viene applicato quando nessun profilo è attivo. Impone luminosità 20 (200 lux: luminosità minima degli ambienti di lavoro richiesta per legge) se viene rilevata presenza di persone e luminosità 0 in caso contrario. Settore: una stanza è suddivisa in uno o più settori tra loro indipendenti. I componenti ed i sensori di una stanza devono appartenere ad uno e un solo settore. Per ogni settore di ogni stanza: • • • deve essere presente uno ed un solo sensore di luminosità interno deve essere presente uno ed un solo sensore di presenza possono essere eventualmente associati uno o più sensori di luminosità esterni Specifiche 1. 2. 3. 4. 5. 6. 7. 8. In un settore può essere attivo un solo profilo per volta. Se nessun profilo è attivo viene applicato il profilo di default. Quando viene attivato un nuovo profilo (si verificano tutte le condizioni del trigger) tutti gli attuatori del settore vengono impostati su automatico. Quando una persona agisce sui pulsanti di controllo di un attuatore, l’attuatore viene impostato su manuale. Un profilo viene attivato quando tutte le condizioni espresse dal trigger sono verificate. Il sistema deve agire sui soli attuatori impostati su automatico utilizzando una politica di risparmio energetico (punto 6) con lo scopo di ottenere il livello di luminosità del profilo attivo. Gli amministratori possono accedere al sistema dalla intranet o da internet Il sistema deve ottenere il livello di luminosità richiesto dal profilo utilizzando una politica di risparmio energetico. Quando possibile il sistema deve alzare le tapparelle per sfruttare la luce esterna, se la luminosità interna non fosse ancora adeguata il sistema deve alzare le luci in modo incrementale fino a che la luminosità del profilo non è raggiunta. Se possibile il sistema deve ottenere i valori di luminosità e di presenza per mezzo dei sensori. Nel caso questo non sia possibile il sistema deve ottenere la rilevazione richiesta inviando il robot. Se possibile il sistema deve agire sui componenti per mezzo degli attuatori. Nel caso questo non sia possibile il sistema deve agire sui componenti inviando il robot. Specifiche Operazioni effettuabili da un amministratore 1. Gestione di un settore: i. Aggiunta di un profilo ii. Eliminazione di un profilo iii. Modifica di un profilo 2. 3. Gestione di più settori (eventualmente appartenenti a stanze diverse): gli amministratori possono effettuare una selezione multipla di settori, e gestirli in modo contemporaneo. Il sistema mostrerà gli (eventuali) profili comuni a tutti i settori selezionati. Le operazioni effettuabili dall’amministratore saranno quindi uguali a quelle di gestione di un singolo settore Monitoraggio dello stato del sistema: i. ii. Visualizzazione del consumo energetico totale Visualizzazione dello stato dei sensori (es. guasto, attivo, standby…) e dei valori da essi rilevati (es: guasto, acceso, spento, luminosità della stanza) Specifiche Movimento del robot Il movimento del robot è soggetto alle seguenti fasi: • Rilevamento della posizione del Robot • Calcolo del percorso • Invio al Robot della sequenza di waypoint (indicatori RFID) del percorso Diagrammi Use Case Use case diagram: • Generale • Gestione settori • Monitoraggio sistema • Sensori Scenari Autenticazione amministratore Scenario principale: 1. Una persona inserisce nome utente e password 2. Il sistema stabilisce che i campi inseriti dall’utente sono validi 3. Il sistema conferma la correttezza dei campi 4. L’amministratore è abilitato a effettuare le operazioni sul sistema Estensione: 1a. Una persona inserisce utente e/o password errati 2a. Il sistema stabilisce che i campi inseriti dalla persona non sono validi 3a. Il sistema avverte la persona che i campi inseriti sono errati e chiede il reinserimento dei dati. Si torna al punto 1 dello scenario principale Scenari Gestione di uno o più settori Scenario principale: 1. L’amministratore seleziona uno o più settori 2. Il sistema mostra i profili comuni a tutti i settori selezionati Estensione: aggiunta di un profilo 3. L’amministratore crea un profilo 4. Il sistema aggiunge il profilo a tutti i settori selezionati Estensione: eliminazione di un profilo 3. L’amministratore elimina un profilo 4. Il sistema elimina il profilo da tutti i settori selezionati Estensione: modifica di un profilo 3. L’amministratore seleziona un profilo 4. Il sistema mostra i dettagli del profilo 5. L’amministratore modifica il trigger e il livello di luminosità del profilo 6. L’amministratore conferma le modifiche 7. Il sistema aggiorna il profilo in tutti i settori selezionati Scenari Comando manuale di un attuatore Scenario principale: 1. Una persona preme un pulsante di comando di un attuatore di un settore 2. Il sistema imposta l’attuatore su manuale 3. Il sistema applica il profilo attivo agendo sugli attuatori impostati su automatico Scenari Monitoraggio del sistema Scenario principale: 1. Un amministratore accede alla pagina di monitoraggio del sistema 2. Il sistema visualizza il consumo energetico del sistema di illuminazione Estensione: visualizzazione dello stato dei sensori e dei valori rilevati 3. L'amministratore accede alla pagina di monitoraggio dello stato dei sensori e dei valori rilevati 4. Il sistema richiede la selezione di una stanza e fornisce un elenco delle stanze 5. L’amministratore seleziona una stanza dall’elenco 6. Il sistema richiede la selezione di un settore e fornisce un elenco dei settori della stanza 7. L’amministratore selezione un settore della stanza 8. Il sistema visualizza lo stato e i valori dei sensori presenti nel settore Diagrammi Attività Activity diagram: • Autenticazione • Applicazione profilo attivo • Modifica tramite robot • Movimento robot • Scelta profilo attivo (stato) • Scelta profilo attivo (tempo) Architettura e Tecnologie • • • • • linguaggio orientato agli oggetti Java piattaforma Java J2EE (Java Enterprise Edition) tecnologia dei componenti software riusabili Enterprise JavaBeans EJB ambiente di sviluppo integrato NetBeans IDE application server GlassFish • Architettura del sistema è 3-tier: Diagramma Deployment Classi astratte Diagrammi delle classi astratte: • Diagramma generale • Attuatori • Edificio • Profilo • Sensori Database Classi concrete: Profilo Diagramma delle classi concrete: • Profilo – diagramma generale Classi concrete: sensori e storico Diagrammi delle classi concrete: • • Sensori – diagramma generale Storico – diagramma generale Diagrammi di sequenza: • • Gestione evento generato dal sensore Gestione invio comando al sensore Esempio XML per il mapping del protocollo OpenWebNet Classi concrete: attuatori ed edificio Diagrammi delle classi concrete: • • • • Attuatori ed edificio – diagramma generale Attuatori ed edificio – attuatori e sensori Attuatori ed edificio – edificio e percorso Attuatori ed edificio – robot