Serveur d'impression

Arduino – Serveur Web – Serveur d’impression

Le 12 octobre 2019 - 3 minutes de lecture

/ *
Serveur Web

Un serveur Web simple qui affiche la valeur des broches d'entrée analogiques.
utilisant un bouclier Ethernet Arduino Wiznet.

Circuit:
* Bouclier Ethernet attaché aux broches 10, 11, 12, 13
* Entrées analogiques reliées aux broches A0 à A5 (en option)

créé le 18 déc 2009
par David A. Mellis
modifié le 9 avril 2012
par Tom Igoe
modifié le 2 septembre 2015
par Arturo Guadalupi

* /

#comprendre
#comprendre

// Entrez une adresse MAC et une adresse IP pour votre contrôleur ci-dessous.
// L'adresse IP dépendra de votre réseau local:
octet Mac[[[[] =
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
;
IPAddress ip(192, 168, 1, 177);

// Initialise la bibliothèque du serveur Ethernet
// avec l'adresse IP et le port que vous souhaitez utiliser
// (le port 80 est le port par défaut pour HTTP):
Serveur EthernetServer(80);

vide installer()
// Vous pouvez utiliser Ethernet.init (pin) pour configurer la broche CS
//Ethernet.init(10); // La plupart des boucliers Arduino
//Ethernet.init(5); // Bouclier ETR MKR
//Ethernet.init(0); // Teensy 2.0
//Ethernet.init(20); // Teensy ++ 2.0
//Ethernet.init(15); // ESP8266 avec Adafruit Featherwing Ethernet
//Ethernet.init(33); // ESP32 avec Adafruit Featherwing Ethernet

// Ouvrez les communications série et attendez que le port s'ouvre:
En série.commencer(9600);
tandis que (!En série)
; // attend que le port série se connecte. Nécessaire pour le port USB natif uniquement

En série.imprimer("Exemple de serveur Web Ethernet");

// lance la connexion Ethernet et le serveur:
Ethernet.commencer(Mac, ip);

// Vérifier la présence de matériel Ethernet
si (Ethernet.état du matériel() == EthernetNoHardware)
En série.imprimer("Le bouclier Ethernet n'a pas été trouvé. Désolé, impossible de fonctionner sans matériel. :(");
tandis que (vrai)
retard(1); // ne fait rien, pas besoin de fonctionner sans matériel Ethernet


si (Ethernet.linkStatus() == LinkOFF)
En série.imprimer("Le câble Ethernet n'est pas connecté.");

// démarre le serveur
serveur.commencer();
En série.impression("le serveur est à");
En série.imprimer(Ethernet.localIP());

vide boucle() {
// écoute les clients entrants
Client EthernetClient = serveur.disponible();
si (client) {
En série.imprimer("Nouvelle cliente");
// une demande http se termine par une ligne vide
bool currentLineIsBlank = vrai;
tandis que (client.lié())
si (client.disponible())
carboniser c = client.lis();
En série.écrire(c);
// si vous êtes arrivé au bout de la ligne (reçu une nouvelle ligne
// caractère) et la ligne est vide, la requête http est terminée,
// afin que vous puissiez envoyer une réponse
si (c == ' n' && currentLineIsBlank)
// envoie un en-tête de réponse http standard
client.imprimer("HTTP / 1.1 200 OK");
client.imprimer("Content-Type: text / html");
client.imprimer("Connexion: proche"); // la connexion sera fermée après l'achèvement de la réponse
client.imprimer("Actualiser: 5"); // actualise la page automatiquement toutes les 5 secondes
client.imprimer();
client.imprimer("");
client.imprimer("");
// affiche la valeur de chaque broche d'entrée analogique
pour (int canal analogique = 0; canal analogique < 6; canal analogique++)
int lecture de capteur = analogiqueRead(canal analogique);
client.impression("entrée analogique");
client.impression(canal analogique);
client.impression(" est ");
client.impression(lecture de capteur);
client.imprimer("
"
);

client.imprimer("");
Pause;

si (c == ' n')
// tu commences une nouvelle ligne
currentLineIsBlank = vrai;
autre si (c ! = ' r')
// vous avez un personnage sur la ligne en cours
currentLineIsBlank = faux;



// donne le temps au navigateur Web pour recevoir les données
retard(1);
// ferme la connexion:
client.Arrêtez();
En série.imprimer("client déconnecté");
}
}

Commentaires

Laisser un commentaire

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