Serveur d'impression

Comment utiliser un Arduino comme serveur Web – Bien choisir son serveur d impression

Par Titanfall , le 29 décembre 2019 - 7 minutes de lecture

À l'aide d'un blindage Ethernet, vous pouvez utiliser un Arduino comme serveur Web.

En équipant un Arduino avec un blindage Ethernet, vous pouvez le transformer en un simple serveur Web, et en accédant à ce serveur avec un navigateur fonctionnant sur n'importe quel ordinateur connecté au même réseau que l'Arduino, vous pouvez:

Sommaire

Matériel de projet de serveur Web Arduino

Pour utiliser un Arduino comme serveur Web, vous avez besoin des éléments suivants:

  • Arduino Mega2560 (ou Arduino UNO)
  • Blindage Ethernet
  • Connexion LAN filaire avec une vitesse de 10 / 100Mb

Connexions de la carte serveur Web Arduino

Le blindage Ethernet connecte l'Arduino à Internet. La configuration est très simple: il suffit de brancher les broches d'en-tête du blindage sur votre Arduino, puis de connecter un câble Ethernet au blindage. L'image ci-dessous montre cette configuration:

Configuration pour utiliser un Arduino comme serveur Web

Pour montrer comment utiliser l'Arduino comme serveur Web, nous allons lire l'état d'un commutateur.


Matériel requis

  • 1 x câble Ethernet
  • 1 x routeur Wi-Fi
  • 1 x Arduino Mega2560
  • 1 x blindage Ethernet
  • 1 x planche à pain
  • 3 x fils de cavalier
  • 1 x résistance 10k
  • Adaptateur 2 x 9V
  • 1 x bouton poussoir


Arduino en tant que schéma de circuit d'un serveur Web

Connectez les composants comme indiqué ci-dessus. La broche 8 de l'Arduino est connectée au bouton-poussoir et est configurée comme ENTRÉE. Lorsque le bouton est enfoncé, l'Arduino lira une valeur FAIBLE sur cette broche. L'Arduino définira alors l'état de la SORTIE sur ON. Lorsqu'il est relâché, la sortie est réglée sur OFF. Le statut du commutateur sera envoyé au serveur Web.


Configuration Ethernet pour Arduinos

Pour contrôler le bouclier Ethernet, vous utilisez la bibliothèque Ethernet.h.

Le blindage doit se voir attribuer une adresse MAC et IP à l'aide du Ethernet.begin () une fonction. Pour un appareil particulier, une adresse MAC est un identifiant globalement unique. Les blindages Ethernet actuels sont livrés avec un autocollant indiquant l'adresse MAC. Pour les boucliers plus anciens, un bouclier aléatoire devrait fonctionner, mais il ne faut pas utiliser le même pour de nombreuses cartes. La validité des adresses IP dépend de la configuration de son réseau. Si DHCP est utilisé, il peut attribuer dynamiquement une adresse IP au bouclier.


Spécification de l'adresse IP

L'adresse IP (adresse de protocole Internet) est une étiquette numérique attribuée à chaque appareil participant à un réseau informatique qui utilise le protocole Internet pour la communication. La spécification de l'adresse IP se fait en écrivant la ligne:

octet ip[] = 192, 168, 0, 112;

et changez-le pour correspondre à une configuration particulière. Par exemple, pour attribuer l'IP du bouclier Ethernet à 192.168.0.50, écrivez la ligne:

octet ip[] = 192, 168, 0, 50;

Spécification de l'adresse MAC

L'adresse MAC (adresse de contrôle d'accès au média) est un identifiant unique attribué à chaque appareil participant à un réseau physique. Chaque équipement réseau possède un numéro de série unique pour s'identifier sur un réseau, ce qui est normalement programmé en dur dans le micrologiciel de l'équipement. Cependant, avec Arduino, nous pouvons définir nous-mêmes l'adresse MAC.

octet mac[] = 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9;

Vous pouvez définir le sous-réseau et la passerelle à l'aide des commandes suivantes:

sous-réseau d'octets[] = 255, 255, 255, 0; // attribution d'un masque de sous-réseau
passerelle d'octets[] = 192, 168, 0, 1; // attribution de passerelle

Donc, pour configurer Ethernet Shield, le bloc de code est donné ci-dessous:

/ ******************** REGLAGES ETHERNET ******************** / 
octet mac[] = 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9; // attribution d'une adresse mac
octet ip[] = 192, 168, 0, 112; // ip in lan
sous-réseau d'octets[] = 255, 255, 255, 0; // attribution d'un masque de sous-réseau
passerelle d'octets[] = 192, 168, 0, 1; // attribution d'une passerelle par défaut

