Web server arduino problema

In allegato a questo thread c'è il donwload del sorgente

Stazione_meteo_Pigio.zip (2.61 KB)

Ciao,
questa condizione:

 if (ventacc = true) {

sarà sempre vera, perchè non è un confronto ma un assegnamento.
Questo è un confronto:

 if (ventacc == true) {

il problema quindi è solo questo?
ma come mai se voglio vedere il valore boolean non compare col println?
il break?
il delay ho visto che risolve molti problemi ma perchè?

grazie

quello è UN problema, se poi ce ne siano altri è un alto paio di maniche.
usa i tag [ code] e [ /code] (senza gli spazi) se no così il codice occupa un sacco di spazio e non si capisce dove spieghi le cose e dove finisce il codice.

delay(1); = attendi un millisecondo
break; = esci dal ciclo attuale. si consiglia spesso di evitare questa istruzione, proprio perchè diminuisce la leggibilità del codice agli esseri umani :smiley:
client.read(); = immaginati una Serial.read(), solo che anzichè leggere i dati che arrivano via seriale, leggi i dati che arrivano dal client.

ok appena volo a casa provo a modificare la condizione.
ma che senso ha mettere il delay(1)??

il problema quindi è solo questo?

questo è il primo problema che mi è saltato agli occhi (era riportato l'if proprio alla fine del post).
Io partirei smontando il codice in parti più piccole, iniziando a imparare funzioni e metodi.

il delay() probabilmente è stato messo per essere sicuri che tutti i dati siano inviati, anche se è talmente minimo che volendo potrebbe essere rimosso...

ok funziona, ora ho un problema, come lo interfaccio ad internet?
configuro il router nel seguente modo:
ho un dlink DSL-2640B
nome server porta ext iniz porta ext finale porta interna iniziale porta esterna iniziale indirizzo ip server
ARDUINO 7890 7890 TCP 80 80 192.168.1.30

ora?
7890 sono dei numeri messi a caso.
porta 80 perchè l'arduino utilizza la porta 80, è corretto tutto ciò?

porta ext iniziale e finale non metterla, serve per applicazioni che NON usano protocollo tcp o udp(quindi non viene elaborato il pacchetto, layer 4 dell'iso-osi, ma solo fino al frame, layer 2)

l'icmp dovrebbe essere abilitato di default, se non lo fosse trovi l'opzione di solito nella parte firewall, essendo il ping slegato al fatto di porte o protocollo TCP o UDP (infatti è il protocollo ICMP, layer 3 dell'iso-osi)

eh non posso, mi costringe a metterla :~
ed ora?

le impostazioni che hai davanti lasciale così, serve per comandare il router da remoto(ovvero internet) e non vogliamo che ciò accada giusto?

mi sono registrato a dlink dynamic dns,
ho configurato così il dns

Hostname pigio.dlinkddns.com fin quì ci siamo, a parte il fatto che per ora chiunque con questo link e un minimo di fantasia può modificarti le impostazioni del router...
IP in DNS 192.168.1.30 no, quì devi mettere il tuo ip esterno (192.168.1.30 è l'ip interno ovvero nella LAN). puoi ottenerlo su www.mioip.it
Browser IP Address 82.50.177.235 questo creda sia una limitazione, in pratica solo quell'ip otterrà la trasformazione dominio->ip, CREDO
Nel caso sia una misura di sicurezza, disabilita che per ora fai solo casini, poi quando sei certo che tutto funziona puoi abilitarla

ps. ho fatto un ping a pigio.dlinkddns.com e compare 192.168.1.30, quindi hai errato la tua configurazione, segui quello che ti ho detto prima.

E' il mio primo progetto e funziona tutto, mi spiace che non vediate gli effetti ma funziona :slight_smile:
FUNZIONA TUTTO

HO CAMBIATO COSI LE IMPOSTAZIONI:

Hostname pigio.dlinkddns.com
IP in DNS 82.50.XXXXXX
Last Modified May 31, 2011 13:17:35
Browser IP Address 82.50.XXXXXX

ed ora funziona.

provate, io lo tengo connesso, mi manca LM35 ma il resto c'è
grazie a tutti!

per scrivete nella barra degli indirizzi:

pigio.dlinkddns.com

accendi e spegni accende una ventola, se qui dove c'è arduino è scuro si accende il led e la temperatura non va perchè non ho LM35.

provate e ditemi il vostro parere.
accetto consigli grafici

Mi piacerebbe sapere a prescindere se la ventola è già accesa o meno, però non sò se è possibile.
Dato che molte persone si connettono e non conoscono lo stato della ventola sarebbe interessante conoscere cos'hanno fatto gli altri client e sapere se quando ci si connette è gia attiva la ventola a no.
consigli?

A me non si connette...

prova ora e dovrebbe andare

Mi tira un po' scemo il fatto che la pagina continui a ricaricarsi ma ora effettivamente funziona. Dovrei anche aver acceso e spenta la ventola...

sisi ho visto che hai acceso e spento.
l'autorefresh mi serve per aggiornare la temperatura e la luce ogni secondo.
il problema è che se accendo la ventola ed esco tutto ok, resta accesa.
se resto connesso si accende solo durante il refresh della pagina e non sò come risolvere questo problema.

ripensandoci questo non è affatto un problema perchè se devo accendere l'aria condizionata a casa, quando esco dal link deve rimanere accesa perchè la voglio accesa.

Non riesco ad accedere alla pagina....

eh adesso funziona, ogni ora l'ISP mi cambia l'ip e devo trovare una soluzione

boh non riesco -_-"