Bonjour.
En utilisant Serial.println(Ethernet.localIP()); j'ai constaté que l'adresse IP de mon Arduino Uno + Ethernet Shield était différente de celle que je lui ais donné dans son programme, ce qui explique pourquoi je n'arrivais plus à le connecter au réseau:
Adresse IP que j'ai déclarée dans le programme: { 172, 20, 104 , 150 };
Adresse IP reçue par Serial.print(Ethernet.localIP()); : 173,245,235,182
Je travail sur un projet où il est question d'un site accessible en tapant l'adresse ip de l'arduino dans la barre d'adresse du navigateur, jusqu'aujourd'hui mon programme a toujours fonctionné (ça marchait encore au début de ce matin à vrai dire)
Le problème c'est que je travail sur ce projet sur le réseau de l'iut (pour qui le projet est destiné), et il a des restrictions, du coup si l'arduino n'a pas l'adresse MAC et IP que j'ai fais autoriser par l'iut il se connecte pas au réseau.
Le code ressemble pas mal à l'exemple fournit avec L'arduino, a une ou deux lignes près, et avec les adresses IP et MAC concernées.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xD1, 0x39 };
byte ip[] = { 172, 20, 104 , 150 };
EthernetServer server(80);
void setup(){
Serial.begin(9600);
delay(3000);
Ethernet.begin(mac, ip);
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop(){
EthernetClient client = server.available();
while (client.connected()) {
if (client.available()) {
char c = client.read();
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html>");
client.println("<head>");
client.print("<meta http-equiv=\"refresh\" content=\"10\">");
client.println("<title>Test siteweb simple</title>");
client.println("</head>");
client.println("<body>");
client.println("<p>Bonsoir");
client.print("</p>");
client.println("</body>");
client.stop();
}
}
}
void generer_page_html(){
}
Pouvez vous s'il vous plait, m'expliquer pourquoi l'adresse IP que j'ai donné dans le programme et celle reçue avec Serial.print(Ethernet.localIP()); sont subitement différentes ?
Merci.
Edit: l'arduino Uno+shield Ethernet est branché à un switch Ethernet, ça a peut être une importance.