Pages: 1 [2] 3 4   Go Down
Author Topic: Composants pour interface web  (Read 5517 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai réussi à prendre quelques instants et ça marche smiley
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  smiley-cool
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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  smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 177
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il n'y a pas de retour du php, puisque je ne lui en avais pas demandé  smiley-cool. 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  smiley 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-twist

Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 177
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voila le code coté serveur PHP
Code:
<?php
$host
="192.168.0.19";  // A adapter sur la configuration de chacun
$port=8888;    // A adapter sur la configuration de chacun

   
$buf "12345678abcdefghijklmnop";    // message envoyé en UDP

    
$socket socket_create(AF_INETSOCK_DGRAMSOL_UDP);
    
socket_sendto($socket$bufstrlen($buf), 0$host$port);
    
socket_close($socket);

?>
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour faire le lien entre le comportement d'un composant comme un slider en JQUERY et le script PHP permettant d'envoyer le message à l'ARDUINO, je dois mettre en place de l'AJAX.
JQUERY a tout ce qu'il faut pour réaliser ce mécanisme...

Qui saurait m'aider à le mettre en place?
Je manque malheureusement vraiment de temps en ce moment pour avancer sur ce développement... Mais je vois bien d'un point de vue architecture globale ce qu'il faut mettre en place  smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 177
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je peux t'aider avec plaisir. Je pense avoir les compétences nécessaire et d'ailleurs je suis en ce moment la dessus. J'essaye aussi une autre méthode qui va permettre de ne pas avoir à interroger toutes les secondes la page php. Je test ton code je te reviens sur la suite rapidement smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 177
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon j'ai fait une tentative en Local ça fonctionne parfaitement mais celle en ligne je tombe sur :
Code:
Warning: socket_sendto() [function.socket-sendto]: unable to write to socket [1]: Operation not permitted in /home/weeboon/public_html/arduiboo/udp_switch_led.php on line 8

J'ai ouvert le port  que j'utilise en UDP depuis mon routeur et le résultat est le même.

Par contre j'ai réussi à établir une connexion vers l'arduino directement avec Jquery. Un petit avant gout de ce qui permet d'envoyer les infos

Code:
<script type="text/javascript">
        $(function(){

            $("#statut_led").click(function(){
             
                $.get("http://arduiboo.dyndns.biz/",{led1:"255", led2:"255"});

          });

        });

                </script>


avec ceci je suis capable d'envoyer en mode GET n'importe qu'elle information à l'arduino
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ton erreur vient du fait que sur ton serveur externe, l'extension PHP_SOCKETS n'est pas installée...
Voir si ton hébergeur te permet de le faire...

pour se faire, il faudrait dé-commenter la ligne suivante :
;extension=php_sockets.dll
qui se trouve dans le php.ini

dé-commenter = enlever le ; qui est au début de la ligne...  smiley-cool
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Par contre j'ai réussi à établir une connexion vers l'arduino directement avec Jquery. Un petit avant gout de ce qui permet d'envoyer les infos

Code:
<script type="text/javascript">
        $(function(){

            $("#statut_led").click(function(){
             
                $.get("http://arduiboo.dyndns.biz/",{led1:"255", led2:"255"});

          });

        });

                </script>


avec ceci je suis capable d'envoyer en mode GET n'importe qu'elle information à l'arduino

Oula... Pourrais-tu expliquer ou commenter les lignes?
C'est un script que tu positionnes où?

Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 177
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

je te donnes tous les détails dès que j'ai réussi à faire ce  que je voulais du coté arduino smiley
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 66
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
//declare une function globale
$(function(){
            //ecoute un click sur la balise <a id="statut_led">button</a> dans le dom html
            $("#statut_led").click(
            //sur le click on execute la function
            function(){
                 //appelle la page arduiboo.dyndns.biz/index.php avec la method GET et on lui passe les variable $_GET['led1'] =  255 puis led2 ...
                $.get("http://arduiboo.dyndns.biz/",{led1:"255", led2:"255"});

          });

        });

(pour le futur ) En html5 on peut faire un Socketclient smiley 
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Désolé, mais je ne comprends absolument rien... smiley-cry
Ce script, vous le mettez où??? smiley-eek
Pourquoi passer par une page http://arduiboo.dyndns.biz/

Vous dialogiez avec l'ETHERNET SHIELD de quelle façon??? smiley-eek

Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 66
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce bout de js  se met dans une balise javaScript sur une page web sur ton serveur ...

Pourquoi arduiboo.dyndns.biz, parce que un domaine dyndns c'est gratuit ,mais dans ton cas c'est l'adresse de ton script php.

Mais j'aimerais bien comprendre pourquoi vous n'appeler pas directement la carte ?   
Logged

Pages: 1 [2] 3 4   Go Up
Jump to: