#include <Bridge.h>
#include <HttpClient.h>
byte n = 0;
void setup() {
Serial.begin(9600);
Bridge.begin();
}
void loop() {
HttpClient client;
client.get("http://sin.nexgate.ch/slid/slid.txt");
while (client.available()) {
n = client.parseInt();
}
Serial.println(n);
delay(5000);
}
Lecture du code
- Première ligne, on déclare la bibliothèque Bridge.h. Elle comporte les fonctions de communication entre les deux processeurs de la carte. Il y a celui qui exécute le programme décrit au-dessus et l'autre qui s'occupe de la communication avec le web.
- Le seconde ligne déclare la bibliothèque HttpClient.h qui assure la mise en oeuvre des protocoles de communication avec le web.
- Ligne 3, variable n, globale est un octet initialisée à 0
- Le segment setup() commence à la ligne 4 et ne s'exécute qu'une seule fois
- Ligne 5, déclaration de la bibliothèque Serial, et configuration à 9600 bits par seconde, de la liaison série entre carte Yun et ordinateur via cordon USB
- Ligne 6, déclaration de la liaison série entre processeurs de la carte
Le segment loop() est une boucle s'exécutant indéfiniment
- Ligne 9, déclaration d'un objet nommé client selon la classe HttpClient. La déclaration aurait pu être globale comme l'octet n. Préférer les variables à portée locale comme ici.
- Ligne 10, envoi d'une requête au fichier enregistré à l'URL http://sin.nexgate.ch/slid/slid.txt. Ce fichier texte contient une chaîne de caractères, image d'un nombre compris entre 0 et 255.
- Lignes 11, 12 et 13 : boucle s'exécutant si un caractère au moins est reçu par la liaison série entre processeurs (réponse venant du web). En ligne 12 tous les caractères issus de cette liaison sont lus et interprétés ensemble, fonction client.parseInt(), comme un nombre entier. Ce nombre est alors affecté à la variable n. La fonction client.available() est le nombre de caractères reçus et décrémenté jusqu'à 0, par la fonction client.parseInt(). La boucle while s'interrompt alors car il n'y a plus de caractère à lire c'est à dire quand client.available() égale 0.
- En ligne 14 on affiche le nombre issu du web, n, dans le terminal de l'IDE Arduino. Cette ligne pourra être placée en commentaire en la faisant précéder de // car elle n'a d'intérêt qu'en phase de développement pour s'assurer que le nombre n est correctement affecté. On fera de même avec la ligne 5 qui empêche le fonctionnement du programme dans le cas où la carte n'est pas reliée à l'ordinateur !
- delay(5000) est une pause de 5s. Sans cette instruction une nouvelle requête suivrait immédiatement et dans ce cas le serveur hébergeant le fichier texte ne tarderait pas à refuser de répondre : Error 403
Aucun commentaire:
Enregistrer un commentaire