Arduino Ethernet Shield ve SD KartKullanımı ile ilgili bir soru

Başlatan wtrk, 03 Şubat 2018, 00:39:32

wtrk

Arkadaşlar herkese selamlar..

Yeni başlayacağım görevimde bana şöyle bir proje verildi.

Arduino mega ile ethernet shield kullanacağız. Megaya bağlayacağımız sensörlerle aldığımız değerleri hem web browserde online olarak görmek istiyoruz hemde aldığımız bu değerleri SD carda kaydedip, istediğimiz zaman uzaktan ethernet IP'si le SD karta erişip oradan kopyalamak yada almak. Böyle birşey yapmamız mümkün mü acaba ?
NoBody Can Stop Me!!!!!

fide

Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

wtrk

NoBody Can Stop Me!!!!!

fide

Arduino ethernet araması yapınca arduino örnek kodları kendi sitesinden çıkıyor. Aynı şekilde sd kart için de var.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

wtrk

O kodlarla yaptığım derlemeler de malesef olumlu sonuç alamadım.
Onun için burada konu açtım
NoBody Can Stop Me!!!!!

fide

Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

wtrk

Nete bağlanmak mesele değil hocam. Biz nete bağlıyoruz, sonraki aşama buradan sd karta nasıl erişip üzerndeki dosyalara erişebiliriz. Aslında serial monitor üzerinden dosyalarda görüntülenebiliyor ama dosya kopyalamayı beceremedik
NoBody Can Stop Me!!!!!

wtrk

Konumuzu ilerletelim ihtiyacı olan arkadaşlara belki yardımcı oluruz, ayrıca eksiklerimizi belki tamamlayacak bir arkadaş çıkar..




Arkadaşlar Arduinoya web üzerinden sensör değerlerini okutuyorum ekrana  yazdırıyorum ancak, şuanda ihtiyacım olan bu değerleri SD karta kaydedip ordan istediğim zaman IP üzerinden erişmek. Bilgisi olan arkadaşların desteği ricasıyla.


Bu arada yaptığım çalışma kodları ve screenshotu ektedir.


#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(10,15,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><>");
            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><>");
            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><>");
            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><>");
            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><>");
            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><>");
            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");
  }
}







NoBody Can Stop Me!!!!!