Urgent carte SD

Bonjour , j'ai pour projet du BAC en STI2D SIN , un système de gestion de commande de véhicule , héberge par un serveur WEB avec Arduino Ethernet . Le site serait fait entièrement en HTML JAVASCRIPT CSS implanté dans la carte SD , j'ai fait le programme Arduino , mais il ne fonctionne pas et je ne voie d’où vient l'erreur , je colle si dessous le programme , en vous remerciant d'avance . Arduino84

#include <Ethernet.h>
#include <SPI.h>
#include <Server.h>
#include <Client.h>
#include <SD.h>
boolean reading;

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x67, 0xFF }; //L'adresse MAC de votre shield Ethernet (normalement il se trouve sous la carte

IPAddress ipLocal(172, 18, 24 , 54);

byte gateway[] = { 172, 18, 27 , 242 };         

byte subnet[] = { 255, 255, 255, 0 };


EthernetServer serveurHTTP(80); 
String chaineRecue=""; 
int comptChar=0; 
EthernetServer server(80); 
void setup() {
Serial.begin(115200); 
Ethernet.begin(mac, ipLocal); 
delay(1000);
Serial.print("Shield Ethernet OK : L'adresse IP du shield Ethernet est :" );
Serial.println(Ethernet.localIP());
serveurHTTP.begin();
Serial.println("Serveur Ethernet OK : Ecoute sur port 80 (http)");
}
void loop(){
  if (!SD.begin(4)) {
    Serial.println("STI2D");
    return;
    File theFile;
theFile = SD.open("index.html", FILE_WRITE);
  if (theFile) {
    Serial.println("STI2D");
    // lecture du fichier jusqu'à la fin:
    while (theFile.available()) {
    Serial.write(theFile.read());
  }
  // Fermeture du fichier:
  theFile.close();
} 
EthernetClient client = serveurHTTP.available();
if (client) { // si l'objet client n'est pas vide
// le test est VRAI si le client existe
// message d'accueil dans le Terminal Série
Serial.println ("--------------------------");
Serial.println ("Client present !");
Serial.println ("Voici la requete du client:");
chaineRecue=""; 
comptChar=0; 
if (client.connected()) { 
  // Ouverture impossible:
  Serial.println("Ouverture impossible");

while (client.available()) { 
char c = client.read(); 
comptChar=comptChar+1; 
Serial.print(c); 
if (comptChar<=100) chaineRecue=chaineRecue+c;
}
Serial.println ("Reception requete terminee");
Serial.println(F("------------ Affichage de la requete recue ------------"));
// affiche le String de la requete
Serial.println (F("Chaine prise en compte pour analyse : "));
Serial.println(chaineRecue); 
Serial.println(F("------------ Analyse de la requete recue ------------")); 
//------ analyse si la chaine reçue est une requete GET --------
 // fin if GET
Serial.println (F("Requete HTTP non valide !"));
} // fin else
//------ fermeture de la connexion ------
// fermeture de la connexion avec le client après envoi réponse
delay(1); // laisse le temps au client de recevoir la réponse
client.stop();
Serial.println(F("------------ Fermeture de la connexion avec le client------------")); // affiche le String de la requete
Serial.println (F(""));
} // --- fin if client connected
} //---- fin if client ----
}

Tu pourrais mettre ton code entre les balises [code ] et [/ code] (sans les espaces).
Ensuite:
Tu dis que c'est sur un serveur WEB, mais que tout est implémenté dans la carte SD ...
Veux-tu faire un système WEB ou un système commandé par la SD ? Ou peut-être veux-tu rendre tes données accessibles sur un serveur web ...
Tu dis avoir des erreurs, dans ce cas quelles sont-elles ? Erreurs sur le port série ? Pas de communication ? Bref, il faut plus de détails .

Bonjour,

  1. Met ton code entre balises code #
  2. Donne plus de détails sur les erreurs rencontrées
  3. Je ne vois aucune gestion du protocole HTTP ... ça ne se fait pas tout seul !
  4. Tu devrais regarder "webduino", ça te simplifierai grandement la vie (tu as pleins d'exemple d'utilisations sur le forum)

