Requête HTTP

Bonjour,

J’ai connecté a ma Arduino UNO, un shield ethernet et y est téléversé ce code :

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

boolean incoming = 0;

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(182,158,0,1); //<<< ENTER YOUR IP ADDRESS HERE!!!

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
  pinMode(2, OUTPUT);

  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
}

void loop()
{
  //on regarde si y'a au moins un client
  EthernetClient client = server.available();
  if (client) {
    
    //une requete http se finit par une ligne blanche
    boolean currentLineIsBlank = true;
    
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        /*si on arrive à la fin d'une ligne (nouvelle ligne de caractères reçu) et que la ligne est blanche,
        la requete http est finie, donc on peut envoyer une réponse */
        
        //il lit la chaine de caractère de l'url du '

En gros, quand je rentre dans mon navigateur : “http://182.158.0.1/$1”, ça allume ma LED ; si j’entre"http://182.158.0.1/$2", ça éteint la LED.
Mon problème est que ça ne marche qu’avec l’ordinateur depuis lequel j’ai téléversé le programme (la Arduino n’y est même pas branché quand je l’utilise elle est branchée sur un autre ordi). J’ai essayé avec téléphone, tablette, un autre ordinateur rien n’y fait : aucune réaction de ma LED…

Aidez-moi svp ^^

Merci :slight_smile: jusqu’à la première ligne blanche
        if(incoming && c == ’ '){
          incoming = 0;
        }
        if(c == ’


En gros, quand je rentre dans mon navigateur : "http://182.158.0.1/$1", ça allume ma LED ; si j'entre"http://182.158.0.1/$2", ça éteint la LED.
Mon problème est que ça ne marche qu'avec l'ordinateur depuis lequel j'ai téléversé le programme (la Arduino n'y est même pas branché quand je l'utilise elle est branchée sur un autre ordi). J'ai essayé avec téléphone, tablette, un autre ordinateur rien n'y fait : aucune réaction de ma LED...

Aidez-moi svp ^^

Merci :)){ 
          incoming = 1; 
        }
        
        //on regarde la valeur de la chaine de caractère ($1 ou $2)
        if(incoming == 1){
          Serial.println(c);
          
          if(c == '1'){
            Serial.println("ON");
            digitalWrite(2, HIGH);
          }
          if(c == '2'){
            Serial.println("OFF");
            digitalWrite(2, LOW);
          }
        
        }

        if (c == '\n') {
          //on commence une nouvelle ligne
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          //on a un caractère sur la ligne en cours
          currentLineIsBlank = false;
        }
      }
    }
    //on laisse le navigateur web le temps de recevoir les données
    delay(1);
    //on éteint la connection
    client.stop();
  }
}

En gros, quand je rentre dans mon navigateur : “http://182.158.0.1/$1”, ça allume ma LED ; si j’entre"http://182.158.0.1/$2", ça éteint la LED.
Mon problème est que ça ne marche qu’avec l’ordinateur depuis lequel j’ai téléversé le programme (la Arduino n’y est même pas branché quand je l’utilise elle est branchée sur un autre ordi). J’ai essayé avec téléphone, tablette, un autre ordinateur rien n’y fait : aucune réaction de ma LED…

Aidez-moi svp ^^

Merci :slight_smile:

Chaque appareil de ton réseau a sa propre adresse IP
http://182.158.0.1 pour l'ordinateur
http://182.158.0.2 pour un autre truc...