Composants pour interface web

Bonjour,

J'ai fait mes premiers essais de serveur web permettant d'afficher la valeur d'un capteur de température. Ça marche très bien :slight_smile:
Je voudrais passer à des choses plus complexes en intégrant par exemple un composant type potentiomètre linéaire sur une page web.
Les choses se compliquant carrément... Je devrais m'en sortir en passant beaucoup de temps, mais j'imagine qu'il existe des bibliothèques de composants tout faits?
A noter que je voudrais éviter d'utiliser le flash pour rester sur un environnement HTML javascript php CSS...

Réflexion sur base JQUERY:
Ne serait-il pas intéressant d’intégrer des fonction JQUERY comme la fonction SLIDER Slider Widget | jQuery UI API Documentation
jQuery UI Development & Planning Wiki / Slider

Bizarrement, je ne trouve rien sur le forum parlant de JQUERY + SLIDER...

On pourrait essayer par exemple de gérer l'intensité lumineuse d'une led avec un SLIDER JQUERY?
Qui s'y colle??? Je ne vais malheureusement pas avoir de temps... =(

Bonjour

processing reste la solution la plus facile a mettre en place.
processing va lire ou ecrire dans un fichier et Arduino fait la méme chose lire ou ecrire dans un fichier text.

processing fichier lecture => arduino ecriture.
processing fichier ecriture => arduino lecture.

voila pour moi une solution, il y a surment d'autre solution.
cordialement

Processing fonctionne sous Java.... c'est plus trop un solution web avec l'arrivée des nouveaux standard comme html5 et tout le bazar imposé par Steeve Job.... :wink:

powerpack:
Bonjour

processing reste la solution la plus facile a mettre en place.
processing va lire ou ecrire dans un fichier et Arduino fait la méme chose lire ou ecrire dans un fichier text.

processing fichier lecture => arduino ecriture.
processing fichier ecriture => arduino lecture.

voila pour moi une solution, il y a surment d'autre solution.
cordialement

Oui, mais :wink:
Comment faire le lien avec un slider - potentiomètre linéaire accessible par n'importe quelle machine capable de surfer sur le web?

@ Ojal,
Tu peux faire un applet Java avec Processing, ça marche avec tout les navigateurs actuels, mais c'est lourd et ce n'est plus dans les standards actuels....

En fait on voulais dire la même chose, mais d'une manière différente :wink:

Oui oui Jean-François :slight_smile:

Il doit bien exister des tutos histoire qu'on ne passe pas des heures à recréer la roue 8)

Je n'ai malheureusement pas le temps de chercher aujourd'hui...

Piloter une led depuis un bouton sur une page web devrait faire partie des éléments de base je trouve... :slight_smile:

C'est apparemment des questions qui reviennes souvent, sur la manière d'interagir avec des composants en passant exclusivement par internet.

Je l'ai brièvement expliqué sur d'autre postes et pour le moment j'ai juste fait la même chose mais juste pour allumer et éteindre une DEL

  1. avoir arduino en mode client. il va interroger régulièrement une page sur un serveur internet http://tonsite_web.com/page_contient_valeur_led.php. Puis récupérer la valeur pour la transmettre à la DEL
  2. créer une page sur le serveur http://tonsite_web.com/slider_led.php. utiliser jquery (AJAX) + html pour soit, réécrire dans un fichier texte ou réécrire dans une base de donnée la valeur que tu choisis.

Je ne sais pas comment fonctionne processing et comment fonctionne la communication entre l'applet (certainement mise sur internet) et l'arduino.

Dans la solution que j'apporte, l'arduino interroge le serveur distant régulièrement (toute les secondes) et la rapidité de rafraîchissement va peut-être laisser à désirer quand il sera question de contrôler l'intensité de la DEL.

Etant déjà sur cette voix je ferais un essai pour contrôler une DEL et je vous reviendrais la dessus :slight_smile:

Apparemment c'est par le protocole UDP http://arduino.cc/en/Tutorial/UDPSendReceiveString que l'ARDUINO doit pouvoir communiquer...

ça c'est très intéressant ! Peut-être y à t-il moyen d'utiliser d'envoyer un message UDP depuis un site internet vers l'arduino. De cette manière plus besoin d'interroger à distance toutes les secondes :slight_smile:

Pour envoyer un message UDP, on peut utiliser une fonction PHP: PHP: socket_create - Manual
Ceci va permettre au serveur php hébergeant la page web d'envoyer le message UDP.

Qui aurait le temps d'essayer si ça marche? Perso ça va être hyper chaud coté timing... :blush:

Le test est sommes toutes assez simple :
Coté ARDUINO, reprendre exactement le code de cette page : http://arduino.cc/en/Tutorial/UDPSendReceiveString
Coté PHP faire un petit script en suivant la doc PHP PHP: Socket Functions - Manual
Ce script PHP remplacera alors le script qui était proposé en PROCESSING.

Pour conclure, pas de raison de ne pas pouvoir piloter l'ARDUINO au travers des fonctions PHP. 8)

j'ai tester hier la fonction socket_create(); pour une connexion vers le arduino en mode client. Malheureusement sans succès... je n'ai jamais eu de retour au niveau de la requête, toujours un time out. Peut-être un soucis d'accès au port.. :~

Salut,

à l'époque j'avais fais des essais de réception UDP arduino -> php: impossible sous environnement windows. Visiblement il n'y aurait que sous linux que cette fonction php fonctionne à peu près. Par contre dans le sens php -> arduino ça fonctionnait.
Utiliser l'UDP à travers internet est illusoire. Il n'y a aucune garantie que le message arrivera, et la plupart des routeurs/proxy feront barrage.

