Projet scolaire avec Arduino Uno et Arduino Ethernet

Bonjour à tous, dans le cadre d'un projet de groupe, nous devons réaliser la communication entre un serveur Tbox et un module Arduino Uno couplé avec son module Ethernet.

Ce que nous avons réussi a faire jusqu'à présent est d'assigner une adresse IP à notre carte Arduino mais par la suite, nous n'arrivons pas à effectuer la communication entre le serveur TBOX et l'Arduino.
Le test du ping est concluant, nous avons assigné l'adresse IP que nous souhaitions à l'Arduino mais nous n'avons aucune idée de la façon de recevoir une information via ethernet depuis l'Arduino et non plus comment envoyer une information de type PWM au serveur TBOX.
Nous avons chercher durant des heures après des tutoriaux qui pourraient nous expliquer comment effectuer une demande et un envoi d'information (ne serait-ce qu'un BIT pour commencer) depuis l'Arduino mais sans grand résultat... :~ .

Nous avons chercher sur http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.HomePage et d'autres sites mais nous sommes au point mort..
Un coup de pousse serait le bien venu 8) !

Il y a pourtant tout ici : http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.LibrairieEthernet

sinon là: Ethernet - Arduino Reference

Plus les exemples qui sont livrés avec l'environnement de développement.

Mais il faudrait aussi peut être savoir quel est le protocol utilisé pour communiquer avec ton serveur. Parce que c'est pas tout d'avoir une liaison Ethernet, il faut en plus savoir comment on se parle.

Vous n'avez probablement pas comprit ce que je voulais dire.

Ma TBOX possède une adresse Ip que je lui ai fixé ; 192.168.1.20
Le module Arduino avec l'Ethernet Shield possède une adresse ip (192.168.1.15 , j'ai testé un ping, je vois bien l'arduino sur le réseau ) et ce grâce à ce script :

// This demo does web requests to a fixed IP address, using a fixed gateway.
// 2010-11-27 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

#define REQUEST_RATE 5000 // milliseconds

// ethernet interface mac address
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; //Adresse mac que l'on donne au module Ethernet de l'Arduino
// ethernet interface ip address
static byte myip[] = { 192,168,1,15 }; //Adresse Ip que l'on souhaite donner au module Ethernet de l'Arduino
// gateway ip address
static byte gwip[] = { 192,168,1,1 }; //Adresse de la gateway du réseau sur lequel le module Ethernet de l'Arduino
// remote website ip address and port
static byte hisip[] = { 173,194,78,94 };
// remote website name
char website[] PROGMEM = "google.be";

byte Ethernet::buffer[300];   // a very small tcp/ip buffer is enough here
static long timer;

// called when the client request is complete
static void my_result_cb (byte status, word off, word len) {
  Serial.print("<<< reply ");
  Serial.print(millis() - timer);
  Serial.println(" ms");
  Serial.println((const char*) Ethernet::buffer + off);
}

void setup () {
  Serial.begin(57600);
  Serial.println("\n[getStaticIP]");
  
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) 
    Serial.println( "Failed to access Ethernet controller");

  ether.staticSetup(myip, gwip);

  ether.copyIp(ether.hisip, hisip);
  ether.printIp("Server: ", ether.hisip);

  while (ether.clientWaitingGw())
    ether.packetLoop(ether.packetReceive());
  Serial.println("Gateway found");
  
  timer = - REQUEST_RATE; // start timing out right away
}

void loop () {
  ether.packetLoop(ether.packetReceive());
  
  if (millis() > timer + REQUEST_RATE) {
    timer = millis();
    Serial.println("\n>>> REQ");
    ether.browseUrl(PSTR("/foo/"), "bar", website, my_result_cb);
  }
}

