Re,
me voici avec un nouveau soucis ....
le but du code suivant est de lire les données de tous les fichiers d'une carte SD et d'envoyer ensuite les données lues à un serveur Php pour alimenter une base de données.
La partie lecture des fichiers sur la carte SD fonctionne impec toute seule, et la partie envoie des données au serveur Php fonctionne aussi car je l'utilise dans un autre code.
Sauf que lorsque je mets les deux (lecture carte SD + Envoie des données au serveur PHP) dans le même code et bien rien ne se passe ...
#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 };
void setup()
{
char data[3000];
char LectSDcaractere;
char LectSDnbreimpulsion[50];
char LectSDduree[50];
char LectSDheure[50];
char LectSDminut[50];
char LectSDsec[50];
char LectSDjour[50];
char LectSDmois[50];
char LectSDannee[50];
char LectSDmot[50];
char LectSDsolaire[50];
int i = 0;
int j = 0;
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();
// re-open the file for reading:
myFile = SD.open(entry.name());
if (myFile) {
Serial.println(entry.name());
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
// read from the file until there's nothing else in it:
while (myFile.available()) {
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDnbreimpulsion[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDnbreimpulsion[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDnbreimpulsion[j] = '\0';
Serial.print(LectSDnbreimpulsion);
}
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDduree[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDduree[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDduree[j] = '\0';
Serial.print(LectSDduree);
}
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDheure[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDheure[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDheure[j] = '\0';
Serial.print(LectSDheure);
}
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDminut[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDminut[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDminut[j] = '\0';
Serial.print(LectSDminut);
}
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDsec[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDsec[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDsec[j] = '\0';
Serial.print(LectSDsec);
}
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDjour[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDjour[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDjour[j] = '\0';
Serial.print(LectSDjour);
}
if (LectSDcaractere == (';')) {
// Serial.print("ca marche");
j = 0;
i = 0;
LectSDmois[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDmois[j] = LectSDcaractere;
// Serial.write(data[i]);
// Serial.print("idem");
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDmois[j] = '\0';
Serial.print(LectSDmois);
}
if (LectSDcaractere == (';')) {
j = 0;
i = 0;
LectSDannee[0] = '\0';
do
{
LectSDcaractere = (myFile.read());
data[i] = LectSDcaractere;
LectSDannee[j] = LectSDcaractere;
i++;
j++;
}
while ((LectSDcaractere != (';')) && (myFile.available()));
LectSDannee[j] = '\0';
Serial.print(LectSDannee);
}
// Serial.write(data[i]);
}
// close the file:
myFile.close();
}
else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
} // fin while(true)
if (client.connect(srvphp, 80)) {
char reqhttp[100];
Serial.println("connected srvphp");
// Make a HTTP request:
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"));
client.stop();
}
} // fin setup()
void loop(){
}