Activé une led à partir du connection web client

Bonjour,

Je vous explique. J’aimerais déclencher une led connectée à mon Arduino à distance.

Par contre, il est important pour moi de ne pas avoir à ouvrir les ports du routeur. C’est à dire, je voudrais juste avoir à connecter l’arduino au réseau et ça marche !

Du coup, je ne veux pas utiliser l’Arduino en serveur mais en client. C’est à dire que régulierment l’arduino charge une page web sur lauquelle il y a soit un 1 ou soit un 0. Si la page web indique 1, la led s’allume.

Premièrement, j’aimerais savoir ce que vous penez de cette solution et si vous connaissez des projets qui fonctionnent sur cette base.

Maintenant, j’ai un problème dans le code, en effet, lors du premier loop tout marche bien, mais à la deuxiéme boucle, le curseur caractère ne remonte pas jusqu’en haut, peut-être pouvez-vous m’aider ? :roll_eyes:

Merci beaucoup,

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

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.------m";    // name address for Google (using DNS)
int led = 8;
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,0,177);

// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

unsigned long lastConnectionTime = 0;          // last time you connected to the server, in milliseconds
boolean lastConnected = false;                 // state of the connection last time through the main loop
const unsigned long postingInterval = 60*100;  // delay between updates, in milliseconds

void setup() {
  pinMode(led, OUTPUT);
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
   
    client.println("GET /Ard-----.php HTTP/1.1");
    client.println("Host: www.--------om");
    client.println("Connection: close");
    client.println();
  } 
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop()
{
  // if there are incoming bytes available 
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
    if (c=='?'){
      Serial.print("-step1----");
      char c = client.read();
      Serial.print(c);
      if (c=='1'){
        Serial.print("-step2----");
      char c = client.read();
      Serial.print(c);
      digitalWrite(led, HIGH); 
      delay(5000);               // wait for a second
      digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
      client.stop();
      client.flush();
      Serial.println("disconnecting.");
      }
    }  
  }

  // if the server's disconnected, stop the client:
  if (!client.connected() && lastConnected ) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    client.flush();
    //do nothing forevermore:
    //while(true);
  }
  
  // if you're not connected, and ten seconds have passed since
  // your last connection, then connect again and send data:
  if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) {
    httpRequest();
  }
  // store the state of the connection for next time through
  // the loop:
  lastConnected = client.connected();
}

// this method makes a HTTP connection to the server:
void httpRequest() {
  // if there's a successful connection:
  if (client.connect(server, 80)) {
    Serial.println("connecting...");
    // send the HTTP PUT request:
    client.println("GET /---.php HTTP/1.1");
    client.println("Host: www.f-----om");
    client.println("User-Agent: arduino-ethernet");
    client.println("Connection: close");
    client.println();

    // note the time that the connection was made:
    lastConnectionTime = millis();
  } 
  else {
    // if you couldn't make a connection:
    Serial.println("connection failed");
    Serial.println("disconnecting.");
    client.stop();
    client.flush();
  }
}

Bonjour,

Tu auras besoin de faire quelques modif pour adapter mon code mais c'est en gros ce que tu cherches à faire :

Merrrciii beauuucoouuuupp