Webserver mit SD Card

Hallo zusammen

zurzeit versuche ich einen Webserver auf einem Contollion Industrial Controller zu realisieren.
Mein Wunsch ist es das der Webserver die HTML Datei von der SD Carte öffnet und an den Brause sendet.
Leider hat es mit dem bisherigen sketch nicht funktioniert kann jemand helfen?

Hir der sketch

#include <Controllino.h> //Bibliothek des Controllino
#include <SPI.h> //Bibliothek SPI Bus
#include <SD.h> //Bibliothek SD Card
#include <Ethernet.h> //Bibliothek Ethernetschnittstelle

//_____________________________---defienierte Variablen---________________________________________________________________

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // Mac Adresse des Ethernetcontrollers

IPAddress ip(192, 168, 1, 177); // IP Adresse des Controllinos muss auf Netz des zugreifenden PCs abgestimmt sein
EthernetServer server(80); // Serverauswahl

double TempPT1000Sens1;
double TempPT1000Sens2;
double TempPT1000Sens3;
double TempPT1000Sens4;
double Strom1;
double Strom2;
double Strom3;
word Status;
word Modus;

//---Setup---_________________________________________________

void setup()
{
//PINS laden und auf Ausgangszustand setzen
pinMode(2,INPUT); //Pin 2 Input DIP 0 (IP)
pinMode(3,INPUT); //Pin 3 Input DIP 1 (IP)
pinMode(4,INPUT); //Pin 4 Input DIP 2 (IP)
pinMode(5,INPUT); //Pin 5 Input DIP 3 (IP)
pinMode(6,INPUT); //Pin 6 Input DIP 4 (IP)
pinMode(7,INPUT); //Pin 7 Input DIP 5 (IP)
pinMode(8,INPUT); //Pin 8 Input DIP 6 (IP)
pinMode(9,INPUT); //Pin 9 Input DIP 7 (IP)

pinMode(10,OUTPUT); //Pin 6 Output CS des SD Cards
digitalWrite(10,HIGH); // HIGH zum sperren des CS

pinMode(A0,INPUT); //Pin A0 Input Luft1
pinMode(A1,INPUT); //Pin A1 Input Luft2
pinMode(A2,INPUT); //Pin A2 Input Luft3
pinMode(A3,INPUT); //Pin A3 Input Luft4

Serial.begin(9600); // for debugging
Serial.println("Checking SD card is accessible...");

digitalWrite(10,LOW);
if (!SD.begin(10)) {
Serial.println("ERROR - SD card initialization failed!");
}

Serial.println("SUCCESS - SD card initialized.");
SD.end();
digitalWrite(10,HIGH);

Ethernet.begin(mac, ip); // initialize Ethernet device
Serial.println(Ethernet.localIP());
server.begin(); // start to listen for clients
}

//---Hauptprogramm---__________________________________

void loop()
{
String webPage;
webPage=Lese_SD();
Serveraufruf(webPage);
}

//---Unterprogramme---__________________________________

String Lese_SD()// listen for incoming clients
{
File myFile;
String inhalt;

digitalWrite(10,LOW);
Serial.println("Checking SD card is accessible...");
if (!SD.begin(10)) {
Serial.println("ERROR - SD card initialization failed!");
return; // init failed
}
Serial.println("SUCCESS - SD card initialized.");

myFile = SD.open("index.txt", FILE_READ); // htm nehmen da nicht mehr als 3chars Dateiendung erkannt werden
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}

// re-open the file for reading:
myFile = SD.open("index.txt");
if (myFile) {
Serial.println("index.txt:");

// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}

digitalWrite(10,HIGH);
return inhalt;
}

void Serveraufruf(String htmlseite)
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {

char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println(htmlseite);
Serial.println(htmlseite);
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
}
}

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *). Das kannst Du auch noch nachträglich ändern.

Was für ein Ethernetmodul/-shield hast Du? Mit W5100- oder W5200-Chip?
Kannst Du von der SD-Card lesen?

Gruß Tommy