Ce que j'aimerais bien faire, c'est depuis la TBOX, savoir envoyer une information (de ce côté là, pas de soucis, c'est réglé) au module Arduino à l'adresse ip 192.168.1.15 mais je ne trouve pas comment faire pour récupérer l'information (un byte, un mot, peu importe) sur le module Arduino.
Ça fait plus de 1 semaine que je me prend la tête pour essayer de récupérer l'information. Je travaille en TCP/IP avec la TBOX et le module Arduino fonctionne avec ce type de communication.

bonjour,
cherche peut être du coté webserver dans les exemples.
une requete vers le nono
analyse de la requete
renvoie l'info du nono

quel shield ethernet?
officiel ou non?

Sarcozi:
Vous n'avez probablement pas comprit ce que je voulais dire.

Ce que j'aimerais bien faire, c'est depuis la TBOX, savoir envoyer une information (de ce côté là, pas de soucis, c'est réglé) au module Arduino à l'adresse ip 192.168.1.15 mais je ne trouve pas comment faire pour récupérer l'information (un byte, un mot, peu importe) sur le module Arduino.
Ça fait plus de 1 semaine que je me prend la tête pour essayer de récupérer l'information. Je travaille en TCP/IP avec la TBOX et le module Arduino fonctionne avec ce type de communication.

Je pense que c'est toi qui n'a pas compris la question. TCP/IP, c'est un ensemble de couches protocolaires. Tu peux mettre en place tes échanges en utilisant différents niveaux de ces couches. Il faut que tu choisisses comment tu veux faire tes échanges. Regardes là: Suite des protocoles Internet — Wikipédia
Tu vas voir par exemple qu'UDP est assez bas dans les couches protocolaires et qu'il permet des échanges de paquets "bruts". Il y a des exemples d'échanges UDP dans les librairies. Ou bien tu peux utiliser HTTP si ta box contient un serveur. Il y a aussi des exemples client/serveur avec les librairies.

J'utilise ce modèle Ethernet ci : http://www.jameco.com/1/1/51976-vma04-module-ethernet-shield-arduino.html

La TBOX-MS que j'utilise possède un serveur web intégré donc je suppose que je pourrais travailler avec le port 80 HTTP afin d'envoyer et de recevoir les données. Mais cela signifierait que la TBOX-MS serait le "serveur" et que l'Arduino serait le "client" ?

nous devons réaliser la communication entre un serveur Tbox et un module Arduino Uno couplé avec son module Ethernet

En fait il faudrait connaitre la finalité de l'application et le comportement attendu..
Est-ce que la box collecte de données qu'elle affiche?
Est-ce que la box interroge l'arduino?
Est-ce l'arduino qui pousse les données vers la box?
C'est la réponse à ce genre de question qui va te permettre de choisir le mode d'échange.

La finalité consiste a commencer des vannes (régulation on-off modulé PID : fonctionnel) afin de faire chauffer un local.
On récolte les informations de température via deux capteurs (fonctionnel) et on les envoie à la TBOX-MS afin que ces informations puissent être affichées sur une page web du serveur de la TBOX. Ces informations sont stockées durant un certain temps dans la Box.
D'un autre côté, la TBOX envoie un bit à l'Arduino en lui disant "Ok, tu lancer la régulation".

Donc dans les deux cas, l'Arduino envoie et reçoit des informations de la TBOX et inversement :)!

Donc la box est serveur.
L'arduino client.
Le protocole HTTP
L'arduino fait une requête vers une page php (ou équivalent) sur le serveur en lui passant les informations de température en arguments.
En retour la box renvoie à l'arduino une page html dans laquelle il trouvera l'information de mise en route.

la chose est assez simple.
nono en web client envoyant des requêtes sur le tbox en get
le tbox traite les données, MAIS ne pourra les afficher en live, puisque c'est un pc qui va l'interroger (à moins qu'il fasse ca aussi)
donc ajax pour du live
si on décide de lancer une vanne=>envoie par socket sur le nono.

ca donnerait ceci en imaginant envoie toutes les 1mn les données
nono=>192.168.1.x?temp1=25&temp2=24
tbox : insert into base temp1 et temp2
affichage sur le pc de la page (refresh 1mn ou ajax) avec formulaire activation
envoie par socket temp1=ok temp=non
nono réceptionne socket, parse, actionne ou non les vannes
etc...