Bonjour,
J'ai un sketch pour commander de l'éclairage chez moi et j'aimerai y ajouter le sketch de john_lenfr pour l'authentification mais je n'y arrive pas, à chaque fois j'ai des résultats aléatoire (pages blanches, ou j'arrive à me logger mais rien derrière bref.. il y a des choses qui m'échappent..)
Voici mon code
#include <SPI.h>
#include <Ethernet.h>
#include <Server.h>
#include <Client.h>
#include <Flash.h>
const int LED[7]={2,3,5,6,7,8,9};
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0x0C, 0x3F };
IPAddress ip(192,168,0,30);
byte passerelle[] = { 192, 168, 0, 1 };
byte masque[] = { 255, 255, 255, 0 };
String chaineRecue="";
int comptChar=0;
String etatCase[7]={ "","","","","","",""};
EthernetServer server(80);
void setup() {
Serial.begin(115200);
Ethernet.begin(mac, ip, passerelle, masque);
server.begin();
for (int i=0; i<=6; i++) {
pinMode (LED[i],OUTPUT);
}
}
void loop(){
EthernetClient client = server.available();
if (client) {
Serial.println(F("------------ Connexion Client ------------"));
Serial.println (F(""));
Serial.println(F("Detection client..."));
chaineRecue="";
comptChar=0;
if (client.connected()) {
Serial.println(F("Connexion avec client OK ... "));
Serial.println(F(""));
Serial.println(F("------------ Reception de la requete Client ------------"));
Serial.println (F(""));
while (client.available()) {
char c = client.read();
comptChar=comptChar+1;
if (comptChar<=100) chaineRecue=chaineRecue+c;
Serial.print(c);
}
Serial.println(F("Reception requete client terminee... "));
Serial.println(F(""));
Serial.println(F("------------ Analyse de la requete recue ------------"));
Serial.println (F(""));
Serial.print (F("Chaine prise en compte pour analyse : "));
Serial.println(chaineRecue);
Serial.println ("");
String chaineAnalyse="";
int indexChaine=0;
int longeurChaine=chaineRecue.length();
Serial.print(F("La longueur de la chaine est : ")), Serial.println(longeurChaine);
if (chaineRecue.startsWith("GET")) {
Serial.println (F("La requete recue est une GET"));
}
indexChaine=5;
chaineAnalyse=chaineRecue.substring(indexChaine,indexChaine+1);
Serial.print(F("Le 6eme caractere est : ")), Serial.println(chaineAnalyse);
if (chaineAnalyse == "?") {
Serial.println(F("Donnees de formulaire disponibles !"));
for (int i=0; i<=6; i++) {
chaineAnalyse="L"+String(i+1)+"=ON";
if (chaineRecue.indexOf(chaineAnalyse)!=-1){
etatCase[i]="checked";
Serial.print(F("Etat de la case a cocher ")), Serial.print(i+1),Serial.print(F(" : ON => "));
digitalWrite(LED[i],HIGH);
Serial.print(F("LED ")), Serial.print(i+1), Serial.println(F(" allumee"));
}
else {
etatCase[i] ="";
Serial.print(F("Etat de la case a cocher ")), Serial.print(i+1),Serial.print((" : OFF => "));
digitalWrite(LED[i],LOW);
Serial.print(F("LED ")), Serial.print(i+1), Serial.println(F(" eteinte"));
}
}
}
else {
Serial.println(F("Aucune donnee de formulaire disponible !"));
}
Serial.println(F(""));
Serial.println(F("Analyse requete terminee..."));
Serial.println(F(""));
Serial.println(F("------------ Envoi de la reponse au client ------------"));
Serial.println (F(""));
Serial.println(F("Envoi de la reponse HTTP au client..."));
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
client.println(F("Connection: close"));
client.println();
Serial.println(F("Envoi de la reponse HTML au client..."));
Serial.println(F(""));
client.println(F("<html>"));
client.println(F("<head>"));
client.println(F("<title>Connexion au Serveur Arduino</title>"));
client.println(F("</head>"));
client.println(F("<body style=\"color: rgb(21, 138, 183); background-color: rgb(255, 255, 128);\">"));
client.println(F("
"));
client.println(F("<center>"));
client.println(F("*************************************************
"));
client.println(F("Commande des eclairages
"));
client.println(F("*************************************************
"));
client.println(F("
"));
for (int i=0; i<=6; i++) {
if (etatCase[i]=="checked") client.print(F("Eclairage ")), client.print(i+1), client.println(F(" allumee
"));
if (etatCase[i]=="")client.print(F("Eclairage ")), client.print(i+1), client.println(F(" eteinte
"));
}
client.println(F("<FORM method=\"get\" action=\"http://192.168.0.30:80/\">"));
client.println(F("<P>"));
client.println(F("<INPUT type=\"text\" style=\"display:none\" name=\"vide\" value=\"\"
"));
for (int i=0; i<=6; i++) {
client.print(F("<INPUT type=\"checkbox\" name=\"L")),client.print(i+1), client.print(F("\" value=\"ON\" "));
client.print(etatCase[i]);
client.print(F("> Allume/Eteint l'eclairage ")),client.print(i+1), client.println(F(" connectee
"));
}
client.println(F("<INPUT type=\"submit\" value=\"envoi\"> "));
client.println(F("</P>"));
client.println(F("
"));
client.println(F("</center>"));
client.println(F("</FORM>"));
client.println(F("
"));
client.println(F("</body>"));
client.println(F("</html>"));
}
delay(1);
client.stop();
Serial.println(F("------------ Fermeture de la connexion avec le client ------------"));
Serial.println (F(""));
Serial.println(F(""));
Serial.println(F("Fin de la connexion avec le client"));
Serial.println(F("Fin existence client"));
Serial.println(F(""));
}
}
Si une bonne âme a un peu de temps pour que je rentre mes rames...
Merci ^^