Voila j'ai mis les balises code , il me reste 5 jours avant mon examen , et je suis toujours bloqué pou mon bac , alors voila je vous explique tous :
je dois simplement faire un site avec authentification du client , puis commande du véhicule , avec le lieu demandé par le client ( le prof m'as dit que sa se fait avec des variables ) , il faudrait faire sa avec ma carte Arduino , J'ai fait le site avec l'identifiant et le mot de passe mais apparemment ce n'es pas sa ,
il veut que sa le récupère directement d'une variable sous forme de tableau ( Regarde fichier Demande )
Il faut que le client soie reconnu ( Bonjour Monsieur -------- )
Une fois que les données sont récupérer grâce a la validation du client , on regarde les disponibilité
Si la voiture est non disponible proposer un autre moments , il faut récupérer les informations sous forme de variables , elle seront lu par un autre élève
Identifiant = Variable
Mot de passe = Variable
Date = Variable
Heure = Variable
Départ = Variable
Arrivé = Variable
Nombres de passagers = Variable
Il faut que le site soie dans la carte SD de l’Ethernet Shield et que les variables soie lu a partir de l’Ethernet Shield

Je peut vous envoyer mon site par mail , je serais même prêt a payer la personne qui m'aide , s'il vous plais sa m’inquiète , tenez guermoudi84@gmail.com :frowning: Je vous remerci d'avance car je perds totalement espoir . Il ne me reste plus que 5 jours .

Bonjour , alors voila , je dois réaliser un projet arduino ethernet shield avec micro sd afin de faire un server web , dans la carte SD et le site s'affiche correctement ( sauf fond écran mais je verrais plus tard ) , le site consiste a commander un véhicule , j'aimerai que dès que je clique sur commander , l'arduino récupère les informations sous forme de variables , les stocks , et indique l'heure , la date , le nombre de place et la destination sur le moniteur série pour confirmé que la carte a arduino a bien récupérer les données du site , PS ; c'est très urgent il me reste plus que 5 jours pour terminer se projet , merci a tous :slight_smile: alors je vous transmets les codes :

HTML

<table>
		<tr>
			<td width="150" rowspan="4" style="border-right: 1px solid #ddd;">Choisir vos nombre de place , l'heure et la date  : </td>
			<th width="200">Heure</th>
			<td>
			<select name="Heure" id="Heure">
			<option value="no">Aucun</option>
			<option value="1">08h00</option><option value="5">09h00</option><option value="2">10h00</option><option value="4">11h00</option><option value="8">12h00</option><option value="3">14h00</option><option value="11">15h00</option><option value="6">16h00</option><option value="12">17h00</option><option value="9">18h00</option><option value="10">19h00</option><option value="7">20h</option>			</select>
			</td>
		</tr>
		<th width="200">Date</th>
			<td>
			<select name="Date" id="Date">
			<option value="no">Aucun</option>
			<option value="3">Lundi</option><option value="11">Mardi</option><option value="6">Mercredi</option><option value="12">Jeudi</option><option value="9">Vendredi</option><option value="10">Samedi</option><option value="7">Dimanche</option>			</select>
			</td>
		</tr>
		<tr>
		<tr>
			<th>Nombre de place</th>
			<td>
			<select name="Places" id="Places">
			<option value="no">Aucune</option>
			<option value="1.8">2</option><option value="2.5">3</option><option value="3.5">4</option><option value="Carte">6</option>			</select>
			</td>
		</tr>
	</table>
</div>
<div class="post" id="filtre">
	<table>
		<tr>
			<td width="150" rowspan="4" style="border-right: 1px solid #ddd;">Choisir votre emplacement et votre destination : </td>
			<th width="200">Emplacement</th>
			<td>
			<select name="Emplacement" id="Véhicule">
			<option value="no">Aucun</option>
			<option value="1">Rue de la république</option><option value="5">Place pie</option><option value="2">Auchan</option><option value="4">Cap sud</option><option value="8">Courtine</option><option value="3">Campus philippe de girard</option><option value="11">Villeneuve-les-avignon</option><option value="6">Sorgue</option><option value="12">Le pontet</option><option value="9">Montfavet</option><option value="10">Gare SNCF</option><option value="7">Gare TGV </option>			</select>
			</td>
		</tr>
		<tr>
		<tr>
			<th>Lieu de déstination</th>
			<td>
			<select name="Places" id="Places">
			<option value="no">Aucune</option>
			<option value="1">Rue de la république</option><option value="5">Place pie</option><option value="2">Auchan</option><option value="4">Cap sud</option><option value="8">Courtine</option><option value="3">Campus philippe de girard</option><option value="11">Villeneuve-les-avignon</option><option value="6">Sorgue</option><option value="12">Le pontet</option><option value="9">Montfavet</option><option value="10">Gare SNCF</option><option value="7">Gare TGV </option>			</select>
			</td>
		</tr>
	</table>
	<p align="right" style="padding-right: 12px;"><input class="btn_input" type="submit" value="Commandez" id="Commandez" name="Commandez"></p>
<script language=vbscript>
Set fs = CreateObject("Scripting.FileSystemObject" )
Set a = fs.CreateTextFile("c:\testfile.txt", True) <--ton fichier à créer
a.WriteLine("This is a test." )  <--la,tu mets tes données(fais une boucle for pr ttes les écrires)
a.Close
</script>
</div><!-- #filtre -->

<head>
  <meta charset="UTF-8">		
  <title>Fond extensible - version CSS</title>
  <link rel="stylesheet" href="style.css" type="text/css" media="screen"/>		
</head>

CODE ARDUINO

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

// MAC address from Ethernet shield sticker under board
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x67, 0xFF };
IPAddress ip(192, 168, 0, 12); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80

