Arduino serveur ethernet impossible ouvrir fichier carte SD

louis.travaux Messages postés 3 Statut Membre -  
louis.travaux Messages postés 3 Statut Membre -
Bonjour,
Je souhaite lire un fichier texte sur la carte sd et l'afficher sur le client web.
Le problème c'est qu'à chaque fois que je me connecte, la page internet affiche le message d'erreur que j'ai placé à l'échec d'ouverture du fichier (appelé webFile).

#include <SPI.h>
#include <SD.h>
#include <Ethernet.h>

byte mac[] = {0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6};
IPAddress ip(192,168,0,51);
EthernetServer serveur(80);

const int chipSelect = 4;

void setup() {
Serial.begin(9600);
if (!Serial){
;
}

//SD
Serial.print("Initialisation SD...");
if (!SD.begin(chipSelect)) {
Serial.println("Erreur.");
while(1);
}
Serial.println("fait.");

if (!SD.exists("test.txt")){
Serial.println("fichier inexistant");
return;
}
Serial.println("fichier trouvé"); //le fichier est bien trouvé (pas d'erreur jusque là)

//ETHERNET
Ethernet.begin(mac, ip);
Serial.print("IP Address : ");
Serial.println(Ethernet.localIP());
serveur.begin();
Serial.println("PRET !");
}

void loop() {
ardServ();
}

void ardServ(){
EthernetClient client = serveur.available();
if (client){
if (client.connected()){
header(client);
contenuPage(client);
client.stop();
}
}
}

void header(EthernetClient cl) {
while (cl.available()) {
char c = cl.read();
Serial.print(c);
}
}

void contenuPage(EthernetClient cl){
File webFile = SD.open("TEST.TXT", FILE_READ);

if (webFile) {
while (webFile.available()) {
cl.write(webFile.read());
}
}
else {
cl.println("<!DOCTYPE html><html>Erreur ouverture test.txt</html>"); //message d'erreur
}

webFile.close();
}


J'espère que l'un d'entre vous saura m'aider.
A voir également:

3 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, il me semble que tu mets parfois, mais pas toujours, le nom du fichier en majuscules: pourquoi?
0
louis.travaux Messages postés 3 Statut Membre
 
C'était pour essayer, voir si ça change quelque chose, mais ça ne change rien.
0
louis.travaux Messages postés 3 Statut Membre
 
Quand je veux ouvrir le fichier depuis le void setup() ça marche très bien, mais quand c'est dans le loop() ou dans une autre void que setup ça ne fonctionne pas.
0