Super, ça marche !
ma 1ère communication Arduino/ordinateur fonctionne, sur tes conseils ! C'est le premier pas.
Pour préciser ce que je veux faire : connecter un ordi quelconque sur l'arduino, directement par câble ethernet, et recevoir dans le browser internet de cet ordi des données en temps réel comme "LED allumée" ou la température d'une sonde. Puis donner des ordres ... mais ça c'est l'étape suivante.
Ce que j'ai fait (je décortique pour les débutants qui me liraient) :
- ordi connecté au ethernet shield par câble ethernet (câble croisé ou non, peu importe les 2 marchent bien, t'avais raison).
- chargement du code ci-dessous avec l'adresse IP de l'arduino modifiée (adresse IP réseau non utilisée). L'exemple Arduino marche très bien (WebServer.pde).
- j'entre l'adresse IP de l'arduino dans mon browser (
http://168.254.10.64) => et il m'affiche la page provenant de l'arduino !
- en connectant un capteur photo-électrique sur l'entrée analogique, j'ai la valeur dans ma page web.
#include <Ethernet.h>
// a MAC address that you make up to identify the Arduino
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// this is the IP that will identify the Arduino
byte ip[] = { 169, 254, 10, 64 };
Server server(80);
void setup()
{
//start ethernet
Ethernet.begin(mac, ip);
server.begin();
}
void loop()
{
Client client = server.available();
if (client) {
// an http request ends with a blank line
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if we've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so we can send a reply
if (c == '\n' && current_line_is_blank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<body style=background-color:yellow>");
client.println("<font color='green'><h1>HTTP test successfull !</font></h1>");
client.println("</body></html>");
// output the value of analog input pin 2
client.print("analog input ");
client.print(2);
client.print(" is ");
client.print(analogRead(2));
client.println("<br />");
// stop loop
break;
}
}
}
// give the web browser time to receive the data
delay(1);
client.stop();
}
}