File webFile;

String HTTP_req = "";     // stores the received HTTP request

void setup()
{
    Ethernet.begin(mac, ip);  // initialize Ethernet device
    server.begin();           // start to listen for clients
    Serial.begin(115200);       // for debugging
    
    // initialize SD card
    Serial.println("Initializing SD card...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - SD card initialization failed!");
        return;    // init failed
    }
    Serial.println("SUCCESS - SD card initialized.");
    // check for index.htm file
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // can't find index file
    }
    Serial.println("SUCCESS - Found index.htm file.");
}
          
void loop()
{
    EthernetClient client = server.available();  // try to get client

    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c = client.read(); // read 1 byte (character) from client
                HTTP_req += c;          // save HTTP request character
                Serial.print(c);    // print HTTP request character to serial monitor
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                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("Connnection: close");
                               client.print("<body style="),client.print(byte(34)); // <body style="
           client.print("color: rgb(255, 255, 0); background-color: rgb(0, 0, 255);");
           //color: rgb(255, 255, 0); background-color: rgb(0, 0, 255);
           client.print(byte(34)),client.print(">") ;  // " >  
           client.println("
");
                    client.println();
                    // send web page
                    if ((HTTP_req.indexOf("GET / ") > -1)
                                 || (HTTP_req.indexOf("GET /index.htm") > -1)) {
                        webFile = SD.open("page1.htm");        // open web page file
                    }
                    else if (HTTP_req.indexOf("GET /page2.htm") > -1) {
                        webFile = SD.open("page2.htm");        // open web page file
                    }
                    if (webFile) {
                        while(webFile.available()) {
                            client.write(webFile.read()); // send web page to client
                        }
                        webFile.close();
                    }
                    HTTP_req = "";  // empty the string
                    break;
                }
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                } 
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        client.stop(); // close the connection
    } // end if (client)
}

Pourquoi tu inclut <Tinywebserver.h> sans pour autant l'utiliser ...
Cette librairie gère tout le protocole HTTP si t l'utilises correctement pourquoi tu t'entête à gérer les requêtes toi même ?

Tu as un exemple de ce que tu veut faire dans les exemples de la librairie en plus :

Merci de me répondre , je suis très heureux car il me reste très peut de temps alors voila se que m'affiche les probleme :

Cartesd2:15: error: variable or field 'send_file_name' declared void
Cartesd2:15: error: 'TinyWebServer' was not declared in this scope
Cartesd2:15: error: 'web_server' was not declared in this scope
Cartesd2:15: error: expected primary-expression before 'const'
Cartesd2:14: error: 'TinyWebServer' was not declared in this scope
Cartesd2:14: error: 'web_server' was not declared in this scope
Cartesd2:15: error: 'TinyWebServer' was not declared in this scope
Cartesd2:15: error: 'web_server' was not declared in this scope
Cartesd2:30: error: 'TinyWebServer' has not been declared
Cartesd2:30: error: expected constructor, destructor, or type conversion before 'handlers'

Est-ce que tu as au moins pris le temps d'installer la librairie TinyWebServer ?

Oui enfin je croit , il faut mettre le fichier dans librairies Desktop\arduino-1.0.4\libraries\TinyWebServer Comme sa ?

Oui, attention à ne pas avoir de sous dossier libraries\TinyWebServer\TinyWebServer (ou autre).

Non , il est correctement installé , d’où peut venir le problème ? Il me reste peut de jours pour l'examen :frowning:

Arduino84:
Non , il est correctement installé , d’où peut venir le problème ? Il me reste peut de jours pour l'examen :frowning:

C'est ton installation qui déconne, l'exemple marche nikel chez moi :

Binary sketch size: 23 934 bytes (of a 32 256 byte maximum)

Il te faut :

et :
http://arduiniana.org/libraries/flash/

Je vais essayer et je te dit de-suite :slight_smile:

ça marche toujours pas , et Flash c'est en anglais je comprends pas :frowning: