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 |

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

Par X. HINAULT. Le 15/11/2011.

  • Sur cette page, une présentation des différentes architectures de réseaux utilisables avec le shield Arduino Ethernet.

Principe d'un réseau local

Voir les pages suivantes :

Caractéristiques des réseaux présentés sur cette page.

Pour les réseaux présentés sur cette page, on utilisera :

  • des adresses ip locales de la forme 192.168.1.x où x représente un chiffre entre 0 et 255
  • avec donc le masque réseau suivant : 255.255.255.0
  • avec le numéro de réseau suivant : 192.168.1.0
  • le routeur, lorsqu'il sera utilisé, aura l'adresse : 192.168.1.1. Il sera la passerelle du réseau (gateway) et sera connecté à internet.

Informations techniques à connaître

  • Tout matériel utilisé sur un réseau est identifiable par un numéro d'immatriculation matérielle appelé adresse MAC. Celle-ci est généralement indiquée sur la fiche technique du matériel.
  • Chaque élément du réseau doit par ailleurs se voir attribuer une adresse IP qui doit être unique sur le réseau local : 2 éléments du réseau ne peuvent pas, ne doivent pas avoir la même adresse IP.
  • Le shield Ethernet a une adresse IP statique qui sera fixée par le programme Arduino. Cette adresse devra être de la forme 192.168.1.x où x représente un chiffre entre 0 et 255
  • Le routeur sera soit un routeur dédié (filaire ou wifi), soit une Box internet (qui intègre un routeur)
  • Le routeur attribue automatiquement des adresses IP aux nouveaux éléments du réseau lorsqu'ils se connectent (on appelle çà le mode DHCP). Les adresses attribuées seront dans une plage précise qui est définie dans le routeur (par exemple de .10 à .50). Cette plage peut-être configurées.
  • Les PC actuels sont configurés par défaut pour se connecter en mode DHCP : leur adresse IP leur est automatiquement attribuée par le routeur lors de la connexion au réseau.

Réseau Local avec Shield Ethernet + PC

  • Ce réseau est composé :
    • d'un ensemble carte Arduino + shield Ethernet
    • idéalement d'un switch réseau (ou hub) - on peut parfois s'en passer si on utilise un câble croisé ou bien sous Ubuntu.
    • d'un PC avec une carte réseau.

Un switch (ou hub) n'est pas un routeur : un switch sert uniquement à assurer la connexion entre les éléments du réseau mais n'attribue pas les adresses IP comme le fait un routeur. A noter qu'un routeur avec plusieurs sortie Ethernet est en fait un "routeur+switch".

  • C'est le réseau le plus simple dans sa structure mais pas forcément le plus simple à mettre en place. En effet, sa mise en place nécessite de configurer le PC en mode "IP statique" ce qui n'est pas forcément le plus simple pour débuter. Le plus simple au départ est d'utiliser un routeur (voir ci-dessous).

Réseau Local avec Shield Ethernet + Routeur + PC

Description

  • Ce réseau est composé :
    • d'un ou plusieurs ensemble(s) carte Arduino + shield Ethernet
    • d'un routeur DHCP qui attribue les adresses IP automatiquement (Box internet)
    • d'un ou plusieurs PC(s) avec chacun une carte réseau.

Mise en place :

  • Ce réseau est le plus simple à mettre en place puisque actuellement on dispose d'une box internet pour accéder au Web. Cette box internet est en fait un routeur qui attribue automatiquement les adresses aux postes du réseau par défaut.
  • Dans le cas d'un réseau avec un shield Ethernet, on va utiliser sur le même réseau des adresses IP statiques (celle du shield Arduino) et des adresses IP dynamiques (attribuées par le routeur DHCP). Pour pouvoir utiliser les 2 simultanément, plusieurs possibilités existent :

Par réservation des adresses IP

  • Il est possible de fixer l'adresse attribuée par le routeur au PC grâce à l'option de "réservation d'adresse" ou de "baux IP" : il suffit alors d'indiquer au routeur l'adresse MAC du PC et l'adresse IP à lui attribuer. De cette façon, on pourra facilement faire un réseau "point à point" avec une shield Ethernet et un PC.

Sous Ubuntu, on peut connaître l'adresse IP du PC grâce à la commande ifconfig dans un Terminal : au niveau de l'interface eth0 (ou équivalent) les nombres qui suivent HWaddr correspondent à l'adresse MAC de la carte réseau.

  • On procédera de la même façon pour le shield Ethernet : l'adresse MAC est indiquée sur une étiquette sur le shield. Sinon, fixer l'adresse MAC dans le programme Arduino et utiliser cette adresse MAC au niveau du routeur.

