[RESOLU] Lecture Carte SD et envoie Data serveur PHP

Bon et bien voila un code qui fonctionne, j'espère qu'il te plaira plus que le précédent :slight_smile:

#include <SD.h> // crée automatiquement un objet racine SD représentant la carte mémoire SD
#include <Ethernet.h>
#include <SPI.h>


File myDir; // objet file 
File myFile;
int numTabs = 0;
boolean test=false; 
EthernetClient client;
IPAddress srvphp(192, 168, 0, 135); // Adresse IP serveur perso PHP
IPAddress ip(192, 168, 0, 35);
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF };
//char data[50];
char LectSDcaractere[50];
unsigned long LectSDnbreimpulsion;
unsigned long LectSDduree;
byte LectSDheure;
byte LectSDminut;
byte LectSDsec;
byte LectSDjour;
byte LectSDmois;
int LectSDannee;



void setup()
{

  Serial.begin(115200); // utiliser le meme debit coté Terminal Serie
  Ethernet.begin(mac, ip);

  //----- initialisation de la carte SD ----- 
  Serial.println("Initialisation de la SD card...");

  pinMode(10, OUTPUT); // laisser la broche SS en sortie - obligatoire avec librairie SD

  test=SD.begin(4); // initialisation de la carte SD avec broche 4 en tant que CS - renvoie true/false

  if (test!=true) { // si initialisation n'est pas réussie
    Serial.println("Echec initialisation!"); // message port Série
  }
  else { // si nitialisation réussie
    Serial.println("Initialisation reussie !"); // message port Série

    //----- affiche le contenu du répertoire 

    myDir = SD.open("/"); // ouvre la SD Card à la racine

    Serial.println("Operation Terminee!");

  } // fin si initialisation réussie


  while(true) { // tant que vrai = crée une "loop" qui séxécute tant que contenu
    // la sortie se fait par break;

    File entry =  myDir.openNextFile(); // ouvre le fichier ou repertoire suivant

    if (! entry) { // si aucun nouveau fichier /repertoire

      //Serial.println("** pas d'autre fichier ou repertoires**");
      break; // sort de la fonction 

    } // fin si aucun nouveau fichier / répertoire

    // affiche le nombre de tab voulu - 0 si racine, 1 si sous Rép, 2 si sous-sous rép, etc..
    for (int i=0; i<numTabs; i++) {
      Serial.print('\t');
    }

    // Serial.println(entry.name()); // affiche le nom du fichier/repertoire

    entry.close();


    int i = 0;
    int j = 0;

    // re-open the file for reading:
    myFile = SD.open(entry.name());
    if (myFile) {
      Serial.println(entry.name());
      while (myFile.available()) {


        LectSDcaractere[i] = (myFile.read());
        i++;
      }

    }
    Serial.println(LectSDcaractere);
    sscanf(LectSDcaractere, ";%d ;%*d ;%d ;%d ;%d ;%d ;%d ;%d", &LectSDnbreimpulsion,&LectSDheure,&LectSDminut,&LectSDsec,&LectSDjour,&LectSDmois,&LectSDannee);
    Serial.println(LectSDannee);
    Serial.println(LectSDmois);
    Serial.println(LectSDjour);
    Serial.println(LectSDheure);
    Serial.println(LectSDminut);
    Serial.println(LectSDsec);
    Serial.println(LectSDnbreimpulsion);
    myFile.close();

    // close the file:


    if (client.connect(srvphp, 80)) {
      char reqhttp[100] ;

      Serial.println("connected srvphp");
      // Make a HTTP request:
     // client.print(F("GET /solaire/txp2.php?nom_inst=Dupont&date_prod="));
     // sprintf( reqhttp, "%04d%02d%02d%02d%02d%02d&prod=%05d",LectSDannee,LectSDmois,LectSDjour,LectSDheure,LectSDminut,LectSDsec,LectSDnbreimpulsion);
     // client.print(reqhttp);
     // client.print(F("&commentaires=arduino HTTP/1.0"));
     // client.println();
      
      sprintf( reqhttp, "GET /solaire/txp2.php?nom_inst=Dupont&date_prod=%04d%02d%02d%02d%02d%02d&prod=%05d&commentaires=arduino HTTP/1.0",LectSDannee,LectSDmois,LectSDjour,LectSDheure,LectSDminut,LectSDsec,LectSDnbreimpulsion);
    client.println(reqhttp);
    client.println();
      
      Serial.println(F("Fin envoie srvphp"));
      Serial.println(reqhttp);
      client.stop();
     
    }    

    else {
      // if the file didn't open, print an error:
      Serial.println("error opening test.txt");
    }
  }

}// fin setup()  

void loop(){



}

par contre tu remarqueras que ca ne fonctionne pas

client.print(F("GET /solaire/txp2.php?nom_inst=Dupont&date_prod="));
     // sprintf( reqhttp, "%04d%02d%02d%02d%02d%02d&prod=%05d",LectSDannee,LectSDmois,LectSDjour,LectSDheure,LectSDminut,LectSDsec,LectSDnbreimpulsion);
     // client.print(reqhttp);
     // client.print(F("&commentaires=arduino HTTP/1.0"));
     // client.println();

alors que ca fonctionne mais je ne sais pas pourquoi .....

sprintf( reqhttp, "GET /solaire/txp2.php?nom_inst=Dupont&date_prod=%04d%02d%02d%02d%02d%02d&prod=%05d&commentaires=arduino HTTP/1.0",LectSDannee,LectSDmois,LectSDjour,LectSDheure,LectSDminut,LectSDsec,LectSDnbreimpulsion);
    client.println(reqhttp);
    client.println();

sinon merci pour ton aide :slight_smile: