Problema con wifi Shield

Ciao a tutti, ho un problema che mi sta tirando pazzo... Ho arduino uno r3 con wifi shield con fw 1.0.0 ed ho creato uno skatch che manda i dati ad un db my sql, rimane in rete 5/6 ore poi si inchioda il collegamento wifi, provato con ide 1.0.3/4/5/6. Ho provato ad aggiornare fw della shield alla sersione 1.1.0, e con questo si collega alla rete wifi ma non al sever db... Provato anche con esempio presente nell'ide WIFIWEBCLIENT ma stesso problema...

Mi date una mano per cortesia.

ciao grazie

Riempirai la RAM.
Ci puoi dare lo sketch?
Ciao Uwe

lo sketch è questo Wifi Shield problema dati a DB - Software - Arduino Forum

Ciao e grazie per il vostro interesamento. Questo di seguito è lo skatch che sto usando, se fosse un problema di saturamento RAM come è risolvibile?? O altrimenti cosa sbaglio??

Grazie mille buona giornata

//Skatch Aggiornato al 02.02.2015 Wifi shield Firmware 1.0.0 libreria wifi ide 1.0.2
//CENTRALINA METEO CON TRASFERIMENTO DATI A DB MYSQL 
//SONDA DIGITALE TEMPERATURA DALLAS
//SONDA RADAR ALTEZZA NEVE
//PER I CABLAGGI FARE RIFERIMENTO A FILE NELLA CARTELLA PROGETTO
#include <WiFi.h>
#include <SPI.h>
#include <OneWire.h>
#include <Wire.h>
#include <NewPing.h>
#include <DallasTemperature.h>       //Temperature
#define ONE_WIRE_BUS 3               //Temperature
OneWire oneWire(ONE_WIRE_BUS);       //Temperature
DallasTemperature sensors(&oneWire); //Temperature
#define TRIGGER_PIN  4  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     5  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 400 // Immettere distanza da sensore a terreno. Maximum sensor distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

String readString;
boolean reading = false;

float temp;
float wind;
float snowm;
float rain;

int i=0;
 


void(* Riavvia)(void) = 0; // Void per riavvio dello skatch

////////////////////////////////////////////////////////////////////////
//CONFIGURE SERVER
////////////////////////////////////////////////////////////////////////

  WiFiClient client;
  char server[] = "*************";
  char buffer[250];
  char codiceimpianto[32] = "1";
////////////////////////////////////////////////////////////////////////
//CONFIGURE WIFI CONNECTION
//  Per scheda wifi utilizzato Firmware 1.0.0 preso da cartella IDE 1.0.2 con libreria Wifi IDE 1.0.2
////////////////////////////////////////////////////////////////////////
char ssid[] = "********";     //  your network SSID (name) 
char pass[] = "********";    // your network password
int status = WL_IDLE_STATUS;     // the Wifi radio's status

void setup()

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

 String fv = WiFi.firmwareVersion();

  Serial.println(fv);
 
   // attempt to connect using WPA2 encryption:
  Serial.println("Attempting to connect to WPA network...");
  status = WiFi.begin(ssid, pass);

  // if you're not connected, stop here:
  if ( status != WL_CONNECTED) { 
    Serial.println("Couldn't get a wifi connection");
    Riavvia();//Riavvia se non disponibile rete WIFI 
    while(true);
   
  } 
  // if you are connected, print out info about the connection:
  else {
    
    Serial.println("Connected to network");

  }
  
  
}

void loop()
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Riavvio skatch e riconnessione wifi in assenza di segnale Wifi durante il ciclo normale e riavvio dopo 120 cicli
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  
 if (( status != WL_CONNECTED)||(i==120)) { 
   WiFi.disconnect();
    Serial.println("Riavvio...");
      Riavvia();
  }  
  
  
  
///////////////////////////////////////////////////////////////////////////////////////////////////
//                                STAMPA DATI CONNESSIONE WIFI                                   //
    Serial.println(WL_CONNECTED);
    Serial.print(ssid);
    Serial.print(": ");
    Serial.print(WiFi.RSSI());
    Serial.println(" dBm");


///////////////////////////////////////////////////////////////////////////////////////////////////
//                                TEMPERATURA                                                   //

{ 

  sensors.requestTemperatures(); 
  temp=(sensors.getTempCByIndex(0));
  Serial.print(temp);
  Serial.println (" C"); 
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                SNOW                                                                     //

  
unsigned int uS = sonar.ping();// Send ping, get ping time in microseconds (uS).Per Altezza neve
  snowm =(uS / US_ROUNDTRIP_CM);// Misura Altezza neve. La costante è la distanza tra la sonda e il terreno
      
  Serial.println(snowm);
  
  

//___________________________________________END LOOP SOFTWARE____________________________________________________________________//





/////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                             //
//                                    INVIO DATI                                               //
//                                                                                             //
/////////////////////////////////////////////////////////////////////////////////////////////////


  Serial.println("connecting...");
 
  if (client.connect(server, 80)) 
  {
    Serial.println("connected");
    client.print("GET /save.php/");
    client.print(codiceimpianto);
    client.print("/");
    client.print(temp);
    client.print("/");
    client.print(snowm);

       
    client.println(" HTTP/1.1");
    client.println("Host: ***********");
    client.println("Connection: close");
    client.println();
   
  }
  
  else {
  Serial.println("Riavvio...");//Riavvio se non disponibile connessione con Server
      Riavvia();
     }
     
 
    char c = client.read();
    Serial.print(c);   
  
     client.flush ();
     client.stop (); 
     
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
  }
delay(30000);  // TEMPORIZZAZIONE PROGRAMMA 30 SECONDI //

i++;
}

/////////////////////////////////////////////////////////////////////////////////////////////////

Dopo numerosi tentativi e perdite di tempo, ho deciso di passare a Adafruit CC3000, che funziona benissimo ed è un asettimana che è in rete e non si è mai scollegata.
Sinceramente sono rimasto un po deluso dalla shield originale, pensavo più affidabile...

Ciao