Faire communiquer 2 arduino sur le réseau local

Bonjour, quelle est le meilleur protocole pour faire communiquer 2 arduino tous 2 équipés d'un shield ethernet.

j'ai compris le principe avec : Arduino et Ethernet : serveur - Arduino : premiers pas en informatique embarquée • Tutoriels • Zeste de Savoir
Mais pas pour envoyer des données

Dans l'idée j'ai deux arduino équipé d'un écran et de 2 sonde de température, et je voudrais qu'ils s'envoient les température l'un l'autre afin de les faire s'affiché sur l'écran de l'autre.

On peut utiliser l'exemple structure comme ici ? : Faire communiquer 2 arduinos entre eux sur 2 fils - Xavier Carl Blog

struct Echange {
    int val1;
    int val2;
} echange;

regardez l'exemple ChatServer dans l'IDE sous Ethernet

(et les autres exemples)

J'ai regardé, mais ça ne correspond pas à mon besoin, je vais essayer de créer un char ou string avec l'émetteur et le décodé avec le récepteur.

pourquoi ?

au lieu de faire

      client.println("Hello, client!");

vous faites un print ou un write avec votre payload

ensuite c'est juste de la lecture d'un buffer de l'autre côté.

Si vous émettez en ASCII avec une fin de ligne, on gère un flux de données, vous pouvez jeter un oeil à mon petit tuto sur le port série, le principe de réception serait le même

vous pouvez aussi mettre les données dans une structure et balancer (avec write) la structure.
Si de l'autre côté vous avez la même architecture, vous prenez les octets qui arrivent dans un buffer et quand vous avez reçu le bon nombre, faites un memcpy() dans une structure du même type.

Bonjour, je découvre avec ce message les "struct" LOCODUINO - Les structures , vous parlez bien de cela ?

Oui c’est bien cela

Hum, je peux envoyer FeuTricolore dans le moniteur série et dissocier les trois variables bytes vert, jaune et rouge de l'autre côté ? Si oui comment ? Car les recherche Google mélange structure de programme moniteur série et le mot clef strutc.

Si tu utilise le port série, l'idée est d'envoyer avec la fonction "write" le contenue de ta structure FeuTricolore, de l'autre coté avec "readBytes"

D'un coté tu aura Serial.write(&FeuTricolore, sizeof(FeuTricolore )), tu traite ta structure comme un tableau d'octets.

De l'autre Serial.readBytes(&FeuTricolore, sizeof(FeuTricolore )), une fois que Serial.available() te retourne le nombre d'octets correspondant à la taille de ta structure.

Je n'ai pas testé le code, par manque de temps de mettre en place tout le montage et d'écrire les programmes, c'est donc plus l'idée vers quoi aller.
Désolé de ne pas pouvoir être plus précis.
J'ai recherché un exemple mais je ne l'ai pas trouvé et je n'ai pas l'impression que le tuto de @J-M-L traite le sujet.
Au connaisseur, Je n'ai pas regardé si avec wowki on peut utiliser un softserial ?

imaginez que vous ayez la structure suivante avec payload qui représente un exemplaire de vos données

struct Echange {
    int16_t val1;
    int16_t val2;
} payload;

pour envoyer la structure vous faites

payload.val1 = 42;
payload.val2 = 33;
autreArduino.write((uint8_t *) & payload, sizeof payload);

de l'autre côté pour la réception vous avez la même structure et un buffer temporaire

struct Echange {
    int16_t val1;
    int16_t val2;
} payload;
uint8_t buffer[sizeof(Echange)];

vous lisez les octets reçu un par un avec read() dans le buffer (avec un indice qui se déplace, assurez vous de ne pas déborder) inspirez vous du code charServer où ils impriment ce qu'ils reçoivent octet par octet

    if (client.available() > 0) {
      char thisChar = client.read();
      Serial.write(thisChar); // <== au lieu de l'imprimer stockez le dans le buffer
    }

puis quand vous avez tout reçu vous copiez le buffer dans la structure

memcpy(&payload, buffer, sizeof buffer); // https://cplusplus.com/reference/cstring/memcpy/

Merci à vous