Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème shield arduino ethernet

plantage

Sujet résolu
    10 décembre 2013 à 18:09:08

    Bonjours à tous,

    Voilà mon problème j'ai un shield arduino ethernet officiel sur un carte arduino mega.

    J'ai un exemple de programme qui lit les entrées analogiques et qui les affiches sur la page web, ma carte est directement reliée au pc.

    Après environ 5 chargements de page firefox me dit que l’adresse de la carte est introuvable. Après plusieur essai je me suis rendu compte que c'est au bout de 30s chargement ou pas avant. Pour que ça remarche 30 s je dois rebrancher le cable réseau charger une page puis rebrancher et appuyer sur reset de la carte.

    Je ne comprends vraiment rien.

    /*
      Web Server
     
     A simple web server that shows the value of the analog input pins.
     using an Arduino Wiznet Ethernet shield.
     
     Circuit:
     * Ethernet shield attached to pins 10, 11, 12, 13
     * Analog inputs attached to pins A0 through A5 (optional)
     
     created 18 Dec 2009
     by David A. Mellis
     modified 9 Apr 2012
     by Tom Igoe
     
     */
    
    #include <SPI.h>
    #include <Ethernet.h>
    
    // Enter a MAC address and IP address for your controller below.
    // The IP address will be dependent on your local network:
    byte mac[] = {
      0x90, 0xA2, 0xDA, 0x00, 0x9D, 0xFC };
    IPAddress ip(192,168,1,177);
    
    // 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() {
     // 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 and the server:
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.print("server is at ");
      Serial.println(Ethernet.localIP());
    }
    
    
    void loop() {
      // listen for incoming clients
      EthernetClient client = server.available();
      if (client) {
        Serial.println("new client");
        // an http request ends with a blank line
        boolean currentLineIsBlank = true;
        while (client.connected()) {
          if (client.available()) {
            char c = client.read();
            Serial.write(c);
            // if you've gotten to the end of the line (received a newline
            // character) and the line is blank, the http request has ended,
            // so you can send a reply
            if (c == '\n' && currentLineIsBlank) {
              // send a standard http response header
              client.println("HTTP/1.1 200 OK");
              client.println("Content-Type: text/html");
              client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 5");  // refresh the page automatically every 5 sec
              client.println();
              client.println("<!DOCTYPE HTML>");
              client.println("<html>");
              // output the value of each analog input pin
              for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
                int sensorReading = analogRead(analogChannel);
                client.print("analog input ");
                client.print(analogChannel);
                client.print(" is ");
                client.print(sensorReading);
                client.println("<br />");      
              }
              client.println("</html>");
              break;
            }
            if (c == '\n') {
              // you're starting a new line
              currentLineIsBlank = true;
            }
            else if (c != '\r') {
              // you've gotten a character on the current line
              currentLineIsBlank = false;
            }
          }
        }
        // give the web browser time to receive the data
        delay(1);
        // close the connection:
        client.stop();
        Serial.println("client disconnected");
      }
    }



    -
    Edité par Max2112 10 décembre 2013 à 18:10:34

    • Partager sur Facebook
    • Partager sur Twitter
      11 décembre 2013 à 16:22:39

      C'est bon je me suis débloqué tout seul, j'ai configurer l'ipv4 de mon pc en mettant

      ip:196.254.10.3

      masque sous réseau; 255.255.255.0

      passerelle par défaut: 196.254.10.1

      avec le code suivant:

      #include <SPI.h>
      #include <Ethernet.h>
      #include <Server.h>
      #include <Client.h>
      
      
      
      byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9D, 0xFC };
      
      byte ip[] = { 169,254,10,2 };
      
      byte passerelle[] = { 169, 254, 10, 1 };
      
      byte masque[] = { 255, 255, 255, 0 }; 
      EthernetServer server(80);
       
      void setup() {
       // 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 and the server:
        Ethernet.begin(mac, ip);
        server.begin();
        Serial.print("server is at ");
        Serial.println(Ethernet.localIP());
      }
       
       
      void loop() {
        // listen for incoming clients
        EthernetClient client = server.available();
        if (client) {
          Serial.println("new client");
          // an http request ends with a blank line
          boolean currentLineIsBlank = true;
          while (client.connected()) {
            if (client.available()) {
              char c = client.read();
              Serial.write(c);
              // if you've gotten to the end of the line (received a newline
              // character) and the line is blank, the http request has ended,
              // so you can send a reply
              if (c == '\n' && currentLineIsBlank) {
                // send a standard http response header
                client.println("HTTP/1.1 200 OK");
                client.println("Content-Type: text/html");
                client.println("Connection: close");  // the connection will be closed after completion of the response
            client.println("Refresh: 5");  // refresh the page automatically every 5 sec
                client.println();
                client.println("<!DOCTYPE HTML>");
                client.println("<html>");
                // output the value of each analog input pin
                for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
                  int sensorReading = analogRead(analogChannel);
                  client.print("analog input ");
                  client.print(analogChannel);
                  client.print(" is ");
                  client.print(sensorReading);
                  client.println("<br />");     
                }
                client.println("</html>");
                break;
              }
              if (c == '\n') {
                // you're starting a new line
                currentLineIsBlank = true;
              }
              else if (c != '\r') {
                // you've gotten a character on the current line
                currentLineIsBlank = false;
              }
            }
          }
          // give the web browser time to receive the data
          delay(1);
          // close the connection:
          client.stop();
          Serial.println("client disconnected");
        }
      }



      -
      Edité par Max2112 11 décembre 2013 à 16:24:13

      • Partager sur Facebook
      • Partager sur Twitter

      Problème shield arduino ethernet

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown