Arduino WiFi Shield & Termostato

Ciao Ragazzi, mi presento inizialmente in quanto è il mio primo post su questo forum! Sono Andrea Draghetti e appassionato di Informatica ed Elettronica, mi sono recentemente avvicinato al mondo Arduino e vorrei creare un termostato controllabile da remoto!

Ho quindi acquistato un Arduino Uno r3, modulo WiFi e DHT22 per acquisire la temperatura ambientale.

Attualmente il termostato funziona tranquillamente e non vi son particolari problemi, se non legati all'implementazione di nuove funzioni. Di seguito una foto:

Veniamo al dunque, ho un problema! :(

Il modulo WiFi Shield non mi funziona, ovvero se gli faccio scansionare le reti WiFi non le rileva, ne si aggancia ad una rete pre-impostata via software. Ma la cosa anomala è che leggendo il MAC Address della scheda risulta: 0 anziché quello reale e scritto sul modulo.

Qualcuno ha avuto esperienza su questo nuovo modulo?!

Mi sono letto la guida (http://arduino.cc/en/Guide/ArduinoWiFiShield) ma purtroppo non ne salto fuori.

Ho lasciato libero il PIN Digitale 7, come da guida e gli altri li uso per comandare la mia elettronica.

Digital pin 7 is used as a handshake pin between the WiFi shield and the Arduino, and should not be used.

Grazie Mille Andrea

Scusate il disturbo...

Atteork... Attempting to connect to WPA network... Connected to network

Ho pulito i PIN del modulo WiFi con un po' di carta abrasiva e ora funziona tutto!

Vi terrò comunque aggiornati sugli sviluppi!

Piccolo dubbio, se sfrutto il modulo WiFi nel medesimo contempo non posso usare i PIN digitali...possibile?

Esatto se i pin sono impiegata dalla WiFi shield non possono essere utilizzati da nessun'altro dispositivo a meno che non siano pin che la shield non utilizza

pres961: Esatto se i pin sono impiegata dalla WiFi shield non possono essere utilizzati da nessun'altro dispositivo a meno che non siano pin che la shield non utilizza

Grazie Pres, quindi stando alla seguente immagine di collegamento io non posso sfruttare i PIN 4, 7, 10.

La dicitura SS sta per Slave Select?! E in termini pratici cosa comporta?

Grazie

Esatto proprio così! Quelli li sono impegnati dalla shield il resto li puoi usare tranquillamente!

pres961: Esatto proprio così! Quelli li sono impegnati dalla shield il resto li puoi usare tranquillamente!

Non proprio così tranquillamente ... i pin che vedi sul connettore ICSP sono anche collegati a dei pin dello shield ... oltre a quelli indicati NON puoi usare i pin 11, 12 e 13. Inoltre al pin 9 è collegato un LED ;)

Quindi, riassumendo : 4, 7, 10, 11, 12, 13 occupati, 9 LED collegato

Guglielmo

Hai ragione scusa mi ero scordato il connettore ICSP

gpb01:

pres961: Esatto proprio così! Quelli li sono impegnati dalla shield il resto li puoi usare tranquillamente!

Non proprio così tranquillamente ... i pin che vedi sul connettore ICSP sono anche collegati a dei pin dello shield ... oltre a quelli indicati NON puoi usare i pin 11, 12 e 13. Inoltre al pin 9 è collegato un LED ;)

Quindi, riassumendo : 4, 7, 10, 11, 12, 13 occupati, 9 LED collegato

Guglielmo

Che brutta notizia che mi dai :( nel mio progetto attualmente avevo solo DUE pin in disuso! Il problema più grande è il display che occupa diverse porte!

Potresti optare per un display di tipo seriale come questo: http://www.parallax.com/Store/Accessories/Displays/tabid/159/CategoryID/34/List/0/SortField/0/Level/a/ProductID/50/Default.aspx io lo utilizzo ed in tutto necesita di un solo pin per lo scambio di dati e poi i due di alimentazione

Non usi gli ingressi analogici. Quelli sono 6 pin che puoi anche utilizzare come I/O digitale semplicemente chiamandoli da 14 a 19. Esempio:

pinMode(14, OUTPUT); //attivi A0 come output digitale

QUoto Leo72 e aggiungo pure che potresti pilotare l'lcd tramite shift register: https://code.google.com/p/arduinoshiftreglcd/ https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

Ciao Andrea,
Ti va di postare il tuo codice?
Mi piacerebbe fare degli esperimenti come i tuoi.
Grazie

leo72:
Non usi gli ingressi analogici.
Quelli sono 6 pin che puoi anche utilizzare come I/O digitale semplicemente chiamandoli da 14 a 19.
Esempio:

pinMode(14, OUTPUT); //attivi A0 come output digitale

pitusso:
Quoto Leo72 e aggiungo pure che potresti pilotare l’lcd tramite shift register:
https://code.google.com/p/arduinoshiftreglcd/
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

Buongiorno e grazie mille, queste son belle notizie che mi confortano :slight_smile:

elvis:
Ciao Andrea,
Ti va di postare il tuo codice?
Mi piacerebbe fare degli esperimenti come i tuoi.
Grazie

Ciao Elvis,
ancora qualche giorno per ottimizzare il codice e poi renderò tutto pubblico.

Grazie.

Ragazzi, che voi sappiate ci son problemi di incompatibilità tra Arduino Uno r3 e il WiFi Shield?

Perché se provo a scrivere il codice per generare un miniserver su Arduino Uno r3 e WiFi Shield non funziona (non genera traffico internet) mentre se monto la Shield su un Arduino due va tutto alla grande e riesco ad interagire.

Grazie

ciao, vorrei realizzare anche io un termostato con arduino. condivideresti lo schema e il software?

grazie mille

drego85: .Perché se provo a scrivere il codice per generare un miniserver su Arduino Uno r3 e WiFi Shield non funziona (non genera traffico internet) mentre se monto la Shield su un Arduino due va tutto alla grande e riesco ad interagire.

Mmm ... con Arduino UNO che versione di IDE usi ? Perché hanno aggiornato la libreria ed occorre aggiornare il firmware dello shield WiFi.

Se fai un po' di ricerche se ne è parlato varie volte ...

Guglielmo

ciao, complimenti per il progetto. volevo chiederti se potevi mandarmi il progetto ed il codice che hai utilizzato, ovviamente se per te non è un problema.

siccome il mio termostato mi sta lasciando stavo pensando di costruirlo, almeno mi butto anche io sul mondo arduino.

inoltre che modulo wifi hai utilizzato?

a presto