Pour quelques dizaines de francs (oui, c’est assez cher…), vous pouvez faire l’acquisition d’un module Ethernet, permettant de relier votre Arduino à un réseau..
Les exemples cités sur cette page ont été adaptés afin d’être utilisés aussi bien en mode DHCP (l’adresse IP est attribuée par un serveur), ou en IP fixe, ils travaillent tous en IPv4.
Ces valeurs peuvent être adaptées dans les sources. Cependant, l’adresse MAC doit être indiquée par logiciel, ce qui est fait dans le code, avec le tableau suivant :
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
Sur le module Ethernet, une adresse MAC est indiquée sur une étiquette collée sur le module.
L’ensemble des sketches sont téléchargeables. A la racine du dossier Ethernet, vous trouveret un fichier nommé « config_ethernet.txt », qui contient la définition et l’initialisation avec les valeurs par défaut. Adaptez ces valeurs à votre configuration.
Les valeurs par défaut sont :
- Adresse IP : 192.168.1.177/24
- DNS : 192.168.1.1
- Gateway : 192.168.1.1
Applications
Les applications suivantes sont utilisables, elle reprennent la liste à disposition sur le site d’Arduino :
- ChatServer: Serveur de chat
Sur un ordinateur, lancez une application telnet (sur Windows, l’application n’est pas installée d’origine).
Ouvrez ensuite une connexion, par exemple o 192.168.1.177, lorsque la connexion est établie, l’adresse du client est indiquée dans le moniteur série, ainsi que tout ce que vous entrez au clavier, la console telnet indique « Hello, client ! ». L’application renvoie aussi au client les codes reçus, ce qui fait que tout est affiché à double dans la console telnet. - WebClient: Arduino effectue une requête HTTP
Le module accède au site de google et affiche, au format texte, le contenu de la page, qui est difficilement lisible. - WebClientRepeating: Arduino effectue des requêtes HTTP de manière répétée
Le module fait des accès toutes les 10 secondes au site www.arduino.cc, lit le contenu du fichier latest.txt, et l’affiche dans le moniteur série. - WebServer: Envoi d’une page HTML qui affiche les valeurs des capteurs analogiques
L’adresse IP du serveur est affichée dans le moniteur série, copiez-collez cette adresse dans la barre d’adresse d’un navigateur.
Sur les entrées analogiques, connectez un potentiomètre, vous pourrez ainsi visualiser les tensions mesurées. - BarometricPressureWebServer: Affiche les valeurs d’un capteur de pression barométrique sous forme de page web.
Ne disposant pas du capteur SCP1000 (qui a été retiré du marché), j’ai proposé un version utilisant le capteur d’humidité et de température DHT11. Le sketch est adapté en conséquence. Comme pour l’exemple précédent, l’adresse IP du serveur est affichée au démarrage, et la page sera rafraîchie toutes les 10 secondes. - UDPSendReceiveString: Envoyer et recevoir des chaînes de texte via UDP
Sur le module Arduino, on utilise un objet EthernetUDP sur le port 8888 (variable localPort), lorsqu’une paquet est reçu, on affiche sur le moniteur série le contenu du paquet ainsi que quelques informations.
Un paquet est envoyé depuis l’ordinateur, en utilisant un sketch Processing, que vous devrez installer Processing, il faut aussi installer sa librairie UDP (le sktech Processing est inclus dans les sources à télécharger). - UdpNtpClient: Interroge un serveur NTP (Network Time Protocol) via UDP.
Le module interroge un serveur de temps et affiche les indications reçues. L’interrogation est répétée toutes les 10 secondes.
La version à télécharger est complète, sur le site d’Arduino, il manque une partie des sources (fonction sendNTPpacket). - DnsWebClient: Client web basé sur le DNS et le DHCP.
Le module envoie une requête de recherche sur google. Le résultat étant affiché en mode texte, c’est difficilement lisible… - DhcpChatServer: A simple DHCP Chat Server
Programme au fonctionnement identique au ChatServer. - DhcpAddressPrinter: Obtenir une adresse IP via DHCP et l’imprimer
Affiche toujours « Nothing happened » - TelnetClient: Un client Telnet
Dans ce sktech, Arduino devient un client telnet. Ce que vous introduisez dans le moniteur série est envoyé au serveur.
Comme serveur telnet, vous pouvez utiliser un sketch Processing (inclus dans les sources).
Dans le sktech Arduino, il faut indiquer l’adresse IP du serveur.