Configuration finale pour l'utilisation d'un Arduino comme serveur Web

Ci-dessous, une photo du système, montrant comment l'Arduino se connecte au routeur Wi-Fi. Le câble Ethernet relie le blindage au routeur et le routeur se connecte ensuite sans fil à l'ordinateur portable.

Arduino en tant que fichier programme de serveur Web

Vous trouverez ci-dessous un programme qui charge une simple page Web.


Arduino comme code de projet de serveur Web

client.println (""); // la page Web est créée en HTML

client.println ("");

client.println ("");

client.println ("Tutoriel Ethernet");

client.println ("");

client.println ("");

client.println ("");

client.println ("

Un tutoriel de serveur Web

"); client.println ("

Observer l'état du commutateur

"); client.print ("

Le commutateur est: "); if (digitalRead (8)) client.println ("

SUR

"); autre client.println ("

DE

"); client.println (""); client.println ("");

Arduino_Web_page.zip

Ce programme affichera une page Web sur un navigateur Web lors de l'accès à l'adresse IP attribuée à l'Arduino. La ligne:

client.println ("");

Demande au navigateur d'actualiser la page. Lorsque la page est à nouveau accessible, l'Arduino lira à nouveau l'état du commutateur et l'affichera.

N'oubliez pas que vous pouvez toujours afficher la source de la page Web affichée. En appuyant sur le bouton, vous pouvez observer l'état changeant du commutateur, comme illustré dans la démonstration vidéo.

Vous pouvez également le configurer pour qu'il s'exécute sans le routeur. Pour ce faire, vous devez:

  1. Attribuez une adresse IP manuelle à la passerelle Ethernet Arduino, par exemple 192.168.0.2 et le masque de sous-réseau 255.255.255.0, la passerelle par défaut est vide.
  2. Utilisez un câble Ethernet croisé pour relier les deux (ordinateur portable et Arduino).
  3. Nous devrions alors être en mesure d'obtenir votre site Arduino sur http://192.168.0.2 de l'ordinateur portable.

Connecter Arduino à un PC sans routeur

Vous trouverez ci-dessous le code que vous chargeriez dans l'Arduino pour le connecter directement au PC sans le routeur:


#comprendre 
#comprendre 


/ ******************** REGLAGES ETHERNET ******************** /

octet mac[] = 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9; // adresse mac physique
octet ip[] = 192, 168, 0, 112; // ip in lan
sous-réseau d'octets[] = 255, 255, 255, 0; // masque de sous-réseau
passerelle d'octets[] = 192, 168, 0, 1; // passerelle par défaut
Serveur EthernetServer (80); //port de serveur


void setup()

Ethernet.begin (mac, ip, passerelle, sous-réseau); // initialise le périphérique Ethernet
server.begin (); // commence à écouter les clients
pinMode (8, ENTRÉE); // broche d'entrée pour interrupteur


boucle vide ()

Client EthernetClient = server.available (); // cherche le client

// envoie un en-tête de réponse http standard

client.println ("HTTP / 1.1 200 OK");
client.println ("Content-Type: text / html");
client.println ("Connexion: fermer");
client.println ();

/ *
Cette partie est la page Web qui sera
envoyé au navigateur Web du client, on peut utiliser html, javascript
et un autre langage de balisage Web pour faire une mise en page particulière
* /

client.println (""); // la page Web est créée en html
client.println ("");
client.println ("");
client.println ("Tutoriel Ethernet");
client.println ("");

/ *
La ligne ci-dessus est utilisée pour rafraîchir la page toutes les 1 seconde
Celui-ci sera envoyé au navigateur sous le code HTML suivant:

contenu = 1 sec, c'est-à-dire attribuer un temps de rafraîchissement
* /

client.println ("");
client.println ("");
client.println ("

Un tutoriel de serveur Web

"); client.println ("

Observer l'état du commutateur

"); client.print ("

Le commutateur est: "); if (digitalRead (8)) client.println ("

SUR

"); autre client.println ("

DE

"); client.println (""); client.println (""); retard (1); // donner le temps de recevoir les données / * La ligne suivante est importante car elle arrêtera le client et recherchez la nouvelle connexion dans la prochaine itération, c'est-à-dire Client EthernetClient = server.available (); * / client.stop ();

Arduino_Web_Page2.zip

Vidéos

Essayez ce projet par vous-même! Obtenez la nomenclature.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.