truc2geek

2015/03/24

Arduino et shield Ethernet : client web : part 2

Filed under: Arduino, Programmation — Étiquettes : , , , , , , , — truc2geek @ 23:07

Deux précédents articles abordent l’utilisation du shield Ethernet avec Arduino :
Celui-ci utilise l’Arduino en tant que serveur web.
Celui-ci l’utilise en tant que client web, et détaille la mise en place côté serveur : la base de données MySQL et la page PHP.
Ajourd’hui, on complète ce sujet, avec le code côté Arduino.

Code côté Arduino

premier test

J’ai suivi le programme d’exemple, « Fichiers », « Exemple », « Ethernet », « DnsWebClient », quasiment tel quel.
Voici le code :
01.png
02.png

On charge ce code dans l’Arduino, on ouvre le moniteur série (ce qui a pour effet un reset de l’Arduino).
Résultat :

Ci-dessous, le début et la fin :
04.png

05.png

La connexion se fait, et on reçoit une page HTML, c’est déjà pas mal.

On copie ce qui correspond à la page web reçue, on colle dans un éditeur de texte, on enregistre en « page.html », on l’ouvre via Firefox :
03.png

Une belle page d’erreur 404!

2e essai

Mon site est hébergé sur un serveur mutualisé, il faut donc utiliser l’en-tête « Host » dans la requête HTTP (merci le forum Arduino!).
Cela n’a pas suffi : dans mon cas, j’ai dû utiliser HTTP 1.1, car HTTP 1.0 ne fonctionnait pas.
Le code de la fonction setup() devient :
06.png

On envoie ça à l’Arduino, on ouvre le moniteur série :
07b.png
08.png

Même traitement : on enregistre le code HTML dans un fichier qu’on enregistre en local et qu’on ouvre avec le navigateur :
09.png

Oh yeah !!

On retrouve bien la page telle qu’on la verrait si on la demandait directement par le navigateur :
10.png

La cerise sur le gâteau

Ou plutôt, les paramètres dans la requête GET!
Le but de toute l’opération, c’était que l’Arduino puisse envoyer une requête GET avec des paramètres, 5 précisément, qui seront enregistrés dans la base de données MySQL par la page PHP.

On va commencer par vérifier que tout cela fonctionne encore, puisque comme le montre l’impression écran ci-dessus, 6 mois sont déjà passés…

D’ailleurs, un petit changement : la page « index.php » a été renommée en « page.php ».

test dans Firefox

On entre l’URL suivante dans la barre d’adresse, avec donc les valeurs suivantes :
idLog : 4
idTest : 2
fonction : loop
code : chaineRecuevaleur : Test;a

11.png

On valide :
12.png

Merveilleux!

le test ultime : requête GET avec paramètres, via Arduino

Le sketche Arduino devient Ethernet_V0_10.ino, et la fonction setup() change un peu :
13.png

On va enregistrer les valeurs : 5, 2, loop, chaineRecue et Test;b

Le test se passe bien, voici le début du résultat dans le moniteur série :
14.png

La fin du résultat nous montre que les paramètres ont bien été enregistrés :
l’avant-dernière ligne contient bien l’enregistrement qui a pour id 4, et la suivante contient les valeurs qu’on a renseignées dans le sketchte :
15.png

On actualise la page dans le navigateur, et on a la confirmation :
16.png

Mission accomplie

Le système que j’ai voulu mettre en place fonctionne ; il ne me reste plus qu’à implémenter le code Arduino dans les projets à débugger, et je pense réutiliser cette manière de logger des données dans d’autres contextes, à suivre…

Site web Arduino, une seule adresse : www.arduino.cc

Publicités

Laisser un commentaire »

Aucun commentaire pour l’instant.

RSS feed for comments on this post. TrackBack URI

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Propulsé par WordPress.com.

%d blogueurs aiment cette page :