View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

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

ARDUINO - EXPERT - ETHERNET
Par X. HINAULT - Créé le 01/10/2010 - MAJ AOut 2012

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.

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

  • un module Arduino Ethernet

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

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


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 :

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 ---