Généralités

Les fichiers

Avant de téléverser un programme sur la carte Arduino, il faut d'abord mettre dans un répertoire de votre ordinateur 3 fichiers :
Il faut aussi copier des fichiers dans le répertoire racine de la carte micro SD. Selon le programme Arduino, on mettra un ou plusieurs fichiers de suffixe .htm et éventuellement de suffixe .css et .ahp

Pour chacun des programmes Arduino, la liste des fichiers à mettre sur la carte SD est indiquée.

Remarque : Pour éviter d'avoir à transférer des fichiers sur la carte SD à chaque essai d'un nouveau programme, vous pouvez mettre directement tous les fichiers de suffixes .htm .css et .ahp

Adresse MAC et adresse IP

Si vous essayez de compiler un programme, vous aboutirez dès les premières lignes à des erreurs de compilation.

En effet, deux déclarations de variables doivent être modifiées :
    // L'adresse MAC du module
    byte mac[] = { 0x90, 0xA2, 0xDA, 0xHH, 0xHH, 0xHH };

    // L'adresse IP que prendra le module
    IPAddress ip (192, 168, n1, n2);
Il faut modifier ces deux déclarations pour les adapter à votre matériel et à l'environnement réseau dans lequel il est utilisé.

L'adresse MAC

L'adresse MAC est composée de 6 octets. Tous les composants éthernet dans le monde doivent avoir une adresse MAC différente.

En général, l'adresse MAC est fixée par le constructeur du matériel et enregistrée dans la mémoire du composant. Le constructeur enregistre une adresse MAC différente pour chaque exemplaire d'un composant réseau qu'il vend. Dans ce cas, l'utilisateur n'a pas à s'occuper de l'adresse MAC.

Toutefois, certains composants réseau comme le module éthernet d'une carte Arduino donnent la possibilité de programmer l'adresse MAC. Dans ce cas, il faut éviter que deux composants se retrouvent avec la même adresse MAC.
En effet, comme un conflit d'adresse MAC ne devrait jamais se produire, s'il survient malgré tout, le résultat peut être insolite et d'autant plus difficile à détecter qu'on ne pense pas forcément à ce genre d'erreur.

Le constructeur des modules éthernet de carte Arduino colle une étiquette imprimée au dos de la carte. Il suffit d'utiliser l'adresse MAC indiquée.

Les 3 premiers octets de cette adresse MAC sont 90, A2, DA. Ils appartiennent au constructeur du matériel. Il faut remplacer les HH qui suivent dans la déclaration 
    byte mac[] = { 0x90, 0xA2, 0xDA, 0xHH, 0xHH, 0xHH };
par les valeurs hexadécimales écrites sur l'étiquette.

Attention : Si vous êtes dans un établissement scolaire et utilisez des modules éthernet sur plusieurs séances, mais pas forcément le même à chaque fois, il faudra à chaque séance vérifier et éventuellement corriger l'adresse MAC, et que tout la classe fasse de même avec son matériel.

L'adresse IP

L'adresse IP est composée de 4 octets. Ceux-ci sont écrits en base 10.

Tous les appareils appartenant à un réseau local, ont le début de l'adresse IP identique. Pour trouver une adresse IP compatible avec votre ordinateur, exécutez sur celui-ci la commande ipconfig ou ifconfig selon le système d'exploitation et vous obtiendrez l'adresse IP de votre ordinateur.

Sur un petit réseau, par exemple à domicile, cette adresse IP commencera normalement par 192.168 et le 3ème nombre sera souvent 0 ou 1.
Dans ce cas, il vous faudra choisir le 4ème nombre entre 1 et 254 puis vérifier par la commande ping adresse_ip qu'aucun appareil n'utilise déjà cette adresse IP (pas de réponse au ping).

Dans un établissement scolaire ou une entreprise, les adresses IP utilisées commencent habituellement par 10 ou par 176 et la partie de l'adresse IP qui peut varier d'un appareil à l'autre concerne les 2 derniers nombres.
On peut choisir pour ces nombres des valeurs entre 0 et 255, mais pas 2 fois 0 ni 2 fois 255.

Encore plus qu'à domicile, il faudra vérifier que l'adresse IP choisie n'est utilisée par aucun autre appareil.

Remarque : Dans un réseau informatique, habituellement, on ne configure pas à la main toutes les cartes réseau avec une adresse IP différente. C'est un serveur DHCP qui se charge d'attribuer une adresse IP à chaque appareil.
Dans ce cas, tous les appareils du réseau contacteront au démarrage le serveur DHCP (dont ils connaissent l'adresse IP) pour demander une adresse IP parmi celles disponibles.

Ce mode de fonctionnement est possible avec une carte Arduino. L'initialisation de la carte réseau qui est dans la fonction setup () sera différente.

Toutefois, l'utilisation d'un serveur DHCP ne garantit pas qu'un appareil aura toujours la même adresse IP, ce qui est un gros inconvénient pour un serveur.
C'est pour cette raison que dans les exemples de programme fournis sur ce site, le module éthernet de la carte Arduino est programmé avec une adresse IP fixe.

Détails sur les échanges réseau

En plus d'offrir la possibilité de réaliser un serveur web dynamique, la bibliothèque de fonctions trthtml permet de récupérer sur le moniteur série de la carte Arduino des informations plus ou moins détaillées sur les échanges réseau.

Une directive de compilation présente au début du fichier trthtml.cpp permet de choisir entre 4 niveaux de détails. Les 4 possibilités sont expliquées (en français) dans un commentaire de plusieurs lignes :
    /*
      Valeurs possibles pour DEBUG
      // pas de #define DEBUG : même fonctionnement qu'avec DEBUG à 0
      #define DEBUG   0 // pas de messages sur le moniteur série
      #define DEBUG   1 // affichage seulement des message indiquant un envoi ou une réception
      #define DEBUG   2 // on affiche en plus les caractères reçus par la carte arduino
      #define DEBUG   3 // on affiche également les caractères envoyés par la carte arduino
    */
    //#define DEBUG   3
La ligne qui définit le niveau de DEBUG étant en commentaire, aucun message n'est envoyé sur le moniteur série. En décommentant cette ligne, on a le maximum d'informations avec :

Longueur des lignes mémorisées

Une autre constante est définie dans le programme :
    #define TAILLEMAX_LIGNE  100
Cette constante définit la longueur des lignes des fichiers HTML qui peuvent être mémorisées en entier par les fonctions de la bibliothèque trthtml.

La valeur fournie est largement suffisante pour le bon fonctionnement des fichiers d'exemples. Elles fonctionnera aussi avec vos propres fichiers HTML si vous n'êtes pas adeptes des lignes de code très longues.

Dans la pratique, cette limitation ne concerne que les lignes des fichiers HTML dans lesquelles on doit trouver une chaine de caractères particulière en utilisant les fonctions fonctions copie_jusque_chaine (...) , sauter_jusque_chaine (...) et coprep_chaine (...)