Arduino UNO e WiFi Shield

Salve a tutti ragazzi,
sono un nuovo utente per il mondo Arduino quindi scusate se le mie domande saranno “banali”.
Possiedo un Arduino UNO con WiFi Shiedl.
Ho fatto uno sketch che ricerca una Rete WiFi protetta e si connette alla stessa, la rete è quella resa disponibile dal mio cellulare che fa da Hotspot Personale.
Questo il codice:

#include <WiFi.h>

char ssid[] = "xxx";     //  your network SSID (name) 
char pass[] = "xxx";    // your network password
int status = WL_IDLE_STATUS;     // the Wifi radio's status

void setup() {
  // initialize serial:
  Serial.begin(9600);

  // attempt to connect using WPA2 encryption:
  Serial.println("Connessione alla Rete Wi-Fi WPA");
  status = WiFi.begin(ssid, pass);

  // if you're not connected, stop here:
  if ( status != WL_CONNECTED) { 
    Serial.println("Non posso connettermi alla Rete Wi-Fi WPA");
    while(true);
  } 
  // if you are connected, print out info about the connection:
  else {
    Serial.println("Connesso alla Rete");
    
  }
}

void loop() {
  // do nothing
}

Il mio progetto vuole essere rilevare temperatura e umidità tramite il relativo sensore e scrivere questi dati in un Server SQL tramite una pagina Web col metodo GET.
Una volta che Arduino si è connesso alla rete come chiamo la mia pagina Web passando i parametri:
http://Sito/PaginaWeb.asp?Parametro1&Parametro2

Grazie anticipatamente a tutti e Buon Lavoro.

[EDIT]per la sicurezza ho cancellato Utente e Password del Wireless nello sketch Ciao Uwe [/EDIT]

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare. Altrimenti c'e' il rischio di avere il codice mal visualizzato (soprattutto in presenza di parentesi quadre)

Salve, mi chiamo Cristian e scrivo da Palermo. Lavoro in una nota società di Telecomunicazioni e mi occupo di sviluppo software. Di recente sto facendo qualche esperienza con Arduino ed essendo alle prime armi per abbracciare un pò tutto mi sono prefissato di realizzare una piccola stazione meteo che scrive in un dBase SQL i dati rilevati per una consultazione da Web e per gestire i parametri di casa, In poche parole poter realizzare una sorta di cronotermostato con Arduino consultabile da Web. Dopo giorni di prove mi sembra di aver capito che l'IDE 1.0.6 pretende che si aggiorni il firmware della WiFi Shield perchè potrebbe non funzionare cotrrettamente. Anzitutto è plausibile? Inoltre, ho provato ad aggiornare il firmware dello Shield seguendo tra l'altro la procedura ufficiale ma non mi viene vista la device. Cosa faccio? Sono fermo e ho tanta voglia di sperimentare...

Dell'aggiornamento dello shield WiFi se ne è parlato una infinità di volte e ... [u]una semplice ricerca ricerca qui sul forum[/u] ti avrebbe portato alla procedura corretta ed ampiamente collaudata (... ma a fare ricerche si fatica) ]:D ]:D ]:D

La trovi QUI e ... garantito che funziona (... a parte messaggi incomprensibili che Windows ogni tanto si inventa ... vedi QUESTO thread).

Guglielmo

Grazie Gugliemo e scusa se non ho cercato prima. Ho fatto la procedura e in effetti ha funzionato correttamente! L'unico neo è che l'esempio mi riconosce sempre una versione del firmware diversa dalla 1.1.0 Quindi credo di avere caricato lo stesso firmware. Ma dove trovo la versione aggiornata?

crileone: Ma dove trovo la versione aggiornata?

Se hai seguito le istruzioni [u]alla lettera/u ed hai correttamente caricato la versione inclusa in Arduino (C:\Program Files\Arduino\hardware\arduino\avr\firmwares\wifishield.....) hai la versione aggiornata. Non mi risulta ce ne siano altre.

Guglielmo

