Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]
Librairie Ethernet

Ethernet.begin


Description

Initialise la librairie ethernet et les paramètres du réseau.

Syntaxe

4 formes sont possibles, les 2 derniers paramètres étant optionnels :

Ethernet.begin(mac); // mode DHCP
Ethernet.begin(mac, ip); // mode ipfixe
Ethernet.begin(mac, ip, dns); // mode ipfixe + serveur dns
Ethernet.begin(mac, ip, dns, gateway); // ipfixe + serveur dns + passerelle 
Ethernet.begin(mac, ip, dns, gateway, subnet); // ipfixe + serveur dns  + passerelle + masque sous-réseau

La forme d'attribution automatique d'adresse IP par DHCP (forme begin(mac) ) utilise environ 6K de mémoire flash supplémentaire.

Paramètres

  • mac: l'adresse MAC (Media access contro) pour le composant (tableau de 6 octets) : c'est l'adresse Ethernet matérielle de votre module. Pour de nombreux composants Ethernet, cette adresse est prédéfinie par le fabricant. Pour le module Ethernet Arduino, vous devez choisir votre propre adresse MAC.
  • ip: l'adresse IP du composant (objet IPAdress).
  • dns : l'adresse IP du serveur DNS à utiliser (objet IPAdress). Le serveur DNS assure la correspondance entre un nom de site et son adresse IP.
  • gateway: l'adresse IP de la passerelle du réseau (objet IPAdress). Optionnel: la valeur par défaut est l'adresse IP de la carte avec le dernier octet à 1 qui correspond au routeur sur un réseau local type.
  • subnet: le masque du sous-réseau du réseau (objet IPAdress). Optionnel : la valeur par défaut est 255.255.255.0. qui est le masque utilisé par défaut par le routeur sur un réseau local

Truc à connaître : Il est possible d'utiliser une IP fixe pour le shield Ethernet sur un réseau local disposant d'un routeur DHCP si cette IP n'est pas dans la plage des adresses DHCP du routeur. Pour connaître la plage des adresses DHCP du routeur, se connecter à l'interface du routeur depuis un navigateur web, classiquement à l'adresse 192.168.1.1 (à adapter à votre situation).

Valeur renvoyée

  • Pour la forme simple en mode DHCP begin(mac) : renvoie 0 si aucune attributino DHCP n'a réussi et renvoie 1 si attribution DHCP réussie.
  • Pour toutes les autres formes, aucune valeur renvoyée.

Exemple


// --- Programme Arduino 1.01 ---

// Auteur du Programme : X. HINAULT - Tous droits réservés
// Programme écrit le : 11/9/2012.

// ////////////////////  PRESENTATION DU PROGRAMME ////////////////////

// -------- Que fait ce programme ? ---------
 /* Programme Ethernet minimum pour Arduino */

// --- Fonctionnalités utilisées ---

// Utilise le module Ethernet Arduino

// -------- Circuit à réaliser ---------

// Le module Ethernet est à enficher broche à broche sur la carte Arduino
// Connecter broche SCLK du module Ethernet sur la broche 13
// Connecter broche MISO du module Ethernet sur la broche 12
// Connecter broche MOSI du module Ethernet sur la broche 11
// Connecter broche Select Ethernet du module Ethernet sur la broche 10
// Connecter broche Select SD Card du module Ethernet sur la broche 4
// Le module Ethernet est compatible avec la carte Mega via le connecteur ICSP


// /////////////////////////////// 1. Entête déclarative ///////////////////////
// A ce niveau sont déclarées les librairies incluses, les constantes, les variables, les objets utiles...

// --- Déclaration des constantes ---

// --- Inclusion des librairies ---

#include <SPI.h> // librairie SPI - obligatoire avec librairie Ethernet
#include <Ethernet.h> // librairie Ethernet

// --- Déclaration des constantes utiles ---

// --- Déclaration des constantes des broches E/S numériques ---


// --- Déclaration des constantes des broches analogiques ---

// --- Déclaration des variables globales ---

//--- l'adresse mac = identifiant unique du shield
// à fixer arbitrairement ou en utilisant l'adresse imprimée sur l'étiquette du shield
byte mac[] = {  0x90, 0xA2, 0xDA, 0x00, 0x1A, 0x71 };

//----- l'adresse IP fixe à utiliser pour le shield Ethernet ---
IPAddress ipLocal(192,168,1,100); // l'adresse IP locale du shield Ethernet
// ATTENTION : il faut utiliser une adresse hors de la plage d'adresses du routeur DHCP
// pour connaitre la plage d'adresse du routeur : s'y connecter depuis un navigateur à l'adresse xxx.xxx.xxx.1
// par exemple : sur livebox : plage adresses DHCP entre .10 et .50 => on peut utiliser .100 pour le shield ethernet

//----- l'adresse IP du serveur DNS à utiliser ---
//IPAddress serveurDNS(8,8,8,8); // l'adresse du serveur DNS - Google DNS : 8.8.8.8

//----- l'adresse de la passerelle réseau ---
// la passerelle est le poste connecté à internet - typiquement le routeur à l'adresse xxx.xxx.xxx.1
//IPAddress passerelle(192,168,1,1); // l'adresse du poste de connexion à internet ou de la box

//----- masque de sous réseau
//IPAddress masque(255, 255, 255, 0 ); // idem masque sous-réseau des autres postes du réseau et de la box : 255.255.255.0 par défaut


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


// ////////////////////////// 2. 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 1 seule fois au démarrage du programme ---

// ------- Initialisation fonctionnalités utilisées -------  

Serial.begin(115200); // Initialise connexion Série

//---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
//----  +/- l'adresse IP du serveurDNS , l'adresse IP de la passerelle internet et le masque du réseau local

//Ethernet.begin(mac); // forme pour attribution automatique DHCP - utilise plus de mémoire Flash (env + 6Ko)
Ethernet.begin(mac, ipLocal); // forme conseillée pour fixer IP fixe locale
//Ethernet.begin(mac, ipLocal, serverDNS, passerelle, masque); // forme complète

delay(1000); // donne le temps à la carte Ethernet de s'initialiser

Serial.print("L'adresse IP du shield Ethernet est :" );

Serial.println(Ethernet.localIP());

/* Equivalent détaillé
Serial.print(Ethernet.localIP()[0]), Serial.print(".");
Serial.print(Ethernet.localIP()[1]), Serial.print(".");
Serial.print(Ethernet.localIP()[2]), Serial.print(".");
Serial.print(Ethernet.localIP()[3]);
*/


/*
Serial.print(ipLocal[0]), Serial.print(".");
Serial.print(ipLocal[1]), Serial.print(".");
Serial.print(ipLocal[2]), Serial.print(".");
Serial.print(ipLocal[3]);
*/


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

////////////////////////////////// 3. 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()


while(1); // stop loop

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


// ////////////////////////// FONCTIONS DE GESTION DES INTERRUPTIONS ////////////////////


// ////////////////////////// AUTRES FONCTIONS DU PROGRAMME ////////////////////


// ////////////////////////// Fin du programme ////////////////////
 

Commentaires utilisateurs

Aucun commentaire


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Cette page est une traduction de la page originale suivante : http://arduino.cc/en/Reference/EthernetBegin