Arduino et PHP: La galère!

Arduino et PHP: La galère! - Divers - Programmation

Marsh Posté le 02-03-2015 à 17:01:23    

Bonjour a tous, je suis un Lycéen en Terminale STI2D en projet pour le bac
 
Mon problème est la liaison entre l'arduino et une page web en php
L'arduino est branché au port ethernet de mon pc avec une ip que je lui ai donné.
Je peux récupérer toute la page web mais le problème se situe pour récupérer une donné précise dans le code html donné par l'arduino ethernet
Merci d'y prêter intérêt car je n'arrive vraiment pas a faire ceci et je suis au point mort
 
Merci de votre considération et aide

Reply

Marsh Posté le 02-03-2015 à 17:01:23   

Reply

Marsh Posté le 02-03-2015 à 17:13:31    

LeNovicedu05 a écrit :

Je peux récupérer toute la page web mais le problème se situe pour récupérer une donné précise dans le code html donné par l'arduino ethernet


Récupérer où ? Du côté client (Arduino, si j'ai bien compris) ou du côté serveur (PHP).
 
Habituellement, une page HTML contient une "form" (ayant une methode "GET" ou "POST" ), et la form contient des champs et un bouton "submit". Quand ce bouton est pressé la forme est "submitée", et donc ces champs sont envoyés au serveur. Là, le PHP, récupère tous les champs dans des variables globales $_GET(...) ou $_POST(...) selon la méthode de la form. On peut avoir une form sans bouton submit, et déclencher un submit par un javascript, ce qui peut être interessant dans certains cas particuliers. Etc. L'essentiel est de bien comprendre la séparation entre le client et le serveur.

Reply

Marsh Posté le 02-03-2015 à 17:18:40    

Merci de ta réponse
Le principe est d'avoir une variable sur l'arduino que je vais récupérer grâce à des fonctions issus du PHP.
Que l'arduino soit un serveur qui ne met que les valeurs voulus et que je puisse les récupérer quand je veux.

Reply

Marsh Posté le 03-03-2015 à 08:33:56    

UP

Reply

Marsh Posté le 04-03-2015 à 15:59:14    

Comme personne ne répond, je reprends la main, Julien.
 
Mais, comme je n'arrive pas à comprendre le problème, et comme savoir bien poser le problème, c'est déjà parvenir à y répondre à moitié, voici une série de questions :
 
Quels sont les côtés client et serveur ?
Est-ce que la Arduino est bien du côté client comme je le suppose (mais je me trompe peut-être) ?
Pour le PHP, il est à peu près certain qu'il tourne du côté du serveur.
Le PC a-t-il Apache ? Donc, le PC sert de serveur. Cela m'étonnerait que la Arduino ait Apache (mais je me trompe peut-être).
 
Afficher où ?
Afficher du côté du serveur ou du côté du client ?
Afficher sur le PC ou afficher sur la Arduino ?
Afficher dans une page HTML ou par un autre moyen ?
Cela va se faire soit en PHP, soit en Javascript. Il y a le choix.
 
Quel est le moyen d'envoi des données ?  
Est-ce par une méthode Get ou Form, ou par de l'Ajax ou autre chose ?

Reply

Marsh Posté le 05-03-2015 à 09:56:30    

olivthill a écrit :

Comme personne ne répond, je reprends la main, Julien.
 
Mais, comme je n'arrive pas à comprendre le problème, et comme savoir bien poser le problème, c'est déjà parvenir à y répondre à moitié, voici une série de questions :
 
Quels sont les côtés client et serveur ?
Est-ce que la Arduino est bien du côté client comme je le suppose (mais je me trompe peut-être) ?
Pour le PHP, il est à peu près certain qu'il tourne du côté du serveur.
Le PC a-t-il Apache ? Donc, le PC sert de serveur. Cela m'étonnerait que la Arduino ait Apache (mais je me trompe peut-être).
 
Afficher où ?
Afficher du côté du serveur ou du côté du client ?
Afficher sur le PC ou afficher sur la Arduino ?
Afficher dans une page HTML ou par un autre moyen ?
Cela va se faire soit en PHP, soit en Javascript. Il y a le choix.
 
Quel est le moyen d'envoi des données ?  
Est-ce par une méthode Get ou Form, ou par de l'Ajax ou autre chose ?


Pareil pour moi, trop peu d'éléments pour comprendre le problème et proposer une solution.

Reply

Marsh Posté le 05-03-2015 à 16:38:16    

Le côté client est l'arduino et le serveur est bien sûr le pc qui a un serveur apache par le biais d'apache.
Malheureusement, l'arduino n'a pas de serveur apache. Je veux afficher du côté serveur un nombre capté par l'arduino mais envoyer aussi un nombre à celle-ci via du PHP ou quelque que soit le language.
C'est pour afficher sur le PC et uniquement sur le PC
L'arduino me crée déja une page html ou je pourrais récupérer une valeure mais je dois aussi lui envoyer une commande reset.
 
Le moyen d'envoyer les données et l'arduino branché sur mon pc avec un client PHP et je ne sais rien de la méthode utilisé :/
 
Merci de votre aide

Reply

Marsh Posté le 05-03-2015 à 22:38:42    

C'est assez confus ton truc.
 

Citation :

Le côté client est l'arduino et le serveur est bien sûr le pc qui a un serveur apache par le biais d'apache.


 
Ou pas. Le serveur c'est celui qui met à disposition une info et le client est celui demande l'info. A mon avis t'as branché un capteur sur l'arduino et tu veux afficher les données de ton capteur sur un écran de PC. Si c'est le cas, ton arduino joue le rôle du serveur et le ou les pc qui vont demander l'info seront les clients.
 
Ensuite tu te contredis  
- l'arduino n'a pas de serveur apache
- L'arduino me crée déja une page html
- et dans le premier post : le problème se situe pour récupérer une donné précise dans le code html donné par l'arduino ethernet  
 
J'ai pas trop joué avec mon arduino et je n'ai pas de shield ethernet, mais faire un serveur web ca a pas l'air trop dur d'après http://arduino.cc/en/Tutorial/WebServer
 
Donc du coup :
Ton arduino fait serveur web  
Le pc peut récupérer la page web avec la valeur en utilisant file_get_contents ou curl() si tu veux faire du php, ou plus simplement avec le premier navigateur web venu.  
 
Si tu veux envoyer une commande à ton arduino -> tu appelles une autre page ou tu met un paramètre
 
Par ex :  
- http://ipdelarduino -> affiche la valeur  
- http://ipdelarduino/reset ou http//ipdelarduino/index.html?commande=reset -> l'arduino fait un reset
 
Le premier lien que j'ai cité ne permet pas de faire ça. Mais un coup de google et tu tombes la dessus sur un exemple plus complet : http://playground.arduino.cc/Code/WebServer  
 
 
 
 

Reply

Marsh Posté le 08-03-2015 à 14:43:59    

En fait, je veux envoyer une valeur a l'arduino par le web, qu'elle va comparer avec celle d'un capteur, et agir en conséquence
Par exemple, quand les sont égal, sa me compte 1 dans une variable que je renvoie dans un site web

Reply

Marsh Posté le 09-03-2015 à 14:59:32    

Et ça bloque où ?
Admettons que tu aies l'arduino, le shield ethernet, le serveur PHP et que tout ce petit monde pris individuellement fonctionne.

 

As tu vraiment besoin du serveur PHP ? D'après ton dernier post, il faut juste que tu puisses déclencher un appel vers ton arduino, c'est donc lui qui fait serveur, tu n'as qu'à exécuter la page depuis un client (browser web) quelconque sur le réseau et l'arduino renvoie le résultat éventuel au browser -> à aucun moment tu n'as besoin d'un serveur PHP !

 

Si tu arrives déjà à faire tourner ton shield ethernet pour que le PC voie l'arduino et puisse ouvrir une page c'est un bon départ, le reste devrait suivre assez facilement.

 

Si tu sais avoir besoin du serveur, merci de réexpliquer correctement pourquoi.

 

Par ailleurs chacun de ces trucs a plein de tutos sur Internet, donc commence déjà à monter un proto (à moins que tu ne bloques sur la base même de l'architecture de l'ensemble) et reviens si tu as une question précise.

 

En tout cas pour le moment je ne vois pas comment on peut t'aider [:spamafote].


Message édité par TotalRecall le 09-03-2015 à 15:02:37

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 09-03-2015 à 14:59:32   

Reply

Marsh Posté le 18-03-2015 à 09:45:43    

¨Je veux utiliser un serveur PHP pour envoyer la donné vers l'arduino qui est en Webserver mais je ne veux pas le faire sur l'arduino directement car je dois la réutiliser sur un site web.
La difficulté que je rencontre est d'injecter cette valeur sur la ethernet en passant par un navigateur
 

Reply

Marsh Posté le 18-03-2015 à 11:16:44    

LeNovicedu05 a écrit :

¨Je veux utiliser un serveur PHP pour envoyer la donné vers l'arduino qui est en Webserver mais je ne veux pas le faire sur l'arduino directement car je dois la réutiliser sur un site web.
La difficulté que je rencontre est d'injecter cette valeur sur la ethernet en passant par un navigateur
 


 
Le problème, c'est que tu ne connais pas la base de la base et tu te lances dans des trucs qui impliquent client / serveur / appel au shell etc... Il va falloir que tu apprennes :
 
1) Comment passer des ordres vers l'arduino en utilisant le shell.
2) Comment avoir un LAMP fonctionnel
3) Comment avoir une page basique en HTML avec un form qui envoie des données à une page de traitement en PHP
4) Comment lancer une commande shell depuis PHP.
 
Voilà, tu as tout ce dont tu as besoin pour réaliser ce que tu veux. Ya rien de difficile là dedans. C'est juste du temps qu'il te faut (et de la persévérance).

Reply

Marsh Posté le 18-03-2015 à 11:18:29    

Merci a toi de me donner l'ordre pour réaliser mes trucs  
T'as pas des tutos ;)?

Reply

Marsh Posté le 18-03-2015 à 11:34:08    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed