Controllare Arduino via WiFi con Android o iOS

Arduino UNO è un microcontrollore molto diffuso, ma ha una grossa mancanza che di questi tempi inizia a far sentire il suo peso: non è possibile comandarlo da remoto senza dover collegare dispositivi aggiuntivi. Questo non sarebbe un grosso problema in realtà, se non fosse che oltre a dover comprare un componente che abiliti la comunicazione (come un dispositivo bluetooth o un modulo WiFi), è necessario implementarne la gestione da entrambi i lati (Arduino e dispositivo di controllo). Questo in alcuni casi potrebbero allungare di molto il tempo di sviluppo di progetti che sulla carta dovrebbero essere molto più semplici e veloci.

Per risolvere questo problema ci vengono in aiuto strumenti molto utili. Il primo è un'applicazione Android chiamata Blynk che permette di controllare da smartphone un dispositivo dotato di WiFi e il secondo è un Adapter basato sull'ormai diffusissimo modulo WiFi ESP8266.

L'Adapter è acquistabile su eBay al seguente indirizzo: LINK EBAY. Questo è fornito insieme ad un codice di reset e a due librerie, per Arduino UNO e per Arduino Mega. In questo articolo faremo riferimento alla versione per Arduino UNO ma comportamento e configurazione sono di fatto identici.

Blynk

Blynk è un'App, disponibile per Android e iOS, che ci permette di sviluppare in pochi minuti un'interfaccia mobile per dispositivi dotati di WiFi come certi Arduino o RaspberryPi. L'App, nata su kickstarter, è pensata per poter scambiare messaggi con la scheda al fine di raccogliere dati o attivare/disattivare certe uscite fisiche. Si possono creare dei progetti composti da una serie di widget (bottoni, grafici, slider ecc) che diventano il nostro pannello di controllo. I progetti si possono poi condividere tramite un QR code che può essere letto da altri dispositivi tramite l'App. Insomma, uno strumento molto utile, che combinato all'Adapter WiFi, ci offre la possibilità di interfacciarci con Arduino in pochissimo tempo.

Hello Blynk

Installiamo l'App sul nostro smartphone e creiamo un nuovo progetto. Diamogli un nome e scegliamo come modello hardware "ESP8266". In fase di creazione del progetto Blynk ci fornirà un token di autorizzazione, annotiamocelo perché dovremo inserirlo nell'Adapter. Creato il progetto potremo scegliere tra una serie di widget per personalizzare il nostro progetto. Nella versione gratuita di Blynk il numero di widget utilizzabili è limitato da un sistema a crediti ma i widget a disposizione sono più che sufficienti per adesso.
Tipicamente un widget agisce su uno o più PIN di Arduino o su PIN virtuali all'interno dell'App.

Come prima cosa aggiungiamo un widget Terminal. Questo ci permetterà di inviare comandi tramite comunicazione seriale all'Adapter e soprattutto ricevere informazioni utili dall'Adapter stesso. Configuriamo il widget con il PIN virtuale V0 in input, scegliamo PUSH sutto la voce "Frequenza" e confermiamo.

Inviando alcuni comandi prestabiliti saremo in grado di interrogare l'Adapter sulla sua configurazione. Di seguito i comandi disponibili:

  • setbaudrate,N: imposta il Baud Rate dell'Adapter pari a N. I valori possibili sono 9600, 14400, 28800, 38400, 57600, 115200 e 230400.
  • getbaudrate: risponde con il Baud Rate dell'Adapter.
  • ip: risponde con l'IP dell'Adapter.
  • signal: fornisce la potenza del segnale WiFi.
  • resetcode: ritorna il codice di reset dell'Adapter.
  • reset: riporta l'Adapter alle impostazioni di fabbrica.

Configurazione Adapter

Per alimentare l'Adapter colleghiamo i PIN VCC e GND rispettivamente sui PIN 5V e GND di Arduino. Accendiamo Arduino e vedremo comparire tra le reti WiFi disponibili una rete chiamata "Adapter_xxxx". Colleghiamoci con il dispositivo Android e visitiamo l'indirizzo del dispositivo 192.168.4.1 (questo primo passo di configurazione potete farlo anche tramite il browser del PC se preferite). Ci verrà presentato un menù di configurazione tramite il quale possiamo connettere l'Adapter alla rete di casa sotto la voce "Configure WiFi" e impostare quale progetto Blynk collegare con l'Adapter sotto la voce "Blynk Code".

Per prima cosa colleghiamo il progetto di Blynk appena creato. Ci verrà chiesto il codice di autorizzazione del progetto ricevuto da Blynk, inseriamo e digitiamo il codice di sicurezza di default "1234". Torniamo indietro e selezioniamo il menù "Configure WiFi". Qui possiamo scegliere la rete a cui collegare l'Adapter (per la comunicazione Android - Arduino, dovremo avere entrambi i dispositivi collegati alla stessa rete) ed inseriamo le credenziali di accesso. Come controllo aggiuntivo, è richiesto anche qui l'inserimento del codice di sicurezza, quindi inseriamo il codice di default "1234" e salviamo. Riavviamo l'adapter e questo si collegherà in automatico alla rete.

Blynk e Arduino

Per far partire l'applicazione su Blynk, pigiamo sul pulsante triangolare in alto a destra e potremo iniziare ad interagire con il nostro Arduino. Prima però vediamo di arricchire il nostro progetto con dei nuovi widget. Inseriamo due bottoni ed uno slider. Mappiamo il primo bottone sul PIN virtuale V11 in modalità PUSH. Facciamo lo stesso con il secondo bottone ma mappiamolo sul PIN virtuale V2. Lo slider mappiamolo sul PIN virtuale V3 e impostiamo un range da 0 a 255. Il tasto "send on release" possiamo abilitarlo o disabilitarlo a piacimento. Aggiungiamo infine il widget di un LED ed impostiamo sul PIN virtuale V12.
Tramite questo progetto potremo accendere e spengere un LED su Arduino utilizzando i due bottoni e regolarne la luminosità tramite lo slider. Il widget LED inoltre ci indicherà se il LED fisico è acceso o spento.

Su Arduino connettiamo l'Adapter nel seguente modo:

Adapter GND -> Arduino GND
Adapter VCC -> Arduino 5V
Adapter TX -> Arduino 11
Adapter RX -> Arduino 10

Aggiungiamo inoltre un LED tra il PIN 9 e GND. Il codice per Arduino è il seguente:

Il codice è piuttosto semplice: quando viene premuto un pulsante su Blynk viene inviato un messaggio ad Arduino, si controlla quale PIN virtuale è interessato e si modifica lo stato del LED fisico di conseguenza. Viene inoltre inviato un messaggio indietro all'App per accendere o spengere il LED virtuale sul nostro display.

Come potete vedere con questi due strumenti controllare Arduino da smartphone diventa veramente facile e veloce. Sono sicuro che troverete un sacco di idee interessanti per sfruttarne a pieno le potenzialità. Per eventuali domande, come sempre chiedete nei commenti.

Adapter: LINK EBAY

federicobecattini
Dottorando in computer vision. Appassionato di informatica e elettronica fai da te, specialmente se per applicazioni futili. Tormenta i suoi amici e colleghi con idee geniali spesso non riconosciute come tali.
Controllare Arduino via WiFi con Android o iOS ultima modifica: 2017-04-26T11:19:38+00:00 da federicobecattini


Advertisment ad adsense adlogger