Ho seguito alla lettera ma io non ho la cartella indicata, ho l'IDE 1.0.6

Praticamente il mio harddisk contiene: Program Files => Arduino => hardware => arduino e da qui manca la cartella avr e successive

Dunque cerco di fare un pò di chiarezza:

Anzitutto ho trovato la cartella firmwares che non sta dentro avr. Ho caricato i files seguendo la procedura indicata e anche stavolta ha aggiornato con successo. Ma se carico l'esempio dall'IDE 1.0.6 WiFiWebClient anzitutto l'if

if ( fv != "1.1.0" ) Serial.println("Please upgrade the firmware");

viene reputato vero e quindi mi stampa di aggiornare il firmware perchè lo vede con versione diversa dalla 1.1.0

E infine la riga di codice:

if (client.connect(server, 80)) ...

viene reputata vera quindi non connessa e non apre la pagina web di google. Cosa sbaglio? Ovviamente sto provando a connettermi tramite l'hotspot del mio iPhone...

crileone: Anzitutto ho trovato la cartella firmwares che non sta dentro avr. Ho caricato i files seguendo la procedura indicata e anche stavolta ha aggiornato con successo.

Vero, ho verificato in questo momento (... io però sono su Mac OS X, ma dovrebbe essere la stessa cosa), e il percorso del FW ora, su Win, dovrebbe essere : C:\Program Files\Arduino\hardware\arduino\firmwares\wifishield...

crileone: Ma se carico l'esempio dall'IDE 1.0.6 WiFiWebClient anzitutto l'if

if ( fv != "1.1.0" ) Serial.println("Please upgrade the firmware");

viene reputato vero e quindi mi stampa di aggiornare il firmware perchè lo vede con versione diversa dalla 1.1.0

Questo è strano ... ... se vai a guardare C:\Program Files\Arduino\hardware\arduino\firmwares\wifishield\wifiHD\src\main.c , vedi che, alle prime righe, contiene :

/* FIRMWARE version */
const char* fwVersion = "1.1.0";

Al momento non ho un WiFi shield sottomano per provare, ma se mi capita, faccio anche io la verifica ;)

Guglielmo

Un altro passo in avanti è stato fatto. Ieri con un amico abbiamo spulciato il forum e abbiamo trovato un post nel quale era scritto che uno di noi aveva risolto il problema utilizzando la IDE 1.0.3 di Arduino al posto dell'ultima aggiornata. In effetti appena ho installato ed utilizzato questa versione, la 1.0.3, finalmente la WiFi Shield si è connessa al server da me indicato. Assurdo!!! Inoltre stamane ho rimesso le mani allo Sketch perchè nel mio caso punta un server web che ospita un Sito con prima pagina di autenticazione e io devo puntare una pagina che a sua volta è nidificata dentro una cartella dello stesso web. Non riesco a capire come fare ma stamane sono arrestato dal fatto che l'Arduino UNO in mio possesso e che sino a qualche minuto prima funzionava adesso non mi restituisce nulla sul Monitor Seriale. Ovviamente ho fatto tutti i reset e i riavvi del caso ma non hanno sortito effetti positivi. Sinceramente sono un tantino deluso da questa tecnologia... Non so se continuare

Se hai letto bene quel post hai visto che ... con l'IDE 1.0.3 funziona lo shield WiFi NON AGGIORNATO, mentre, una volta aggiornato, si deve passare ad Arduino 1.0.5 e seguenti.

Da quanto affermi ... direi che NON hai correttamente aggiornato lo shield (... alla 1.1.0) ... per questo NON ti funziona con il nuovo IDE.

Guglielmo

Ciao a tutti, Sinceramente credo fermamente di avere caricato il firmware corretto! Ho seguito esattamente le indicazioni. Ad ogni modo se qualcuno può condividere il firmware della WiFi Shield per l'ide 1.0.6 sarebbe cosa gradita. In ogni ipotesi la wifi shield non risponde più a dovere e non esegue più il codice che programmo, insomma è divenuta instabile. Qualcuno mi può aiutare per favore?