Vuoi sviluppare un progetto di domotica e hai bisogno di una scheda che oltre a gestire dei sensori possa anche collegarsi alla tua rete Wi-Fi domestica, come fare?

In giro sul web puoi trovare molte soluzioni e talvolta non è facile capire quale può fare al caso tuo.

Personalmente la prima soluzione che ti presento è la Arduino Uno Wi-Fi Rev2.

Il suo principale punto di forza è il fatto di avere in un unico oggetto delle dimensioni di una carta di credito un sistema che unisce le potenzialità di Arduino alla connettività senza fili.

Prima di continuare voglio porre l’attenzione sull’architettura hardware di questa scheda: è basata sul microcontrollore ATMEGA4809, ciò la rende fondamentalmente incompatibile con codice di basso livello scritto per la Arduino Uno, a sua volta basata su ATMEGA328P.

Se la tua intenzione quindi è quella di recuperare un vecchio progetto Arduino Uno aggiungendo connettività WiFi, fai attenzione al tipo di librerie che hai utilizzato.

Vediamo più da vicino come fare lo startup di questa board.

Cos’è Arduino

 Arduino è una piattaforma hardware composta da una serie di schede elettroniche dotate di un microcontrollore. È stata ideata e sviluppata in data 2003 da alcuni membri dell’Interaction Design Institute di Ivrea come strumento per la prototipazione rapida e per scopi hobbistici, didattici e professionali.

A differenza di altre schede della stessa casa, la Arduino Uno Wi-Fi Rev2 monta un modulo WiFi integrato ESP8266 ed è basata sull’ATmega4809. Il modulo ESP8266 è un SoC (System on a Chip) con uno stack TCP/IP integrato che permette di connettersi a reti Wi-Fi o addirittura di fungere da access point.

Prima di procedere ti consiglio vivamente di acquistare, oltre alla board acquistabile qui anche un cavo USB come questo per poter connettere la scheda al tuo PC.

Prepariamo l’IDE

Come tutte le schede Arduino, anche la Uno Wi-Fi è completamente integrata nell’IDE di sviluppo ufficiale.
Prima di fare il setup di questa scheda, procedi ad installare il tool di sviluppo da questo link, scaricando l’installer compatibile con il tuo sistema operativo.

Installare IDE

Di seguito ti propongo uno dei tanti video presenti in rete che ti mostrano come installare passo passo il tool di sviluppo di Arduino:

Terminata l’installazione è necessario scaricare un pacchetto di upgrade per il riconoscimento delle schede Arduino Wi-Fi.
È possibile che la versione da te installata sia già in grado di riconoscerle, in ogni caso per completezza ti mostro quali sono i passi da compiere per avere l’IDE pronto all’uso.

Lancia dunque l’IDE di Arduino, ti ritroverai una schermata simile a questa:

Clicca su Strumenti > Scheda: “Arduino/Genuino Uno” > Gestore schede…:

Nella barra di ricerca della finestra che ti comparirà digita la seguente stringa di testo: Arduino&Uno&WiFi&Rev2.

Così facendo filtriamo il pacchetto di upgrade che ci servirà per poter programmare la nostra scheda.

Se non risulta già installato, clicca sul pulsate Installa.

Come ultimo step per preparare il nostro IDE all’utilizzo della board, dobbiamo installare le librerie WiFiNINA che semplificano l’utilizzo della scheda dal punto di vista delle connessioni WiFi.

Per fare questo, clicca su Strumenti > Gestione librerie… e poi scrivi nella barra di ricerca WiFiNINA. Clicca su Installa e attendi il termine della procedura.

Connettiamo la scheda!

A questo punto, riavvia l’IDE di Arduino e successivamente connetti la tua scheda al PC con il cavo USB dedicato.
Sempre dal menù, clicca su Strumenti > Scheda: “Arduino/Genuino Uno” > Arduino Uno WiFi Rev2:

Infine selezioniamo la porta di comunicazione corretta così da poter caricare qualsiasi sketch, per far questo clicchiamo su Strumenti -> Porta e selezioniamo la COM che riporta la dicitura tra parentesi Arduino Uno WiFi Rev2.

Connettiamoci!

Bene, adesso abbiamo tutto pronto per poterci collegare alla nostra rete wireless. Copia e incolla nel tuo IDE questo sketch avendo cura di cambiare i parametri

  • ssid: ovvero il nome della tua rete Wi-Fi;
  • pass: la password di accesso;
Copy to Clipboard

Come avrai avuto modo di osservare, il programma oltre a collegarsi alla tua rete wireless trasforma la scheda arduino in un vero e proprio web server.

Dall’IDE di sviluppo, una volta incollato lo sketch procediamo a caricarlo nella nostra scheda.
Clicca sul pulsante Carica e attendi che il processo di caricamento sia completato.

Possiamo aprire il monitor seriale così da visualizzare l’output stampato a schermo e verificare il corretto funzionamento della nostra scheda.

Clicca su Strumenti > Monitor seriale:

Se tutto è andato a buon fine dovresti vedere una finestra che riporta l’IP assegnato dal tuo router alla scheda Arduino:

Web Server

Nell’esempio che ti riporto, siamo riusciti a collegarci con successo alla nostra rete wlan-ap e il router ci ha assegnato un indirizzo IP pari a 192.168.1.103.

Se proviamo adesso a collegarci a questo indirizzo IP da un browser di un PC connesso alla stessa rete, questo è il risultato che otteniamo:

Lo sketch caricato ha trasformato la nostra board in un server web che risponde attivamente alla porta standard HTTP (80). Collegandoci da browser all’indirizzo IP della scheda dunque abbiamo inviato una richiesta HTTP al web server che ci risponde con una pagina nel quale sono riportati i valori di 6 input analogici disponibili sulla scheda stessa.

Conclusioni

La Arduino Uno WiFi, nella sua seconda revisione, rappresenta un buon compromesso per chi vuole affacciarsi al mondo dell’IoT. A scapito di un prezzo non proprio basso, offre ottime prestazioni e una soluzione di connettività senza fili completamente integrata.

Cosa da notare, molto importante, è la ridotta compatibilità con le librerie standard di Arduino.

A differenza di quanto il nome possa far credere, l’architettura della ATMEGA4809 su cui questo modello si basa è molto differente dall’architettura della Uno. Ciò implica che alcune delle librerie usabili sulla Arduino Uno che fanno uso di registri e timer avranno difficoltà a compilare su questa board.