Gromain

chesnel:
j'ai tester hier la fonction socket_create(); pour une connexion vers le arduino en mode client. Malheureusement sans succès... je n'ai jamais eu de retour au niveau de la requête, toujours un time out. Peut-être un soucis d'accès au port.. :~

Bonjour,

Quel sketch faisais-tu tourner sur l'ARDUINO? Pourrais-tu mettre le code en ligne? Es-tu bien certain que ton sketch faisait bien écouter ton ARDUINO avec les bon paramètres?
Quel est ton serveur PHP? Ou était-il situé? Ton serveur PHP est-il bien configuré pour les sockets?
Peux-tu mettre ton code php en ligne?

Avec ces éléments, on pourra peut-être comprendre pourquoi ça n'a pas fonctionné :slight_smile:

Si j'arrive à trouver un moment, je ferai aussi des essais de mon coté...

Bonjour,

Gromain59:
à l'époque j'avais fais des essais de réception UDP arduino -> php: impossible sous environnement windows. Visiblement il n'y aurait que sous linux que cette fonction php fonctionne à peu près.

Qu'entends-tu par environnement WINDOWS? Tu parles du serveur d'applications en l’occurrence PHP? Bizarre qu'il y ait une incidence du système d'exploitation???
Tu avais fais les essais avec quel serveur?

Gromain59:
Utiliser l'UDP à travers internet est illusoire. Il n'y a aucune garantie que le message arrivera, et la plupart des routeurs/proxy feront barrage.

ARDUINO propose-t-il une autre solution que l'UDP??? A priori non...
De mémoire le protocole SIP pour téléphone sur IP fonctionne bien avec UDP? Certes il peut y avoir des pertes de paquet, mais cela n'est peut être pas critiquie ou en touys cas à prendre en considération... Pour la VOIP, la perte de paquets n'est pas préjudiciable... Pour mes applications, je pense que je peux contourner ce problème 8)

Pour les routeurs, je ne pense pas que ce soit gênant... L'UDP ne sera utilisé qu'entre le serveur PHP et l'ARDUINO donc dans une configuration figée et le plus souvent en local...

Qu'entends-tu par environnement WINDOWS?

serveur wamp sous XP

ARDUINO propose-t-il une autre solution que l'UDP??? A priori non...

TCP/IP et UDP

a priori, j'ai pas bien saisi ton besoin.
En tout état de cause, la réception d'une trame UDP par un script php n'a jamais fonctionné chez moi. Mais n'étant pas expert en php, j'ai pu louper quelque chose.
Dans mes applications domotique, je n'utilise que l'UDP pour les échanges entre l'arduino et le serveur (REST de l'appli Domogik, qui n'est pas écrit en php mais en python), et ça marche très bien dans les 2 sens.

Pour les routeurs, je ne pense pas que ce soit gênant... L'UDP ne sera utilisé qu'entre le serveur PHP et l'ARDUINO donc dans une configuration figée et le plus souvent en local...

effectivement, en local aucun soucis.

Gromain

J'ai réussi à prendre quelques instants et ça marche :slight_smile:
J'ai simplement une limitation à 24 caractères même si l'ARDUINO me confirme qu'il reçoit bien un paquet beaucoup plus gros...
Ça doit être un param à régler...
Il y a une variable UDP_TX_PACKET_MAX_SIZE dans le sketch et je ne vois pas son initialisation...

A finaliser donc...

Réflexion complémentaire : comment structurer le message passé pour gérer plusieurs composants?

Maintenant, il va falloir coupler la valeur envoyée par le script php en UDP au script JQUERY de façon à ce que le slider puisse enfin piloter l'intensité de notre LED 8)

Gromain59:

ARDUINO propose-t-il une autre solution que l'UDP??? A priori non...

TCP/IP et UDP

Oula... Je pensais qu'il n'y avait que l'UDP de disponible... ???
Tu pourrais joindre un lien au sujet de la communication TCP du SHIELD ETHERNET???

Thx :slight_smile:

Intéressant. quel est le code que tu as utilisé ? tu as eu un retour sur la page php en envoyant la requête ?

Sinon il n'y a pas que l'UDP vu que j'ai réussi le contrôle du led à partir d'une page web.

Il n'y a pas de retour du php, puisque je ne lui en avais pas demandé 8). J'aurais pu faire ce que je veux...
En UDP, je sais que j'ai envoyé, je ne saurai jamais si l'ARDUINO aura reçu... mais pour le moment il reçoit dans 100% des cas et en réseau local il n'y a aucune raison pour qu'il ne reçoive pas...

Il n'y a pas que l'UDP certes, mais charger une URL toutes les 10 secondes pour voir que rien a changé est une solution TRES barbare :slight_smile: Qui en plus possède une latence du délai de rafraîchissement, ce qui est pour le moins pas terrible...

Pour le moment, je n'ai pas vu mieux que l'UDP pour passer des infos à l'ARDUINO...

Je passerai le code , mais ce sont ceux que j'avais posté plus haut en liens ni plus ni moins...

Quelqu'un saurait m'aider à coupler le JQUERY avec PHP pour envoyer les messages UDP ?

Ralala, j'ai vraiment pas de temps et pourtant le sujet me taraude ]:smiley:

Je crois que je n'ai pas le bon code php... tu peux me montrer le tiens ?