Bonjour, je voudrai un peu d'aide, j'aimerai que les noms sur ma page soient différent, je m'explique comme vous pouvez le constater sur le screenshot il y a écrits lampe chauffante deux fois mais j'aimerai qu'il y ai écrits lampe chauffante et à la place de l'autre arroseur mais je n'y arrive pas quand j'essaye il y a écrits deux fois lampe chauffante et deux fois arroseur voici mon code et auriez vous une solution à mon problème svp ?
#include <Ethernet2.h>
#include <SPI.h>
byte mac[] = {0x**, 0x**, 0x**, 0x**, 0x**, 0x**}; //adresse mac de votre carte
byte ip[] = {**,***,**,*}; //adresse IP
unsigned long tpsDep; //temps départ pour la gestion des LED
int pinLed[2] = {2, 3}; //tableau des pins de LED
boolean etatLed[2] = {0, 0}; //tableau des états des LED
int modeLed[2] = {0, 0}; // tableau des modes des LED
EthernetServer serveur(80); // déclare l'objet serveur au port d'écoute 80
void setup() {
for (int l = 0; l < 2; l++) {
pinMode(pinLed[l], OUTPUT);
}
Serial.begin (9600); //initialisation de communication série
Ethernet.begin (mac, ip); //initialisation de la communication Ethernet
Serial.print("*\n-> Le serveur est sur l'adresse : ");
Serial.println(Ethernet.localIP()); //on affiche l'adresse IP de la connexion
serveur.begin(); // démarre l'écoute
}
void loop() {
gestionClient(); // fonction qui gère toute la communication avec le client
gestionLed(); // fonction qui gère l'allumage des LED
}
//----------------------Fonctions----------------------
//fonction qui gère la communication avec le client
void gestionClient() {
EthernetClient client = serveur.available(); //on écoute le port
if (client) { //si client existe
Serial.println("Client en ligne"); //on le dit...
if (client.connected()) { // si le client est connecté
GET(client); //appel de la fonction de décodage
//réponse au client
entete(client); // fonction pour l'entête de la page HTML
corps(client); // fonction pour le corps
piedPage(client); // fonction pour le pied de page
Serial.println("Fin de communication avec le client\n");
client.stop(); //on déconnecte le client
}
}
}
//fonction de fabrication de l'entête HTML
void entete(EthernetClient cl) {
//infos pour le navigateur
cl.println("HTTP/1.1 200 OK"); // type du HTML
cl.println("Content-Type: text/html; charset=ascii"); //type de fichier et encodage des caractères
cl.println("Connection: close"); // fermeture de la connexion quand toute la réponse sera envoyée
cl.println();
//balises d'entête
cl.println("<!DOCTYPE HTML>");
cl.println("<html>");
cl.println("<head><title>Commande de LEDS</title></head>");
cl.println("<body><h1>Commande de LEDS</h1><hr>
");
}
//fonction de fabrication du corps de page
void corps(EthernetClient cl) {
cl.println("
"); // saut de ligne
//boucle pour construire chaque ligne en fonction des LED
for (int l = 0; l < 2; l++) {
cl.print("
LampeChauffante ");
cl.print(1);
cl.print(" ");
Serial.println(l);
switch (modeLed[l]) {
case 0:
cl.print("OFF ");
break;
case 1:
cl.print("ON ");
break;
}
cl.print(" <a href=?"); //création du lien inutile de répéter l'adresse du site
cl.print(l);
cl.println(" target=_self >Changer l'etat</a>
");
}
}
//fonction de fabrication du pied de page
void piedPage(EthernetClient cl) {
//balises de pied de page
cl.println("
<hr>");
cl.println("</body>");
cl.println("</html>");
}
//fonctin décodage GET
void GET(EthernetClient cl) {
boolean lu = 0; //variable pour indiquer l'état de lecture
while (cl.available()) { // tant qu'il a des infos à transmettre
char c = cl.read(); // on lit le caractère
delay(1); //delai de lecture
if (c == '?' && lu == 0) { //si "?" repéré
c = cl.read(); //on lit le caractère suivant qui contient la donnée
int led = int(c) - 48; //on la transforme en nombre
modeLed[led] = (modeLed[led] + 1) % 2; //on change l'état de la LED
delay(10);
lu = 1; // on dit qu'on a lu l'info
}
}
}
//fonction d'allumage des LED par rapport au tableau de mode.
void gestionLed() {
unsigned long tpsAct = millis(); // récupération du temps actuel
if (tpsAct - tpsDep > 250) { //si délai dépassé
for (int l = 0; l < 2; l++) { // chaque LED
if (modeLed[l] == 0) { // si mode éteint
etatLed[l] = 0; // on éteind
}
else if (modeLed[l] == 1) {// si mode allumé
etatLed[l] = 1; //on allume
}
digitalWrite(pinLed[l], etatLed[l]); //on met le pin à jour
tpsDep = tpsAct; //on réinitialise le temps
}
}
}
est ce que la solution serai de dédoubler ?