WR703N + VinciDuino

barbudor:
Ici : Web Server Overview [Old OpenWrt Wiki]

Pas aussi léger que ce que je pensai nginx ... en faite le plus léger / adéquat pour un site à faible traffic c'est mini-httpd d'aprés ce tableau.

barbudor:
La question que je me pose c'est : Le but étant de créer un équipement dédié connecté (station météo, contrôleur domotique à-la BlyssBox etc...), associée à une (ou plusieurs Arduino) qu'est-ce qui est le plus simple/efficace ?

  1. Utiliser un serveur light comme ceux déjà listés + cgi-bin
  2. Faire un environnement (bibliothèque) tel que celles utilisées sur l'Arduino (Ethernet.server) et intégrer dans un seul exe le serveur Web, la communication avec la/les Arduino et la gestion d'ensemble de l'application.

Notamment ce qui me gène dans le cas 1, c'est l'intégration globale.
Je vois 3 composantes majeures :

  • les interactions de l'utilisateur avec le navigateur web et donc avec le serveur Web : complètement asynchrone avec le déroulement de l'application
  • les communications entre WR703 et Arduino: peut être synchrone (question/réponses) ou asynchrone (évènement extérieur, utilisateur qui presse un bouton hard / telco Blyss, ...)
  • la gestion du contexte

Le cgi-bin est entièrement lié aux requètes web. Donc la gestion de contexte et tout ce qui est indépendant de l'interaction utilisateur ne peuvent pas s'y trouver. Il faut donc une application globale qui tourne en permanence.

De la même façon que cette appli va gérer les communication avec les Arduino (serial), elle va devoir aussi communiquer avec l'utilisateur Web donc avec les cgi-bin (ou plutot ce sont les cgi-bin qui vont communiquer avec elle). Des sockets (ou des pipes ?) semble la solution la plus simple à utiliser mais cela crée une lourdeur supplémentaire car il y a un protocole de plus a gérer.

L'avantage c'est que ca peut migrer facilement sur une plateforme plus grosse ensuite en utilisant Apache+PHP par exemple.

Le cas 2 peut être suffisant pour gérer de petites applications. C'est déjà ce que l'on fait sur une Arduino Ethernet. Donc finalement pourquoi ne pas reproduire la même structure en dual-core (WR + Arduino) ?
A partir d'une certaine "taille" il est sur que ce n'est plus la bonne solution mais par exemple si on reste sur une petite application qui a 2 ou 3 pages a présenter (station météo, contrôle de porte de garage ... comme certains on envisagé) ca me semble encore une solution acceptable.

Qu'en pensez-vous ?

En gros tu veut faire un deamon avec serveur web et gestionnaire de communication intégré ?