1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| /*
Web Server avec récupération de la page html sur la carte SD
14 Avril 2018
*/
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
File myFile;// je créée un fichier myFile
byte mac[] = {//l'adresse MAC de mon shield ethernet
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 0, 177); //L'adresseIP
EthernetServer server(80); //le port utilisé par mon serveur (80 pour le HTML)
void setup() {
Serial.begin(9600);// configuration du port série pour la communication de l'Arduino avec le PC
while (!Serial) {
;
}
// On démarre la connection au serveur
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());//on ecrit l'adresse IP sur le moniteur serie
//On teste la connexion à la carte SD
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
}
void loop() {
// on ecoute le client
EthernetClient client = server.available();
if (client) {
Serial.println("J'ai reçu la requette: tu es un nouveau client");
boolean currentLineIsBlank = true;//la reqeutte se finit par une ligne vide
while (client.connected()) {
// tant que le client est connecté
if (client.available()) { //si le client envoie des octets
char c = client.read(); //je les stocke dans ma variable de caractères c
if (c == '\n' && currentLineIsBlank) { //si j'arrive à un caractère vide
/*donc fin de ma requette, je peux envoyer ma feuille HTML que je dois aller chercher sur ma carte SD*/
//j'ouvre monfichier SD?? mais après je suis perdu
//par exemple client.write
myFile = SD.open("index.html", FILE_READ);//je mets mon fichier html dans myFile
client.println("HTTP/1.1 200 OK");//Je ne sais pas pourquoi je mets ça
client.println("Content-Type: text/html");//ça non plus
client.print (myFile);//Je demande à mon client de lire le fichier Html de la carte SD
Serial.println("j'essaie de lire le html");//Pour verifier que le programme arrive jusque là
}
}
}
}
myFile.close();//Je ferme la lecture du fichier sur la carte SD
} |
Partager