Par détermination manuelle de l'adresse attribuée au PC

  • L'autre façon de faire consiste à obtenir l'adresse IP du PC (sous Ubuntu, grâce à la commande ifconfig dans un Terminal : les chiffres placés après inet adr: correspondent à l'adresse IP du PC) et à utiliser une autre adresse pour le shield Ethernet.
  • Cette façon est simple, mais nécessite d'être répétée à chaque mise sous tension du PC.

En utilisant une adresse IP fixe hors plage DHCP pour le shield ethernet

  • Cette solution a le mérite de ne nécessiter aucune configuration particulière au niveau du routeur. Il suffit d'accéder à l'interface du routeur et de rechercher la section fixant la plage des adresses IP utilisées par le routeur DHCP (par exemple .10 à .50).
  • Une fois que l'on connaît cette plage d'adresse, dans le programme Arduino, il suffit d'attribuer un IP au shield Ethernet en dehors de cette plage d'adresse. Par exemple .70 dans notre cas.
  • Un routeur dispose d'une interface de configuration à laquelle il est possible de se connecter. Pour cela, il suffit d'ouvrir votre navigateur préféré (Firefox bien sûr!) et de saisir l'adresse IP du routeur, sous la forme 192.168.1.1. On obtient alors une page web simple d'accueil avec champ de saisie d'un mot de passe : celui-ci est fourni par votre FAI ou la doc du routeur.
  • Une fois connecté, vous accédez aux différentes rubriques de configuration du routeur.

Réseau Local avec Shield Ethernet + Blocs CPL + Routeur + PC

  • Ce réseau est composé :
    • d'un ou plusieurs ensemble(s) carte Arduino + shield Ethernet
    • d'un routeur DHCP qui attribue les adresses IP automatiquement (Box internet)
    • d'un ou plusieurs PC(s) avec chacun une carte réseau.
    • autant de blocs CPL (Ligne à Courant Porteur)que d'éléments sur le réseau, type Devolo AV+200.

Mise en oeuvre :

  • La première chose est de mettre en place un réseau CPL opérationnel en configurant le nombre de bloc nécessaires pour fonctionner ensemble. Avec les blocs que j'utilise, il existe un utilitaire Linux qui permet de lister tous les blocs d'un même réseau à partir de la ligne de commande. On peut également configurer les blocs pour fonctionner ensemble. C'est simple et çà se fait en ligne de commande. Le plus simple est de connecter les blocs sur les prises voulues et de connecter un portable ou un netbook sur le bloc à tester et de faire un ping de l'un vers l'autre éléments du réseau pour vérifier que cela fonctionne bien.
  • Une fois fait, la mise en oeuvre est par ailleurs la même que celle du réseau shield Ethernet + routeur + PC décrite ci-dessus.

FOCUS sur les blocs CPL

  • Les blocs CPL transforment le réseau électrique de la maison en une sorte de "switch" réseau géant : tout élément du réseau connecté par bloc CPL sur le circuit du secteur 220V devient visible pour tous les autres éléments du réseau local.
  • Les blocs CPL sont très intéressants car ils permettent de disposer d'une connexion longue portée (jusqu'à 200m) stable, sans aucun travaux.
  • ATTENTION : pour un fonctionnement optimal, il faut respecter quelques règles simples, notamment, ne rien mettre entre la prise et le bloc (pas de triple, etc...) et éviter les prises trop proches d'un gros appareillage ménager. Si on respecte bien çà, il n'y a vraiment aucun problème. On obtient une fluidité du réseau comparable à une connexion directe sur la box internet.
  • Les blocs sont configurables pour créer des "sous-réseaux" dans le réseau CPL : on attribue un même identifiant à tous les blocs CPL du même réseau. On peut créer ainsi plusieurs sous-réseaux CPL sur le même réseau électrique !!
  • Il existe toutes sortes de blocs CPL. Les éléments de choix sont :
    • l'existence d'une prise sur le bloc : c'est tout bête, mais si le bloc CPL n'a pas de prise en façade, on perd l'accès au 220V une fois le bloc branché ! (il n'est pas possible de mettre un triple entre le bloc et la prise sous peine de perturber le fonctionnement du bloc CPL...)
    • le débit supporté : actuellement on trouve des blocs 200Mbs (Méga bits par secondes soit 200/8 = 25 Mo/s théorique qui se partagent entre tous les blocs). On trouve même des blocs 500Mbs, encore un peu cher. A titre indicatif, avec des 200Mbs, on pourra faire un réseau pour la télévision internet et un réseau local internet sans problème. Je l'ai fait et çà marche très bien.
    • la facilité de configurer les blocs CPL et la compatibilité avec Linux des logiciels utilisés.
    • le prix : il vaut mieux acheter les blocs par 3 ou 4 pour avoir des prix corrects. Compter 40€ environ par bloc 200Mbs avec prise en façade.
    • les garanties constructeur, etc...
  • Personnellement, j'ai opté pour les blocs Devolo dlan 200AV+ : franchement, je ne regrette pas le petit surcoût à l'achat ! Propose un logiciel compatible Linux pour configurer les blocs.

Utiliser des adresses IP statiques et dynamiques (DHCP) sur un même réseau local.

Rendre le réseau local accessible depuis internet

  • Pour rendre le réseau local accessible depuis internet, il faut créer une règle en entrée au niveau du routeur orientant le port utilisé vers l'adresse locale voulue.
  • Il faut également ouvrir au niveau du routeur le port en question vers l'adresse locale concernée.

Les outils réseaux utiles sous Ubuntu.

  • nmap : utilitaire en ligne de commande qui permet d'explorer le réseau local.