Controllare Arduino da remoto è stato per me uno dei primi ragionamenti dopo esser rimasto affascinato da tale mondo.
Arduino permette di fare cose fantastiche ma entrando nella vita reale mi son reso conto che molti dei miei progetti di automazione e domotica richiedono il controllo da remoto di Arduino.
Gestire Arduino da remoto non è una cosa banale poiché aggiungiamo allo scenario di da gestire oltre all’hardware, al software due ulteriori elementi:
un sistema di comunicazione appunto per poter interrogare Arduino dall’esterno e un interfaccia attraverso la quale dare i comandi da remoto ad Arduino (banalmente un tablet o un cellulare).
Abbiamo 4 vie percorribili per comandare Arduino da remoto:
- creare un sistema radio dedicato: questa soluzione ha lo svantaggio di dover creare un infrastruttura fisica dedicata al trasporto del dato. Detto in soldoni dobbiamo occuparci di creare il sistema di trasmissione e ricezione dei dati.
Personalmente la ritengo sempre l’ultima “ratio” da intraprendere perché ci porta a doverci occupare di un elemento di complessità aggiuntiva; ovviamente ci sono taluni casi in cui è l’unica soluzione percorribile o comunque viene valutata come la migliore.
Esistono già dei sistemi di trasmissione/ricezione per Arduino quindi il livello di complicanza resta gestibile anche se è bene ricordare che si inserisce un ulteriore elemento.
Solitamente per gestire questi sistema si fa riferimento a schede tipo il Modulo Radio Wifi 2.4ghz Nrf24l01, ne esistono anche di molto potenti con antenne direzionali che in condizioni ottimali Vantaggio di questa soluzione è come questa che ho acquistato in passato.
La sicurezza e la portabilità: di fatto creiamo una rete dedicata con un livello di sicurezza superiore ed occupandoci noi della parte di trasmissione e ricezione del segnale siamo nella situazione di poter portare il segnale dove ci serve e dove il nostro wifi non arriva. Nel mio caso l’ho utilizzata per poter comunicare con un cancello che non era coperto dal wifi di casa.
Attenzione se scegliamo una soluzione di questo tipo dovremo poi occuparci anche di tutto cio’ che concerne il pannello di controllo che va creato sul nostro dispositivo. Dobbiamo occuparci di creare una user interface e farla funzionare il che è abbastanza complicato, ci vogliono competenze specifiche.
- connettere i sistemi tramite rete mobile: si tratta di una soluzione molto simile alla precedente e che è ottima solo in talune circostanze particolari come dispositivi che devono lavorare stand alone e che non si ha altro modo per connetterli ma presenta il grosso svantaggio del costo.
Ogni dispositivo connesso su rete mobile ha un costo hardware per il modulo GSM che lo porta ad esser piuttosto costoso.
Immaginate per esempio dover controllare 5 finestre di casa con 5 dispositivi GSM; il costo dell’impianto sara 30 volte più costoso che lo stesso sistema gestito via radio o wifi.
Di contro, per comandare e visualizzare i dati della caldaia della casa di montagna puo’ essere un ottima soluzione.
- utilizzare la rete wifi di casa per trasportare tutte le richieste di informazioni da e verso le schede. Qui in parole povere ci colleghiamo al nostro Wifi con le credenziali del router e aggiungiamo gli oggetti alla rete di casa. Gli oggetti sono nelle condizioni di poter parlare con il nostro cellulare (collegato al wifi) o con il notebook.
A questo punto c’è pero’ un problema: nel momento in cui usciamo fisicamente dalla rete di casa diviene impossibile comunicare con gli oggetti poiché ci troviamo su due reti diverse; noi siamo nel WEB e loro sono nella rete WIFI di casa.
Per farli parlare serve quindi un sistema che metta in contatto questi due ambienti.
Per portare avanti una soluzione di questo tipo dovrete prevedere degli IP statici acquistandoli dal vostro fornitore di connettività o da siti dedicati oltre che sviluppare.
- utilizzare un fornitore terzo che curi la parte di intrecciamento alla rete. Quest’ultima soluzione è quella che prediligo perché mi sgrava di un elemento complesso e per me di poco valore durante la creazione dei progetti e mi consente di rimanere concentrato sul risultato finale ossia far si che i miei progetti possano essere comandati e possano mandarmi informazioni ovunque mi trovi nel mondo.
In questo caso la prima parte del set up per controllare Arduino da remoto è identica al punto sopra: bisogna dare gli accessi del wifi di casa alla scheda, ma poi grazie all’inclusione di apposite librerie nel progetto sarà il sistema a gestire per noi la connessione verso il nostro progetto ovunque noi ci troviamo offrendoci spesso e volentieri dei tool come grafici, bottoni, leve e quant’altro facilmente integrabili (spesso basta una riga di codice) con il nostro progetto.
Personalmente utilizzo da mesi Blynk: è un servizio molto economico che mi supporta in tantissimi passaggi per connettere in wifi i miei oggetti occupandosi di aspetti che non voglio gestire in prima persona perché per me complessi ed offrendomi un ottima interfaccia totalmente personalizzabile in base alle mie esigenze.
Altri servizi simili sono Cayenne di cui ho visto delle buone recensioni ma del quale non ho mai provato le funzionalità, oppure il nuovo Arduino cloud utilizzato insieme alla libreria MQTT.