Problema di invio dati tramite GET da ethernet shield a sito remoto.

Come già esposto il problema nel topico precedente in cui avevo problemi con la VF,
non riesco ad inviare correttamente dati ad una pagina .php caricata in un server remoto, il codice usato è il seguente :

#include <SPI.h>
#include <Ethernet.h>
//Funzioni Ethernet

byte mac[] = {0x90,0xA2,0xDA,0x00,0x74,0x99};
byte ip[] = {192,168,1,2};
byte gateway[] = {192, 168, 1, 1};
byte subnet[] = {255, 255, 255, 0};      
Server server(80); 
String readString = String(30); 

void setup(){
  Ethernet.begin(mac, ip);
}


void loop(){
Client client = server.available();
  if (client) {
    while (client.connected()) {
   if (client.available()) {
    char c = client.read();
    if (readString.length() < 30) 
      {
        readString +=c;
      }  
          if (c == '\n') {          
          
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("http://ratto93.altervista.org/index.php?temperatura=22&&umidit%E0=20");
          //readString="";
         // client.stop();
            }
          }
       }
    }
 }

Il codice php che funge da ascoltatore è il seguente :

<HTML>
<HEAD>
<TITLE>Accesso al servizio</TITLE>
</HEAD>
<BODY>
<H2>Gestione accessi</H2>
<HR>
<?php

 $temperatura     = $_GET["temperatura"];
 $umidità  = $_GET["umidità"];
 echo "La temperatura attuale è di $temperatura °.
";
 echo "L'umidità è pari al $umidità % 
";
 echo "alle ore", date("H:i:s"),"del giorno",date("d-m-Y");
  
?>
</BODY>
</HTML>

ciao, hai provato a postare la stringa che dovrebbe passare i client di Arduino, a manina sul browser? Io sì, e problemi (grossi) non ce ne sono.

Un consiglio: la url, costruiscila senza caratteri speciali. Nel caso del tuo script, lato php, non recupera la parte relativa all'umidità (risolvibile mettendo la stessa stringa su url e script php).

EDIT: perchè dichiari un server?

Server server(80);

tu hai bisogno di un client!

A occhio manca la gestione di connessione al server, e la chiamata

client.println("http://ratto93.altervista.org/index.php?temperatura=22&&umidit%E0=20");

temo non funzioni neppure. Prima ci deve essere la connessione del client ad un server (nel tuo caso altervista), e quindi la get (/index.php?temperatura=22&&umidit%E0=20)

Ora son un poco di corsa, ma perchè non prendi come riferimento l'esempio del WebClient, presente nell'IDE?

Inoltre: lo script php che hai messo tu, mostra i valori passati al momento della chiamata. Pertanto dovrai prevedere una funziona che vada a salvare i dati su file (per esempio), per poter vedere a posteriori i valori inseriti dal tuo sketch.

Ti spiegop cosa devo fare così forse mi puoi consigliare meglio.... Ora, ogni un tot di tempo da arduino devo inviare ad uno script tre valori che mi memorizzerà su un DB.

non capisco questa parte

Prima ci deve essere la connessione del client ad un server (nel tuo caso altervista), e quindi la get (/index.php?temperatura=22&&umidit%E0=20)

sono abbastanza ignorante in materia quindi perdonatemi se non ci arrivo subito :grin:

ratto hai un MP ;)

Evvai !!!11
Sono riuscito a connettermi a Google, ora sto provando con altervista :slight_smile: