Progettazione Smart Garden: quali sono le fasi da seguire per la realizzazione di un sistema intelligente per curare al meglio le nostre piante?
A seconda del tipo di progetto, alcune fasi riguardanti la progettazione possono variare. Non tutti i sistemi si basano sulla stessa architettura, possono inoltre variare i protocolli utilizzati, i diversi dispositivi impiegati e molte altre caratteristiche a seconda del progettista o del campo d'applicazione. In generale, non esiste un sistema generale perfetto, ma di volta in volta, secondo il contesto d'applicazione e particolari specifiche, sarà necessario progettare un sistema, sfruttando dove possibile i lavori precedenti.
Nel contesto di questo progetto, nel quale si vuole prima progettare e poi realizzare un sistema intelligente per la cura del giardino, le fasi da seguire sono le seguenti:
Definizione degli obiettivi: alla base di una corretta progettazione deve esserci una nitida e ben definita definizione e comprensione degli obiettivi del sistema, ovvero quale servizio il sistema propone di offrire.
Definizione del contesto: descrizione esaustiva del campo di applicazione del sistema intelligente.
Definizione requisisti funzionali, non funzionali e tecnologici: definizione e descrizione dei requisiti, opportunamente classificati, relativi al nuovo sistema. Durante le successive fasi è di fondamentale importanza considerare i requisiti affinché il sistema finale possa effettivamente soddisfare al meglio tutte possibili esigenze.
Individuazione grandezze fisiche: questo è uno degli aspetti legati alla progettazione del sistema più importante, dal quale dipende per buona parte una corretta e buona progettazione del sistema o meno. In questa fase è necessario individuare quali grandezze fisiche (per esempio, temperatura, CO presente nell'aria...) è necessario misurare per ottenere preziose informazioni sul sistema e sull'ambiente circostante. Le grandezze fisiche convolte caratterizzano un dato sistema, permettendo al tempo stesso un corretto funzionamento e il soddisfacimento degli obiettivi prefissati.
Hardware: una volta definite le grandezze fisiche d'interesse, è necessario definire e individuare quali sensori utilizzare per acquisire i dati . Occorre anche definire quali attuatori utilizzare per modificare l'ambiente ed inoltre occorre anche scegliere quale scheda impiegare. In commercio esistono svariati sensori, attuatori ed schede, pertanto è più che lecito interrogarsi su quale sensore utilizzare.
Software:
Interfacce del sistema: deve essere possibile in qualsiasi momento poter visualizzare lo stato del sistema, visualizzare i valori delle grande misurate, impartire comandi al sistema o comunque interagire e scambiare informazioni e dati. Pertanto, è necessario individuare quale dashboard soddisfa meglio le proprie esigenze.
Implementazione del sistema: a questo punto è possibile implementare il sistema. In questo caso l'implementazione coinvolge un pò tutti i vari livelli, coinvolgendo configurazioni sia hardware che software. Verranno descritti, passo dopo passo, tutti gli step da seguire per la realizzazione del sistema. Facendo riferimento alle sezioni Tutorial, saranno trattati tutti gli aspetti caratterizzanti il sistema, dai protocolli di rete al Message Broker, dalla scelta e descrizione dei sensori, fino al codice stesso, ovviamente ben scritto e ben commentato!
“Nel mezzo di ogni difficoltà risiede una opportunità”
Albert Einstein.
Realizzazione di un sistema intelligente per il monitoraggio dello stato di salute delle piante e avviare, quando necessario, il sistema di irrigazione.
Il sistema ha 5 funzionalità base:
Sistema automatico irrigazione: START/STOP automatico del sistema di irrigazione al verificarsi di particolari condizione.
Avvio del sistema di irrigazione da remoto: AVVIO del sistema di irrigazione, da parte dell'utente.
Arresto del sistema di irrigazione da remoto: ARRESTO del sistema di irrigazione, da parte dell'utente.
Avvio o Arresto del sistema di irrigazione da vicino: AVVIO/ARRESTO tramite pulsante fisico
Visualizzazione informazioni: VISUALIZZAZIONE tramite dashboard dello stato del sistema e di eventuali valori di interesse delle grande fisiche rilevate.
Il sistema deve poter operare e svolgere le proprie funzioni per soddisfare le necessità della piante in un contesto sia indoor sia outdoor.
Per contesto indoor si intende l’ambiente interno nel quale il sistema persegue i propri obiettivi. Riguarda il caso di giardinaggio in casa, le serre da giardino, le serre fatti in casa, in generale tutte quelle situazioni con clima controllato. Con clima controllato si intende identificare quelle situazioni dove l'ambiente non può essere influenzato da agenti o fattori esterni, per esempio da vento o precipitazioni.
Per contesto outdoor si intende l’ambiente esterno nel quale il sistema persegue i propri obiettivi. Riguarda tutte quelle situazioni dove non è possibile avere un clima controllato. Pertanto, in questo caso, l'ambiente può essere influenzato da agenti o fattori esterni. È il caso di giardini, orto, piante in ambiente esterno, ovvero tutti i possibili scenari influenzabili dall'esterno.
Oltre al clima controllato, è doveroso analizzare anche l'aspetto legato alla luce. È possibile fare ragionamenti analoghi per aspetti come per la temperatura, l'umidità o altro.
In generale, in un contesto indoor è molto più semplice poter modificare lo stato del sistema. È possibile in un dato momento modificare stato così da influenzare l'ambiente circostante. Basti pensare al caso dell'intensità luminosa di una sorgente o alla temperatura: tramite un banale interruttore è possibile avviare o spegnere una data sorgente.
Invece, in un contesto outdoor molti aspetti derivano da fattori esterni per i quali è impossibile modificarne lo stato. Basti pensare al sole come sorgente luminosa e come sorgente di calore. In questo caso non è possibile avviare o spegnere la sorgente a proprio piacimento ma bisogna sottostare alle leggi della natura. Questo, forse, potrebbe apparire come qualcosa di estremamente negativo; per fortuna non è così. Anzi, in questo tipo di contesto, è possibile sfruttare la periodicità di alcune grandezze per fare delle predizioni future o analizzare particolari comportamenti.
Dashboard valori rilevati di luce interna e la luce esterna dal 3/09/2019 al 21/09/2019. (Grafico realizzato con Grafana)
È possibile, in questo contesto, effettuare una divisione tra i requisiti dell’utente, requisiti non funzionali e i requisiti tecnologici. Questa suddivisione permette, oltre ad una maggiore chiarezza esplicativa, la corretta progettazione e successiva implementazione del sistema.
Di seguito saranno elencati e descritti i requisiti funzionali relativi all’utente:
Sicurezza: è richiesto un ambiente intrinsecamente sicuro ed in grado di affrontare le emergenze;
Comfort: ossia la capacità da parte del sistema di offrire un servizio comodo e semplice da usare;
Benessere: il sistema deve controllare e monitorare lo stato di benessere delle piante. Questo porta dei benefici alla salute della vegetazione sia nel breve che nel lungo periodo;
Connettività: possibilità di connettere in modo rapido ed efficiente il sistema ed eventuali attori del mondo esterno.
Per quanto riguarda le soluzioni tecniche vi sono diversi requisiti non funzionali relativi al sistema stesso:
Integrabilità: questo requisito ha come obiettivo quello di limitare al massimo la necessità di duplicazione di risorse;
Modularità: permette di aggiungere man mano elementi, limitando i costi, ad un sistema funzionante ma inizialmente più semplice;
Espandibilità: questo requisito permette di cogliere le future opportunità legate ai miglioramenti ed alle innovazioni tecnologiche future;
Semplicità d’installazione: fondamentale quando il sistema deve essere installato in un ambiente già esistente e con caratteristiche strutturali poco modificabili.
Hardware non intrusivo;
Un’infrastruttura interoperabile di comunicazione mobile/fissa;
Interfacce Uomo-computer multimodali e con elevata usabilità;
Robustezza e sicurezza tecnologica.
Il sistema deve essere versatile ed espandibile, caratteristiche primarie del settore IoT e AmI. Perfetto per gestire al meglio le nostre piante in casa o in ufficio.
Il sistema deve monitorare e misurare alcune grandezze fisiche per valutare alcuni aspetti come la necessità di avviare o arrestare il sistema di irrigazione. Queste misurazioni consentono al sistema di ottenere informazioni sull’ambiente, in particolare è ritenuto necessario effettuare misurazione per quanto riguarda:
Temperatura relativa dell'aria
Umidità relativa dell'aria
Umidità del suolo
Intensità luminosa
Il benessere della vegetazione dipende da diversi fattori, alcuni però risultano più importanti e da tenere in considerazione.
In letteratura sono presenti diversi indici che consentono di valutare quantitativamente le condizioni della pianta attraverso l'analisi delle grandezze fisiche suddette.
Il sistema calcola lo stato del sistema ed in base a questo attiva o meno il sistema di irrigazione. Risulta di facile comprensione che Smart Garden è molto più di un banale Timer. Basti pensare, nel caso outdoor (prato, giardino, vasi con piante all'esterno, ...) , durante un giorno di pioggia è inutile e poco conveniente avviare il sistema di irrigazione. Un Timer, con un comportamento statico e non adattivo, avvierà il sistema di irrigazione ad una certa ora preimpostata. Il sistema Smart Garden invece sfrutta l'informazioni sull'umidità dell'aria e l'umidità del suolo per determinare che non è necessario avviare il sistema di irrigazione. I vantaggi sono immediati e vanno dal benessere della pianta, al risparmio energetico e risparmio di risorse (acqua...).
Importanti informazioni riguardano l'intensità luminosa. È possibile stabilire se irrigare nelle ore notturne o diurne (è spesso sconsigliata l'irrigazione nelle ore più calde).
Per realizzare questo progetto sono necessari sensori, attuatori, componenti ausiliari, board.
DHT11: sensore che consente di misurare umidità relativa e temperatura dell'aria
Sensors Soil: sensore che consente di misurare umidità del suolo
Fotoresistenza: sensore che consente una misura circa l'intensità luminosa
Relè: controllato dal NodeMCU permette di aprire o chiudere un circuito elettrico
Elettrovalvola/Elettropompa: valvola/pompa per acqua o gas la cui apertura/chiusura è controllata elettricamente.
NodeMCU: microcontrollore con interfaccia Wi-Fi
Breadboard: consente una rapida implementazione del circuito senza la necessità di saldature.
Jumper: cavi di collegamento tra il microcontrollore, breadboard e sensoristica varia.
Button: dispositivo che se sollecitato da una forza esterna consente di aprire o chiudere un circuito elettrico
Led: tramite l'utilizzo di led è possibile ottenere delle informazioni sullo stato del sistema
Tubo per irrigazione: utile per irrigare tutto il necessario
È possibile trovare tutto il necessario nel fantastico kit Smart Garden! Acquistalo subito e realizza il tuo sistema di irrigazione intelligente!
Visitare la sezione tutorial!
Con un controllo intelligente ed automatico del giardino è importante poter controllare il sistema da remoto, così da irrigare anche da lontano (ora è possibile vacanza spensierati ma con le piante sempre verdi!).
Nei tutorial Dashboard viene mostrato come installare, configurare ed infine utilizzare le dashboard su tutti i dispositivi (Windows, Android, iOS). Le dashboard consentono sia di monitorare lo stato del sistema, sia l'invio di comandi per interagire con il sistema e svolgere le azioni desiderate, pertanto rivestono un ruolo molto utile e importante.
Di seguito sono elencati i passi da seguire per una corretta implementazione del sistema. Lo scopo principale di personaliot è di consentire a tutti gli appassionati la realizzazione di un sistema intelligente partendo da zero. Seguenti questi passi chiunque, si desidera sottolineare chiunque, è in grado di farlo. Un utente, magari un pò più esperto, può saltare i passi già noti dell'elenco, specialmente quelli relativi alla fasi di configurazioni.
Vai al Tutorial Configurare nodeMCU e scopri come installare l'IDE Arduino, quali driver e come installarli, configurare IDE Arduino per nodeMCU. Carica inoltre il tuo primo programma!
Vai al link INSERIRE LINK e scarica il codice sorgente per il tuo progetto
All'interno del Kit Garden trovi tutto il necessario per il tuo progetto Smart Garden. Vai alla sezione Tutorial e copri come collegare i vari componenti. Troverai tutte le caratteristiche principali di ciascun componente, il relativo schema di collegamento e il codice d'esempio.
Vai alla sezione Tutorial rete di comunicazione e copri come configurare la rete. Scopri inoltre le caratteristiche della comunicazione nel contesto IoT e AmI. Scopri le potenzialità di MQTT, come utilizzare maqiatto e come collegare la board in rete.
“Le piante e i fiori sono come i nostri progetti: alcuni non si sviluppano, altri crescono quando meno ce lo aspettiamo.”
Romano Battaglia