Nell’ultimo decennio si sono sviluppate moltissime piattaforme hardware orientate all’Internet of Things in tutte le sue forme: domotica, monitoraggio, applicazioni industriali, automotive e tanto altro. Infatti, grazie all’utilizzo di schede come Arduino, ESP32, Raspberry Pi o le tante altre soluzioni dei diversi produttori è diventato estremamente semplice realizzare degli oggetti connessi efficienti e a costo ridottissimo per qualsiasi applicazione sia essa indoor che all’aperto. La possibilità di integrare i più svariati sensori e protocolli di comunicazione ha permesso di poter realizzare qualsiasi Sensor Network, sia cablata che wireless. In questa serie di quattro articoli andremo a progettare una WSN (Wireless Sensor Network) per il monitoraggio dei principali parametri ambientali all’interno della propria casa. In questo articolo affronteremo la quarta parte: l’analisi dei possibili punti di miglioramento di questo progetto.
Introduzione
Nelle precedenti parti di questa serie abbiamo affrontato la progettazione completa di una rete di sensori di tipo wireless. L’architettura di progetto (riportata in Figura 1) promossa nella prima parte è basata sull’utilizzo di sole quattro schede elettroniche:
- 3 schede per realizzare i nodi di acquisizione e basati sulla scheda AZ-Envy (Figura 2), una scheda di sviluppo molto versatile, economica e già dotata di sensori quali il sensore di gas MQ-2 e un sensore di temperatura e umidità relativa. Con questa scheda, nella seconda parte, abbiamo realizzato i nodi di acquisizione.
- 1 scheda Arduino MKR WiFi 1010 (vedi Figura 3) con la quale abbiamo realizzato il nodo di data-aggregate nella terza parte.
Con le prime tre parti di questo progetto abbiamo di fatto realizzato una semplice rete di sensori basata sulla connessione Wi-Fi domestica. Per lo scambio di informazioni ci siamo affidati al protocollo UDP che di fatto ci garantisce di poter lavorare agevolmente senza tutti i controlli che impone il protocollo TCP. In questa quarta parte affronteremo invece tutti gli aspetti di miglioramento e potenziamento di questa rete per garantire maggiori funzionalità e migliori prestazioni. Andremo dunque a trattare nove macro tematiche quali:
- Arduino IoT Cloud
- Implementazione delle funzioni di risparmio energetico
- Sistemi di connessione Wi-Fi esterni
- Comunicazioni cellulari
- Scalabilità dei sensori
- Sistemi di attuazione per la domotica
- Piattaforma di gestione domotica
- Algoritmi di data-fusion
- Meccanismo di sincronizzazione tra i nodi
1. Arduino IoT Cloud
Come già accennato, il nostro progetto di Wireless Sensor Network presenta differenti punti di sviluppo futuri. Il primo tra questi è l’integrazione con la piattaforma IoT di Arduino. Questa piattaforma nasce all'interno della community proprio per facilitare lo sviluppo di applicazioni IoT nell'ambito makers. Senza dilungarmi troppo su come funziona e come si può progettare un’applicazione per IoT Cloud (infatti, puoi trovare una guida completa in questo articolo del blog) focalizziamoci sui requisiti per poter implementare anche questa funzionalità. Se decidiamo di realizzare un progetto free, allora potrà essere fatto solo utilizzando le schede Arduino compatibili con la piattaforma in quanto l'iscrizione free non consente l'utilizzo di schede di terze parti come ad esempio i moduli ESP32. Tra le schede che risultano pienamente compatibili troviamo anche la MKR WiFi 1010 che appositamente abbiamo scelto per fare il nostro nodo di data-aggregate. Realizzare un'applicazione IoT (chiamata Things all'interno della piattaforma) è molto semplice ed immediato. Grazie ai vari tool è possibile realizzare un'interfaccia grafica per monitorare e mantenere sotto controllo le variabili acquisite dalla scheda e dalla rete di sensori.
2. Implementazione delle funzioni di risparmio energetico
Nella realizzazione della nostra rete non abbiamo mai introdotto concetti come i consumi energetici. Di fatto, abbiamo utilizzato le schede di sviluppo hardware "nude e crude" e implementato un software per i nodi che rimane sempre attivo nonostante invii messaggi ogni 5 secondi. Anziché utilizzare questa metodologia di sviluppo e funzionamento è possibile invece adottare delle opportune tecniche e quindi implementare i cosiddetti meccanismi di duty-cycling. Il duty-cycling (che vagamente ci riconduce al concetto di duty cycle di un'onda quadra) è una tecnica in cui un nodo è periodicamente messo in modalità di sospensione per ottenere una riduzione efficace dei consumi energetici come anche della dissipazione nelle reti di sensori wireless (WSN). Per applicare queste tipologie di comportamenti, in genere bisogna ricorrere a specifiche caratteristiche dei microcontrollori o delle schede di sviluppo utilizzate. Nel nostro caso, per i sensori basati sulla scheda AZ-Envy abbiamo a diposizione ben 3 modalità di funzionamento degli ESP8266 per gestire il consumo energetico: modem sleep, light sleep e deep sleep.
3. Sistemi di connessione Wi-Fi esterni
Il progetto che abbiamo realizzato si basa sull'utilizzo di una rete Wi-Fi sempre attiva (abbiamo definito nel corso del progetto una rete Wi-Fi "domestica" in quanto sapevamo esserci un modem-router in grado di gestire tutte le comunicazioni e l'assegnazione degli indirizzi IP). In casi particolari potrebbe non essere disponibile una struttura Wi-Fi a cui connettersi, come ad esempio all’esterno. In questo caso possiamo pensare di modificare il funzionamento del nodo di data-aggregate per farlo lavorare nella modalità Access Point anziché nella modalità Station. Implementare questa modalità di funzionamento è estremamente semplice facendo ricorso alla libreria WiFi_NiNa e la scheda Arduino MKR WiFi 1010 che stiamo usando come nodo di data-aggregate. Infatti, basta semplicemente inserire all'interno della funzione di setup() la chiamata alla funzione WiFi.beginAP(ssid, pass) per poter creare una nuova rete Wi-Fi a cui viene assegnato il nome “ssid” e la password di accesso “pass”. Nella maggior parte dei casi, questa modalità di AccessPoint è utilizzata per la realizzazione dei Web Server.
4. Comunicazioni cellulari
Quando si lavora alla progettazione di una WSN per applicazione in un ambiente outdoor come può essere quello urbano o nel campo dell’agricoltura, allora sarà sicuramente necessario trovare un punto di accesso alla rete internet per poter controllare la WSN da remoto. Per farlo, avremo sicuramente necessità di una comunicazione cellulare a lungo raggio, dunque GSM, 3G o 4G. Utilizzando schede come la MKR GSM 1400 il lavoro ci viene di gran lunga facilitato. La scheda, simile alla MKR WiFi 1010 che utilizziamo, è sempre dotata di un processore Arm® Cortex®-M0 a 32 bit SAMD21 e, grazie al modulo SARA-U201 (prodotto dalla u-blox) fornisce la connettività nelle bande del segnale cellulare. Oltre a questa soluzione, ne esistono altre come SigFox, LoRaWAN e la connessione 5G che nei prossimi anni sarà sempre più presente sul mercato e tra i prodotti di sviluppo. Nonostante l’enorme varietà di soluzioni a disposizione per le connessioni outdoor a lungo raggio, non esiste la tecnologia perfetta e in ogni applicazione i progettisti devono essere in grado di scegliere ed adottare la soluzione che più si adatta alle proprie esigenze sia prestazionali che economiche.
5. Scalabilità dei sensori
Durante tutta la serie abbiamo detto e ridetto che il progetto della WSN è scalabile in quanto possiamo in tutta facilità aggiungere funzionalità, nuovi nodi, incrementare la quantità e la tipologia di grandezze monitorate e via dicendo. Per i nodi della rete abbiamo utilizzato la scheda AZ-Envy che si è mostrata un prodotto top come rapporto prestazioni/prezzo. Ovviamente, le prestazioni fornite sono per makers e non per livelli professionali o comunque limitate alla misura di GAS e temperatura. Tuttavia, in commercio esistono molte altre schede che possono essere utilizzate e integrate all’interno del nostro progetto. Basti pensare già alle schede basate su ESP32 (fratello maggiore del chip ESP8266 presente sulle AZ-Envy) come ad esempio la scheda di sviluppo ESP32-MeshKit-Sense dotata di un sensore digitale di temperatura e umidità (modello HTS221 prodotto da STMicroelectronics), un sensore di intensità di luce ambientale (BH17 50FVI) e un sensore di prossimità e gesture (APDS-9960).
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2121 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.