Réalisation d'un site web interactif
à partir d'une carte Arduino
Ce site est destiné à vous présenter une bibliothèque de fonctions permettant
de réaliser un site web dynamique avec une carte Arduino.
Parmi les modules que l'on peut connecter sur une carte Arduino, il existe
un module Ethernet, lui même équipé d'un lecteur de cartes micro SD. Avec
ce module, on peut à la fois communiquer en réseau via le protocole HTTP et
mémoriser des pages HTML.
Ces deux possibilités suffisent pour créer un site web statique (site dans
lequel l'utilisateur reçoit des pages web identiques à celles préparées par
le webmaster).
Toutefois, comme la carte Arduino est programmable, on peut aussi créer des
sites web dynamiques. Dans ces sites, une partie du contenu des pages peut
varier en fonction d'éléments extérieurs. Le contenu exact de la page est
généré par le serveur web au moment où la page est demandée.
La méthode la plus simple pour créer un site web dynamique est d'utiliser
un interpréteur PHP (ou d'un langage similaire). Toutefois, la quantité
de mémoire disponible sur une carte Arduino est très faible par rapport
à celle des ordinateurs actuels et ne permet pas d'introduire un vrai
interpréteur PHP.
J'ai donc développé une bibliothèque de fonctions qui permet de réaliser
sur une carte Arduino complétée d'une carte éthernet et d'une carte micro
SD des sites web dynamiques qui fonctionnent selon le même principe que
ceux que je développe en PHP.
Mes sites web utilisent des squelettes de pages HTML, c'est à dire des
fichiers qui contiennent la structure générale d'une page (ou d'un
morceau de page) du site, mais avec des chaines de caractères spéciales
qui indiquent :
- l'endroit où on va afficher la valeur d'une variable,
- la ligne à partir de laquelle on va rajouter du code HTML qui
est généré par le programme,
- éventuellement, des zones de code HTML optionnelles.
Pour celà, dans mes sites web, je dispose de quelques fonctions écrites
en PHP destinées à envoyer sur la page web générée une version modifiée
d'un fichier HTML
- en replaçant une chaine de caractère particulière de ce fichier
HTML par un autre contenu,
- ou en s'arrêtant sur une ligne particulière du fichier HTML pour
générer quelque-chose, avant de continuer à partir de la ligne
suivante de ce fichier,
- ou éventuellement en sautant des lignes optionnelles du fichier
HTML.
J'ai développé une bibliothèques de fonctions similaires pour faire la
même chose avec une carte Arduino. Le but de ce site web est de vous
présenter ses possibilités.
Le langage PHP permet aussi de récupérer facilement des données saisies
par l'utilisateur dans un formulaire (2 méthodes de transmission appelées
GET et POST sont disponibles).
Il permet également de mémoriser des informations dans des cookies qui
seront relus dans des pages ultérieures.
Toutes ces possibilités sont disponibles dans la bibliothèques de fonctions
pour carte Arduino.
Cette bibliothèque de fonctions est contituée de 2 fichiers :
- trthtml.cpp la bibliothèque de fonctions écrite en langage C
(programmation procédurale) en utilisant quelques possibilités du
langage C++
- trthtml.h les prototypes des fonctions présentes dans
trthtml.cpp.
Certaines des fonctions présentes dans
trthtml.cpp sont des fonctions
internes à la bibliothèque et il est peu utiles pour l'utilisateur d'y accéder
directement.
Leur prototype est indiqué en commentaire dans le fichier
trthtml.h
L'utilisateur est libre de décommenter certaines de ces fonctions pour les
utiliser, mais leur utilisation n'est pas documentée sur ce site.
Pour utiliser cette bibliothèque de fonctions avec un programme Arduino, il
faut mettre 3 fichiers dans le même répertoire :
- le programme Arduino (de suffixe .ino)
- trthtml.cpp
- trthtml.h
et au début du programme Arduino, il y aura la ligne :
#include "trthtml.h"
Les autres pages de ce site donnent des exemples de programmes Arduino pour
utiliser les différentes possibilités de la bibliothèque de fonctions.