Logo Mon Club Elec

Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

L’Ethernet est un protocole de communication réseau très populaire et largement utilisé. Il est souvent utilisé pour relier des ordinateurs entre eux, mais il peut également être utilisé pour relier des cartes Arduino à un réseau. Dans ce tutoriel, nous allons vous montrer comment configurer une carte Arduino en mode serveur Ethernet et comment effectuer un test ping depuis un ordinateur vers la carte Arduino. Nous allons également vous montrer comment vérifier si la carte Arduino est bien connectée au réseau et comment vérifier si le test ping a réussi.

Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

1.  Présentation

Ce programme très simple consiste uniquement à configurer la carte Arduino couplée au module Ethernet en serveur HTTP et à réaliser un simple test ping vers la carte depuis le PC.

2.  Matériel Nécessaire

2.1  L’espace de développement Arduino

  • … pour éditer, compiler le programme et programmer la carte Arduino.
Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

2.2  Le matériel suivant pour réaliser le montage associé

  • un module Arduino Ethernet
Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

3.  Etapes préparatoires

On va créer ici un réseau local entre le PC et la carte Arduino. La première chose à faire est de connaître l’adresse IP de l’ordinateur avec lequel on va créer le réseau ainsi que le masque du sous-réseau en vigueur.

Sous Ubuntu, dans une console, on obtient cette information avec la commande ifconfig

Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

Dans notre cas, on a donc :

  • adresse IP du PC : 169.254.10.1
  • masque du sous-réseau : 255.255.255.0

Pour créer un réseau local entre la carte Arduino et le PC, on utilisera donc pour la carte Arduino :

  • une adresse IP de la forme : 169.254.10.x (sauf 169.254.10.1 )
  • et le même masque de sous-réseau : 255.255.255.0

Pour info : le masque de sous-réseau indique quelle partie de l’adresse IP correspond au réseau et quelle partie au sous-réseau. Ici, la partie 169.254.10 correspond au numéro du réseau et .x correspond au sous-réseau.

Voir également : Arduino : Expert : Shield Ethernet : Les différentes architectures de réseau utilisables.

4.  Instructions de montage

  • Le montage à réaliser est très simple : il suffit d’enficher le module Arduino Ethernet sur la carte Arduino UNO ou Duemilanove.
  • Ensuite, on connecte la carte Arduino au port USB
  • On connecte également le module Arduino au PC à l’aide d’un câble Ethernet.

5.  Le circuit du montage

Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino
Le schéma du montage à réaliser

6.  Explication du programme

  • Ce programme ne fait rien de spécial : il se contente de configurer la carte Arduino et le module Ethernet en serveur HTTP en réseau local avec le PC.

7.  Fonctionnement

  • Pour tester ce programme, il faut faire un « ping » vers la carte Arduino depuis le PC. Sous Ubuntu, ceci se fait dans une console à l’aide de la commande ping associée à l’adresse IP de l’ordinateur à tester. Ici, nous ferons :

$ ping -c 5 169.254.10.2

ce qui donne :

Ethernet en mode serveur Arduino : faire un test ping depuis le PC vers la carte Arduino

Comme on peut le voir ici, la carte Arduino répond bien au ping : cool ! C’est tout bête, mais au moins, on sait que çà marche…

8.  Le programme complet en langage Arduino :

A copier/coller directement dans l’éditeur Arduino

// — Programme Arduino —
// Copyright X. HINAULT – Créé le 01/10/2010 – MAJ Aout 2012
// www.mon-club-elec.fr

//  Code sous licence GNU GPL :
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License,
//  or any later version.
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
//  

// — Que fait ce programme ? —
/* Ce programme configure le module Ethernet
couplé à la carte Arduino en serveur HTTP
On crée un réseau local avec le PC.
*/

// — Fonctionnalités utilisées —

// — Circuit à réaliser —

// connecter le shield Ethernet broche à broche sur la carte Arduino

//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies incluses, les constantes, les variables…

// — Inclusion des librairies utilisées —
#include <SPI.h> // libairie pour la communicatin SPI avec le shield éthernet
#include <Ethernet.h> // librairie pour la communication Ethernet sur le réseau local
//#include <Server.h> // avant Arduino 1.0

// — Déclaration des constantes —

// — constantes des broches —

// — Déclaration des variables globales —

//— déclaration du tableau d’adresse MAC —
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x1A, 0x71 }; // adresse MAC du shield Ethernet
// voir l’étiquette sur le shield Ethernet

//—- tableau de l’adresse IP
//byte ip[] = { 169,254,10,2 }; // le PC a pour IP : 169.254.10.1 – avant Arduino 1.0
IPAddress ip(192,168,1, 70); // adresse IP fixe sur le réseau – Arduino 1.0
// Attention : utiliser une adresse IP fixe qui ne soit pas dans la plage du serveur DHCP !
// pour vérifier se connecter au routeur depuis le poste fixe à l’adresse 192.168.1.1
// Par ex : sur livebox, plage 10 à 50 par défaut

//—– tableau de l’adresse de la passerelle
//byte passerelle[] = { 192,168,1,1}; // l’adresse du routeur réseau

//—– tableau du masque de sous réseau
//byte masque[] = { 255, 255, 255, 0 }; // idem masque sous-réseau du PC : 255.255.255.0

// — Déclaration des objets utiles pour les fonctionnalités utilisées —

//— création de l’objet serveur —-
// Server serveurHTTP(80); // crée un objet serveur utilisant le port 80 = port HTTP – avant Arduino 1.0
EthernetServer serveurHTTP(80); // crée un objet serveur utilisant le port 80 = port HTTP – avant Arduino 1.0

//**************** FONCTION SETUP = Code d’initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// — ici instructions à exécuter au démarrage —

//—- initialise la connexion Ethernet avec l’adresse MAC, l’adresse IP et le masque
Ethernet.begin(mac, ip);

//—- initialise le serveur —-
serveurHTTP.begin();

} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s’exécute sans fin en boucle aussi longtemps que l’Arduino est sous tension

void loop(){ // debut de la fonction loop()

// — ici instructions à exécuter par le programme principal —

} // fin de la fonction loop() – le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

//*************** Autres Fonctions du programme *************

// — Fin programme —
 

Noter cet article

Laisser un commentaire

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

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.