22 janvier 2025

Arduino, communication UDP & TCP

Comme vu dans le précédent article, nous pouvons utiliser NetCat (Lien ici) pour réaliser un serveur/client UDP & TCP. A présent, nous allons faire la même chose mais avec un Arduino.
Il faut savoir que tout ceci s’applique de la même façon si nous utilisons une communication Ethernet ou Wifi.

Vous pouvez trouver cette Shield Ethernet ici : https://www.aliexpress.com/item/1289036781.html
Et si vous souhaitez du Wifi, utiliser un ESP32 sera plus adapté qu’un Arduino : https://www.aliexpress.com/item/1005001757645011.html

Image d’ESP32

Mise en place du développement

Pour réaliser notre programme, nous utiliserons ici un Arduino. Pour ce qui est d’IDE, nous avons aujourd’hui le choix entre Arduino IDE, Visual Studio Code & Eclipse (et surement d’autres tel que celui d’Atmel, Microchip Studio). Mais pour rester simple, nous utiliserons l’IDE Arduino.

Pour la compréhension de tous, nous conserverons les habitudes des blocs « setup » et « loop » les plus pointilleux pourront remplacer par un « main » et une boucle « while » sans souci.

Ajout des Bibliothèques

Pour pouvoir réaliser nos communications, nous avons trois bibliothèques importantes à intégrer dans notre programme.

  • « SPI.h »
  • « Ethernet.h »
  • « EthernetUdp.h »

Et nous allons instauré quelques variables utile pour la suite de notre programme.

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>

// Parametres réseau pour la carte Arduino + shield Ethernet 
unsigned char adrMac[] = {0x00, 0x60, 0x97, 0x53, 0xfd, 0x58};
unsigned char adrIp[4] = {192, 168, 0, 15};
unsigned char masque[4] = {255, 255, 255, 0};
unsigned char adrIpRouteur[4] = {192, 168, 0, 1};
unsigned char adrIpDns[4] = {0, 0, 0, 0};

Il est indispensable de modifier ces informations en fonction de vous, l’adresse Mac, l’adresse IP de l’Arduino, le masque de sous-réseau, l’adresse du routeur et le DNS.

Initialisation de l’Arduino

Pour que celui-ci puisse démarrer la carte réseau intégrer au Shield, nous devons bien évidement configurer comme ci-dessus puis initier le tout.

void setup(void) {
  // Configure le réseau
  Ethernet.begin(adrMac, adrIp, adrIpDns, adrIpRouteur, masque);
  // Arduino est sur le net !
}
void loop(){
  delay(10);
}

A partir de là, une fois le programme compiler et envoyer à l’Arduino, celui-ci est connecté au réseau. Si la configuration est bonne, nous pouvons ping celui-ci depuis un ordinateur du même réseau.

ping <IP de l'Arduino>

Si la réponse est la suivante :

C’est que l’Arduino est bien présent sur le Réseau et celui-ci fonctionne.

Client UDP

Serveur UDP

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *