Aide programation carte Arduino uno + Ethernet Shields

Re ! désolé mais j'ai mis du temps a avoir un nouveau RJ45 :slight_smile:

Alors le flux est a l'adresse e-wok.fr/flux.xml

j'utilise les pin 5,6 et 7

j'ai changer le flux, il contient 1 pour monter et 2 pour descendre je me suis dit qu'il y aurait moins de bug qu'avec une chaîne de caractère.

le flux :

<?xml version="1.0" encoding="ISO-8859-1"?>
<action>1</action>

le code (c'est peut etre la ligne "client.println("Host: e-wok.fr");" que j'ai raté ?) :

#include <SPI.h> // Librairie SPI pour la communication hardware
#include <Ethernet.h> // Librairie Ethernet

byte mac[] = { // Adresse MAC (n'importe quelle adresse fait l'affaire)
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 

IPAddress server(213, 186, 33, 4); // Adresse IP du serveur distant (ici mon serveur web local)

EthernetClient client; // Objet EthernetClient 

int ledPin = 5;                 // LED connectée à la broche numérique 5  LED de monter
int ledPin2 = 6;                 // LED connectée à la broche numérique 6  LED de descente
int ledPin3 = 7;                 // LED connectée à la broche numérique 7 LED d'erreur

// setup()
void setup() {
  
  pinMode(ledPin, OUTPUT);      // met la broche numérique en sortie 
  pinMode(ledPin2, OUTPUT);      // met la broche numérique en sortie 
  pinMode(ledPin3, OUTPUT);      // met la broche numérique en sortie 
  
  Serial.begin(9600); // Initialisation du port série

  if (!Ethernet.begin(mac)) { // Opbtention d'une adresse IP par DHCP
    Serial.println("Erreur DHCP");
    for(;;); // En cas d'erreur on bloque le programme dans une boucle infini
  }
  Serial.println("DHCP OK");
}

// loop()
void loop()
{
  String str; // Chaine de char contenant une ligne de la réponse HTTP
  char c;

  delay(10000); // Delai entre deux requétes

  if (client.connect(server, 80)) { // Connexion au serveur web
    client.println("GET /flux.xml HTTP/1.0"); // Demande de flux.xml en HTTP 1.0
    client.println("Host: e-wok.fr");
    client.println();
  } 
  else {
    Serial.println("Erreur TCP"); // Si erreur lors de la connexion
    return; // quitte loop()
  }

  for(;;) { // Boucle infini
    if(client.available()) { // Si des données son disponible sur l'objet EthernetClient
      c = client.read(); // Lecture d'un octet
      if(c == '\n') { // Si fin de ligne atteinte
      // (Pensez à mettre une ligne vide à la fin de flux.xml)
        if(str.startsWith("<action>")) { // Si la ligne commence par <action>
          str.replace("<action>", ""); // Enléve les balises XML
          str.replace("</action>", "");
          Serial.println(str); // Affiche la valeur du noeud XML
          //  TODO
          if(str == "1") //si le flux contient "1" on ouvre le volet. (allumage de la LED du pin 5)
          {
            digitalWrite(ledPin, HIGH);   // allume la LED
            delay(1000);  // attend une seconde
          }
          if(str == "2") //si le flux contient "2" on ferme le volet. (allumage de la LED du pin 6)
          {
            digitalWrite(ledPin2, HIGH);   // allume la LED
            delay(1000);  // attend une seconde
          }
          else //si le flux contient autre chose il ya un un probleme, on fait clignoter la LED de probleme. (LED du pin 7)
          {
            digitalWrite(ledPin3, HIGH);   // allume la LED
            delay(1000);              // pause
            digitalWrite(ledPin3, LOW);    // eteint la LED
            delay(1000);              // pause
          }
          
          
          break; // Sort de la boucle infini
        } 

        str = ""; // Vidage de la ligne
      } 
      else
        str += c; // Concaténation de l'octet recu dans la chaine de char
    }

    if(!client.connected()) // Si la connexion a été perdu
      break; // Sorti de la boucle infini
  }

  client.stop(); // Fermeture de la connexion avec le serveur
}

Mon problème cette fois est que même la LED d'erreur ne s'allume pas :S je test toujours les circuits donc ça devrai =venir du prog.

L'ip "IPAddress server(213, 186, 33, 4);" est celle de mon serveur mutualisé chez OVH (e-wok.fr)

j’espère que vous pourrez encore m'aidé un peu :slight_smile:

Merci !