Ethernet Shiled SD Card Logging and Reaching SD CardOn The Web Server

Hi everybody. Im making a project and need some help.

You can find my codes below. I see DHT11 values on the webserver everything is ok. But I want to save this log values in the SD card on the ethernet shield and any time I want to reach and check values.

SO how can I reach SD card values and same time monitoring sensors ?

Its look like this, just want to logging SD Card and reach this values.

#include <DHT.h>

#define DHTPIN 8     // what pin we're connected to

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

DHT dht(DHTPIN, DHTTYPE);

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x00, 0x23, 0x36 }; //MAC address found on the back of your ethernet shield.
IPAddress ip(53,65,174,177); // IP address dependent upon your network addresses.

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  dht.begin();

  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
 
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.println(" *C");
  }
 
  // 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: 20");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
        
          // output the value of the DHT-11
            
            client.println("<div style=\"border:1px solid black;float:left; margin-right:200px;margin-left:80px; width:400px;margin-bottom:20px; height:400px;\"><H2>");
            client.print("<center>Nem: </center> ");
            client.println("</H2>");
            client.println("<p />");
            client.println("<H1>");
            client.println("<center>");
            client.print(h);
            client.print(" %\t");
            client.println("</H1></div>");
            client.println("</center>");
            
            client.println("<div style=\"border:1px solid black; float:left; margin-right:200px;margin-bottom:20px; width:400px; height:400px;\"><H2>");
            client.print("<center>Sicaklik: </center>");
            client.println("</H2>");
            client.println("<H1>");
            //sicaklik degiskeni (fahrenayt). Sadece santigrat yazdiracaksan t degiskeni yeterli gelir
            client.println("<center>");
            client.print(t);
            client.println(" °");
            client.println("C");
            client.println("</H1></div>");
            client.println("</center>");

             client.println("<div style=\"border:1px solid black; float:left; margin-right:200px;margin-bottom:20px; width:400px; height:400px;\"><H2>");
            client.print("<center>Su Basinci: </center>");
            client.println("</H2>");
            client.println("<H1>");
            //sicaklik degiskeni (fahrenayt). Sadece santigrat yazdiracaksan t degiskeni yeterli gelir
            client.println("<center>");
            client.print(t);
            client.println(" °");
            client.println("C");
            client.println("</H1></div>");
            client.println("</center>");

             client.println("<div style=\"border:1px solid black; float:left; margin-right:200px;margin-bottom:20px;margin-left:80px; width:400px; height:400px;\"><H2>");
            client.print("<center>Gaz Kacagi: </center>");
            client.println("</H2>");
            client.println("<H1>");
            //sicaklik degiskeni (fahrenayt). Sadece santigrat yazdiracaksan t degiskeni yeterli gelir
            client.println("<center>");
            client.print(t);
            client.println(" °");
            client.println("C");
            client.println("</H1></div>");
            client.println("</center>");

            client.println("<div style=\"border:1px solid black; float:left; margin-right:200px;margin-bottom:20px; width:400px; height:400px;\"><H2>");
            client.print("<center>Elektrik Kacagi: </center>");
            client.println("</H2>");
            client.println("<H1>");
            //sicaklik degiskeni (fahrenayt). Sadece santigrat yazdiracaksan t degiskeni yeterli gelir
            client.println("<center>");
            client.print(t);
            client.println(" °");
            client.println("C");
            client.println("</H1></div>");
            client.println("</center>");

             client.println("<div style=\"border:1px solid black; float:left; margin-right:200px;margin-bottom:20px; width:400px; height:400px;\"><H2>");
            client.print("<center>Su Kacagi: </center>");
            client.println("</H2>");
            client.println("<H1>");
            //sicaklik degiskeni (fahrenayt). Sadece santigrat yazdiracaksan t degiskeni yeterli gelir
            client.println("<center>");
            client.print(t);
            client.println(" °");
            client.println("C");
            client.println("</H1></div>");
            client.println("</center>"); 
                    
            client.println("</html>");
            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 disonnected");
  }
}

Every time a client asks for data, you send current data.

While not processing a client request, you are free to do anything else. That could just possibly include writing the data to the SD card.

and any time I want to reach and check values.

You have to define what this means, in terms of something that the Arduino might be able to do. You could, any time you liked, turn the Arduino off, pop the SD card out, and put it in your PC and "reach and check" the data.

If you want the browser to send a different request to get historical (stored) data, then you absolutely MUST pay attention, on the Arduino, to what the client asked for.

There will probably be requests for favicon.ico, but you blithely send the same response to every request. You have got to stop doing that.