data logger temperatura Arduino uno +wifishield

buona sera
ho costruito questo circuito http://workblog.it/dati-ambientali-con-arduino-wifi-shield/ con lo sketch allegato....
ho un problema.....apro il monitor seriale si collega giustamente alla mia rete e mi dice l'indirizzo ip......lo scrivo sulla barra di internet e mi dice sempre impossibile connetersi.....
vedo che include anche la libreria String.h che io non l'ho caricata sell'ide che sia x quello?pero non mi da errori nella compilazione....

manuwifi.ino (2.26 KB)

Ma quello sketch?? :o

il loop() scrive all'infinito su un client anche quando non è connesso... e comunque i dati vanno spediti una volta sola ... domanda >>> risposta >>> chiusa connessione, altrimenti si incasina tutto.
println("HTTP/1.1 "); ha tolto 200 OK, non è un commento, è uno status code e ci va ...

è un tag ci va una volta solo e alla fine si chiude con delay(5000); dopo aver chiuso il server è inutile, può causare un timeout, basta (1 millisec)

dai un occhiata ai codici HTTP
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

dai un occhiata a cos'è un client e cos'è un server e come funziona una connessione HTTP
http://tweb.ing.unipi.it/tia/http.pdf

ora guarda un esempio base di uno sketch per l'wifi shield

togli

for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("
");      
          }

e aggiungi le letture dei tuoi sensori

client.println(sensore.readHumidity());
client.println(sensore.readTemperature());

ciao

ok grazie
ma non devo anche inserire le stringhe che nella pagina web mi venga scritto temperatura: con il valore e umidita:con il valore?

Ci sono già in quello che ti ho scritto

ho provato ho fatto alcune modifiche x collegare il dht 22 al pin 5..ma niente mi da sempre errore pagina....mi da come indirizzo ip 192.168.1.4..allego sketch sicuramnte ci saranno errori...

manuwifigiusto.ino (3.62 KB)

cmq ho provato anche lasciare lo sketch come l'originale si collega aal rete e tutto ma la pagina web non esce mi da sempre errore caricamento pagina

Ok."...risolto...dopo tante bestemmie..era da aggiornare la Wi-Fi shield..che anche quella non è stato facile aggiornare...
Un'altra cosa se collego ai pin 6-7 due led 1 rosso e 1 verde x dire led verde acceso connessione stabilità led rosso connessione non stabilità che sia possibile.

certo
long rssi = WiFi.RSSI(); restituisce un valore in base a quello puoi mettere un segnale alto/medio/basso/nessuno

mi fai un'esempio x cortesia avendo nel pin6 led rosso non connesso e pin 7 led verde connesso.grazie

Dovrebbe essere così

     int rssi=WiFi.RSSI();
      int tempRssi=abs(rssi); //valore assoluto
      Serial.println(tempRssi); //debug
      
      if (tempRssi > 11 && tempRssi < 100){
          accendi ledverde
          spegni ledrosso
      }    
      else {     
          spegni ledverde
          accendi ledrosso
      }

     delay(1000); // o meglio metterlo dentro un millis()

mi da sto errore che sia...allego anche sketch

errore.doc (434 KB)

giusto_giusto_wifi.ino (4.02 KB)

con la modifica che mi hai fatto nella pagina web esce sonolo i 2 valori della temperatrura e umidita..come faccio inserire.....temperatura: umidita:

se li copiavi e incollavi l'elenco errori era meglio, ho dovuto usare il telescopio hubble per leggerli ...

Gli errori li devi leggere però mi sembra chiaro:

"conflitto dichiarazione int rssi"
l'hai messo 2 volte nella stessa funzione

 long rssi = WiFi.RSSI();
   int rssi=WiFi.RSSI();

"pin was not declared"

digitalWrite(pin 6,LOW);

Prima cosa le variabili non possono contenere spazi "Mario" non si scrive "Ma rio", l'istruzione digitalwrite scritta così è sbagliata o ci metti una variab correttamente dichiarata che assume il numero o ci metti direttamente il num del pin

o così
byte pin = 6;
digitalWrite(pin,LOW);

o così
digitalWrite(6,LOW);

quel blocco messo dentro la funzione void printWifiStatus() viene richiamato una volta solo all'avvio di arduino ti accende il led corrispondente e poi basta anche se va via il segnale il led segnerà sempre lo stato che c'era all'accensione

client.print("Umidità ");
client.println(sensore.readHumidity());
client.print("Temp ");
client.println(sensore.readTemperature());

se non hai Arduino Leonardo togli questo pezzo

 while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

OK...GRAZIE MILLE.....IL LED VERDE ALLA CONNESSIONE STABILITA....L'UNICA COSA E CHE NON FUNZIONA IL LED ROSSO DI MANCANZA CONNESSIONE CHE HO PROVATO A METTERE UN PASSWORD SBAGITA CHE COSI NON SI CONNETTA..CHE SIA...TI ALLEGO DI NUOVO SKETCH CHE HO MIDIFICATO.....
ANCORA GRAZIE MILLE

giusto_giusto_wifi.ino (4.06 KB)

HO TOLTO ANCHE QUESTO ORA
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

FORSE HO CAPITO...QUANDO SOSTITUISCO LA PASSWORD LUI CONTIANU A PROVARE A CONNETERSI..E NON HA MAI IL SEGANLE NON CONNESSIONE MI SA..

Ho risolto facendo così....ho messo subito dopo il void setup che mi alzi subito il led rosso.....che così quando si connette si spegne il rosso e accende il verde...ora guardavo x collegarci anche un lcd...ma non ho uscite a sufficienza prenderò un'arduino mega..

ok....
sono molto felice.......ora funziona tutto con led rosso non connesso e led verde connesso........siccome ho usato un led multicolore rosso-blu-verde..........vorre fare una schiccheria...vorrei fare lampeggiare il led blu fin che sta tentando la connessione....x fare blincare un led non ci sono problemi.....se ci fosse solo il led nel loop..ma come posso farlo blinkare fin ad una certa situazione?

giusto_giusto_wifi.ino (4.17 KB)

ho allegato anche sketch..