Qualche settimana fa mi è arrivata un’arduino WiFi shield originale ed ho subito provato uno degli esempi di connessione presenti nell’IDE 1.0.5
L’arduino wifi shield si è connessa subito al mio router WiFi Alice Voip usando la cifratura di tipo WPA2-AES, solitamente non è semplice connettere device a router che utilizzano questo tipo di chiave.
Lo sketch che ho utilizzato per eseguire il test è:
#include <SPI.h> #include <WiFi.h> char ssid[] = "XXXXXX"; // your network SSID (name) char pass[] = "YYYYYY"; // your network password int status = WL_IDLE_STATUS; char servername[]="google.com"; // remote server we will connect to WiFiClient client; void setup() { Serial.begin(9600); //disable SD SPI pinMode(4, OUTPUT); digitalWrite(4, HIGH); Serial.println("Attempting to connect to WPA network..."); Serial.print("SSID: "); Serial.println(ssid); status = WiFi.begin(ssid, pass); if ( status != WL_CONNECTED) { Serial.println("Couldn't get a wifi connection"); // don't do anything else: while(true); } else { Serial.println("Connected to wifi"); Serial.println("\nStarting connection..."); // if you get a connection, report back via serial: if (client.connect(servername, 80)) { Serial.println("connected"); // Make a HTTP request: client.println("GET /search?q=arduino HTTP/1.0"); client.println(); } } } void loop() { }
in cui ovviamente XXXXXX ed YYYYYY sono rispettivamente il SSID della mia Wifi e la relativa password.
Tuttavia dopo la connessione, correttamente eseguita, la pagina google non viene richiamata e la chiamata GET fallisce.
Ho quindi eseguito una ricerca ed ho trovato una versione firmware aggiornata per l’arduino wifi shield, la versione 1.1.0 mentre da una verifica del firmware presente nella shield in mio possesso la versione risulta la 1.0.0
Update firmware dell’arduino wifi shield
Come sai gli aggiornamenti firmware sono sempre delicati perchè vanno ad intervenire direttamente sulle componenti più a basso livello dei componenti elettronici.
Prima di fare un aggiornamento del firmware ti consiglio di documentarti bene sugli effetti che può causare, in generale, alla tua shield; nel caso della wifi shield è possibile che la shield non sia più riconosciuta dall’arduino e che sia quindi inutilizzabile.
La procedura di Update è descritta in un link sul sito ufficiale arduino.cc insieme al link che rimanda al codice da scaricare per eseguire l’update.
Non ho intenzione di riscrivere quella pagina per cui ti lascio seguire le istruzioni ufficiali per scaricare il firmware wifi 1.1.0 e i componenti che ti servono per seguire la procedura; riporto solo le modifiche che io ho eseguito al mio sistema per consentire alla procedura di update di andare a buon fine.
Download firmware 1.1.0
Se hai scaricato il firmware 1.1.0 da questo link ti sarai trovato un file .zip contenente molti file, decomprimilo in una dir a tuo piacimento, non ti serve tutto il software scaricato ma solo quanto contenuto sotto firmware/wifishield
posizionati sotto la dir in cui hai decompresso il file .zip e copia la dir wifishield nel path corrispondente alla tua installazione dell’IDE arduino 1.0.5, nel mio caso:
Collega l’arduino wifi shield
L’arduino wifi shield è dotato di un connettore micro usb che puoi utilizzare proprio per eseguire l’update del firmware wifi
collega il tuo cavo usb alla shield wifi. Prima di posizionarti nella dir firmware/wifishield che hai appena copiato è necessario, solo sotto MAC OS X Maverick, che cambi il nome della dir di installazione Arduino, nel mio caso da Arduino 1.0.5.app l’ho cambiata semplicemente in arduino
posizionati nella dir /Applications/arduino/Contents/Resources/Java/hardware/arduino/firmwares/wifishield/scripts/ ed esegui il comando descritto nella procedura ufficiale di update:
alla fine della prima parte dell’aggiornamento ti verrà chiesto di premere il tasto reset della shield per proseguire ed alla fine ti verrà chiesto nuovamente di ripremerlo prima di scollegare la shield.
Se non leggi errori nella fase di update è andato a buon fine ed ora sulla tua arduino wifi shield c’è il nuovo firmware 1.1.0 che corregge gli errori di connessione alle pagine HTML.
Buon WiFi !!!
4 commenti
Vai al modulo dei commenti
Seguendo le istruzioni “ufficiali”, anche con le tue integrazioni (peraltro molto utili) ottengo come risposta
“To access to the USB devices correctly, the dfu-programmer needs to have the root permissions.”
Cosa significa?
Autore
Ciao Massimo,
significa che devi essere utente “root” per eseguire l’update, lo stai facendo su Mac o su Linux?
Ciao MAuro,
intento complimenti per il sito! sto provando ad aggiornare il firmware della wifi sheld e la cosa mi sta facendo impazzire!!!! sono arrivato alla fine della procedura che hai descritto ma non capisco alcune cose:
1) devo usare il “terminale”???
2) io uso mac da poco, come si cambia directory?? il comando CD non funziona
3) il file ArduinoWifiShield_upgrade_mac.sh si apre nell’IDE di arduino che però non lo compila…
insomma come si fa????
Autore
Ciao Michele,
l’update firmware è una operazione pericolosa se non hai solide conoscenze di linux e di interfaccia a line di comando, rischia di renderti la scheda inutilizzabile.
Se hai letto bene l’articolo avrai notato che va eseguito tutto da terminale e non da IDE.
Inoltre il comando “cd” ( change directory ) serve proprio a cambiare directory, se non ti funziona è perché commetti qualche altro errore e ti consiglio di approfondire prima questo aspetto e poi tentare l’update del firmware della wifi.