Bien le bonjour !
Voila 2 jours que je suis bloqué avec mon Ethernet Shield, je souhaiterais envoyé des données sur Wamp, mais impossible de connecter l'arduino
Je m'en remet a vous pour espérer trouver une solution, car je desespère
Voila le programme que j'utilise :
192.168.0.102 est mon IP locale
127.0.0.1 l'ip de Wamp
#include <SPI.h>
#include <Ethernet2.h> //Inclure la bibliothèque Ethernet
// Adresse MAC du shield (ici choisie par défaut), l'adresse IP dépend de votre réseau local
byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0x67, 0x91 };
//L'adresse MAC du shield est associée à une adresse IP réseau
IPAddress ip(192,168,0,102); // à choisir sur votre réseau local
EthernetClient client;
EthernetServer server(80); //Initialise le serveur Ethernet, port 80 par défaut pour HTTP
void setup()
{
Serial.begin(9600); //Affichage écran du PC
Ethernet.begin(mac, ip); //Démarer la connexion Ethernet et le serveur
}
void loop()
{
if (client.connect("127.0.0.1",80)) { // remplacer par l'adresse IP de votre serveur-ordi
client.print( "GET /test2_votre nom de famille/add.php?");
client.print("test");
client.println( " HTTP/1.1");
client.println( "Host: 127.0.0.1" );
client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
Serial.print("donnee ecrite");
}
else
{
Serial.println("probleme de connection");
}
if (client.connected()) {
client.stop(); // DISCONNECT FROM THE SERVER
}
delay(30000); // attente en millisecondes
}
Et la seule chose que je reçois dans le moniteur :
Bonjour,
cette adresse est l'adresse de loopback (ou local host) sur ton serveur, elle n'est pas utilisable par un client depuis une autre machine. Ton serveur a certainement une adresse en 192.168.0.xxx sur ton réseau
L'adresse 127.0.0.1 n'est utilisable par une machine que pour communiquer avec elle-même, entre processus par exemple.
Deux machines ne peuvent communiquer sur un même réseau que si les trois premiers nombres de son adresse IP sont identique (si le masque est à FF ce qui est souvent le cas).
Si ARDUINO = 192,168,0,102, alors le PC doit aussi avoir une adresse commençant par 192.168.0
rjnc38:
Bonjour,
cette adresse est l'adresse de loopback (ou local host) sur ton serveur, elle n'est pas utilisable par un client depuis une autre machine. Ton serveur a certainement une adresse en 192.168.0.xxx sur ton réseau
192.168.0.102 est l'IP que tu as attribué à l'ARDUINO.
Ton PC en a forcément une aussi.
Pour l'obtenir, va voir dans les paramètre réseau de Windows.
Ou entre la commande ipconfig dans un terminal.
Il s'agit de l'adresse de ton interface ethernet si tu est en filaire, WIFI sinon.
Autre problème : le DHCP.
Si l'adresse IP de ton PC change, tu devras recompiler ton code.
Fixer l'adresse du PC est une bonne chose, dans la box de préférence.
Pas possible.
Si l'adresse du PC est 192.168.0.102, l'adresse de l'ARDUINO doit obligatoirement commencer par 192.168.0.
Evidemment évite de choisir une adresse déjà prise par un autre PC.
Réserver l'adresse de l'ARDUINO dans la box (IP locale fixe) est une bonne précaution. Cela évitera que le DHCP de la box attribue cette adresse à une autre machine.
rjnc38:
non
ton arduino est déja en ip fixe par ces 2 lignes a l'adresse 192.168.0.102
IPAddress ip(192,168,0,102);
Ethernet.begin(mac, ip);
avant toute chose il faut bien connaitre ta config reseau :
- tu fais un ipconfig de ton PC en ligne de cde (sous windows : executer cmd puis ipconfig)
- tu regardes la plage d'adresses DHCP attribuée par ta box
- tu choisis une adresse hors DHCP pour ton Arduino
- tu passes ton PC en adresse fixe avec une adresse hors DHCP
J'ai tester, mais ça ne marche toujours pas
Mon DHCP va de .100 à .199
[code]#include <SPI.h>
#include <Ethernet2.h> //Inclure la bibliothèque Ethernet
// Adresse MAC du shield (ici choisie par défaut), l'adresse IP dépend de votre réseau local
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
//L'adresse MAC du shield est associée à une adresse IP réseau
IPAddress ip(192,168,0,201); // à choisir sur votre réseau local
EthernetClient client;
EthernetServer server(80); //Initialise le serveur Ethernet, port 80 par défaut pour HTTP
void setup()
{
Serial.begin(9600); //Affichage écran du PC
Ethernet.begin(mac, ip); //Démarer la connexion Ethernet et le serveur
}
void loop()
{
if (client.connect("192.168.0.200",80)) { // remplacer par l'adresse IP de votre serveur-ordi
client.print( "GET /Projet/page.php?");
client.print("test");
client.println( " HTTP/1.1");
client.println( "Host: 192.168.0.200" );
client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
Serial.print("donnee ecrite");
}
else
{
Serial.println("probleme de connection");
}
if (client.connected()) {
client.stop(); // DISCONNECT FROM THE SERVER
}
delay(30000); // attente en millisecondes
}
tu fais un ipconfig de ton PC en ligne de cde (sous windows : executer cmd puis ipconfig)
peux tu nous donner le résultat
et par la même occasion dans la fenetre cmd tu fais ping 192.168.0.201 lorsque l'arduino est en service et connecté au réseau
Ok alors, je me suis renseigné un peu plus et apparement il ne faut pas utiliser le dhcp d'un routeur en plus d'une box, j'ai viré le DHCP du routeur et la nouvelle adresse du PC est 192.168.1.24, et j'ai attribué l'adresse 192.168.1.151 a mon arduino (en tant qu'ip fixe).
ça arrivera a ce connecté ou non ? (la plage DHCP est 10 à 150)