web server su sd con tiny e senza

Ciao a tutti, sto per diventare scemo, ho provato vari esempi della libreria del tinywebserver blinkled e non va, mi da perfino errore nella compilazione usando l'ide 1.0 e la libreria aggiornata.
ho provato ad usare l'ide 0023 con una libreria sempre tiny per quella versione dell'ide, copiato i file nella sd, modificato l'ip nel programma, lo carica su arduino ma quando vado ad aprire l'indirizzo dal browser non va.
ho provato a seguire vari esempi nel forum tipo

ma niente da fare non riesco a far funzionare nulla.
ci sarebbe qualche buon anima che mi aiuterebbe a far funzionare almeno un'esempio??? =(
grazie in anticipo

Ti posso dire con certezza che sulla 0022 Finziona. Prova e ci aggiorniamo, se non si connette verifica bene i parametri della tua rete locale. ciao

ciao pablos ho provato come hai detto tu con la 0022 ma niente da fare, non credo che siano le impostazioni della prete perchè con gli esempi della libreria ethernet funziona tutto.
per caso sai c'è qualche requisito particolare per la sd?

Di partcolare nulla, formattala in fat16. Da quanti gb è?

È da 512 Mb ed è anche formattata fat16

quando carichi gli esempi riesci a pingare l'arduino?

ciao mauroz, con l’esempio caricato il ping va bene, nessun pacchetto perso

per la precisione sto usando l’esempio blinkled5
http://arduino.cc/forum/index.php/topic,56928.0.html
da cui ho scaricato il codice e sto usando l’ide 0022

prova a mettere questo e carica qualsiasi pagina html rinominata index.htm che deve essere nella sd ovviamente
IDE 1.0 e cambia l’indirizzo ip

Code:

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

const int SD_CS = 4;
const int ETHER_CS = 10;
byte ip[] = { 192, 168, 2, 177 };
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
boolean file_handler(TinyWebServer& web_server);
boolean index_handler(TinyWebServer& web_server);

TinyWebServer::PathHandler handlers[] = {
  {"/", TinyWebServer::GET, &index_handler },
  {"/" "*", TinyWebServer::GET, &file_handler },
  {NULL},
};

const char* headers[] = {"Content-Length",NULL};
TinyWebServer web = TinyWebServer(handlers, headers);

boolean has_filesystem = true;
Sd2Card card;
SdVolume volume;
SdFile root;
SdFile file;

void send_file_name(TinyWebServer& web_server, const char* filename) {
  if (!filename) {
    web_server.send_error_code(404);
    web_server << F("Could not parse URL");
  } else {
    TinyWebServer::MimeType mime_type = TinyWebServer::get_mime_type_from_filename(filename);
    web_server.send_error_code(200);
    web_server.send_content_type(mime_type);
    web_server.end_headers();
    if (file.open(&root, filename, O_READ)) 
    {
      Serial << F("Read file "); Serial.println(filename);
      web_server.send_file(file);
      file.close();
    } else {
      web_server << F("Could not find file: ") << filename << "\n";
    }
  }
}

boolean file_handler(TinyWebServer& web_server) {
  char* filename = TinyWebServer::get_file_from_path(web_server.get_path());
  send_file_name(web_server, filename);
  free(filename);
  return true;
}

boolean index_handler(TinyWebServer& web_server) {
  send_file_name(web_server, "INDEX.HTM");
  return true;
}

void setup() {
  Serial.begin(9600);
  pinMode(SS_PIN, OUTPUT);	// set the SS pin as an output                                
  digitalWrite(SS_PIN, HIGH);	// and ensure SS is high
  pinMode(ETHER_CS, OUTPUT); 	// Set the CS pin as an output
  digitalWrite(ETHER_CS, HIGH); // Turn off the W5100 chip! (wait for                              
  pinMode(SD_CS, OUTPUT);       // Set the SDcard CS pin as an output
  digitalWrite(SD_CS, HIGH); 	// Turn off the SD card! (wait for
                               
  card.init(SPI_FULL_SPEED, SD_CS); 
  volume.init(&card);  
  root.openRoot(&volume); 
  Ethernet.begin(mac, ip);
  web.begin();
  Serial << F("Ready to accept HTTP requests.\n");
}

void loop() 
{  
    web.process();
}

se non ti va anche questo hai problemi con lib flash

flash.h della 0022



#include <avr/pgmspace.h>
#include <WProgram.h>

#define FLASH_LIBRARY_VERSION 3

flash.h della 1.0



#include <avr/pgmspace.h>
#include <Arduino.h>

#define FLASH_LIBRARY_VERSION 3

ok, le cose grazie a te stanno migliorando
sto facendo tutto conl'ide 1.0
ho sistemato la libreria flash scaricando l'ultima versione da qui Flash | Arduiniana
ho creato una pagina htm molto semplice e nominata INDEX.HTM come mi hai detto te inserendola nella root della sd.
adesso il programma funziona ma quando inserisco l'indirizzo di arduino il browser mi dice "Could not find file: INDEX.HTM ", prima non compariva nulla, come posso risolvere?
ci tengo a ringraziarti per la dritta che mi hai dato sulla libreria

inizio a pensare che sia un problema di sd perchè ho provato a caricare il file CardInfo della libreia SD e mi trova la sd dicendomi che è collegata correttamente però non riesce a trovare la partizione fat16/fat32
può essere troppo piccola?

può essere, avevo avuto inzialmente problemi con una recuperata da un telefonino, poi ho comprato una kingston da 2 gb e vado alla grande :slight_smile:

Ok allora provo perché anch'io ho usato una recuperata da un telefono

ciao pablos ti aggiorno sulla sd...
ho provato una sd fregata dal telefono di mia sorella da 8gb marchiata samsung sdhc e non va, una fregata da un vecchio telefono da 512mb markiata nokia e non va, una sdhc da 4gb di marca ignota e non va poi son riuscito a recuperane una da 2gb come la tu della kingston e va, quando faccio partire il test mi elenca il contenuto.
adesso mi manca da provare con l'index.htm

sono riuscito a far visualizzare la pagina sulla sd, l'esempio blinkled non va mi fa vedere la pagina caricandola lentamente ma tutto sommato poco importa...
grazie per l'aiuto pablos