Page 1 sur 1
communication Raspberry/Arduino par un serveur Apache
Posté : mer. 25 mai 2016 13:36
par vyse06300
Bonjour, je viens vers vous, car j'ai un petit problème, J'ai installé apache2 sur mon Raspberry PI, j'ai préparé un suite de page PHP afin de communiquer par ethernet (par un réseau local créer avec un routeur netgear) avec un Arduino UNO afin d'allumer des LEDS sur ce dernier.
Le problème est que en tapant dans ma barre d'adresse
http://192.168.0.200/ qui est l'adresse IP configuré sur mon arduino je n'ai pas accées à ce dernier j'ai un message d'erreur oups! impossible d'afficher ce site web.... message corrupt.
Je tiens à signaler que je n'ai pas de problème de code que ce soit en PHP ou en Arduino, car j'ai essayé en utilisant un ordinateur à la place de mon Raspberry et en utilisant un serveur Apache aussi (que j'ai téléchargé avec wampserver) et cela marche très bien.
Faut-il peut être configuré Apache sur le Raspberry PI pour qu'il puisse accéder à mon arduino ?
Le système d'exploitation de mon Raspberry est Raspbian.
Merci d'avance Cordialement.
Re: communication Raspberry/Arduino par un serveur Apache
Posté : mer. 25 mai 2016 13:43
par vague nerd
Bonjour.
J'ai installé apache2 sur mon Raspberry PI, j'ai préparé un suite de page PHP afin de communiquer par ethernet (par un réseau local créer avec un routeur netgear) avec un Arduino UNO afin d'allumer des LEDS sur ce dernier.
Le problème est que en tapant dans ma barre d'adresse
http://192.168.0.200/ qui est l'adresse IP configuré sur mon arduino je n'ai pas accées à ce dernier j'ai un message d'erreur oups! impossible d'afficher ce site web.... message corrupt.
Si j'ai bien compris :
-apache sur pi
-communication entre pi et arduino par un moyen quelconque par ethernet
Vous devez donc vous connecter à l'apache du pi et non à l'arduino !
Cdt.
Re: communication Raspberry/Arduino par un serveur Apache
Posté : mer. 25 mai 2016 13:57
par vyse06300
Merci
En fait un script php qui est hébergé sur le raspberry envoi les ordres que l'utilisateur veut éxecuter via un formulaire de type GET. La requête est ensuite analysé par l'arduino qui va exécuter les ordres de la requête puis envoyer via un autre formulaire de type GET pour informer sur l'état des LED. Le probléme c'est que les ordres passent tout est bien éxécuté coté arduino alors que sur le raspberry quand il tente d'envoyé les ordres le navigateur affiche oups ! Impossible d'afficher ce site web L'erreur précise est : Message corrupt alors que les ordres passent bien coté arduino et les LED sont éteintes ou allumés selon la demande
Re: communication Raspberry/Arduino par un serveur Apache
Posté : mer. 25 mai 2016 20:29
par domi
Bonsoir,
J'ai pas tout compris.
Au début je ne comprenais pas l’intérêt d'un serveur Apache sur le Pi pour interroger l'Arduino en http !!!
Si je suppose bien, l'Arduino est donc relier au Pi via USB, et il n'est pas serveur web ?
C'est le Pi qui reçoit la requête, et qui exécute l'allumage des led sur l'Arduino relié via USB.
Si c'est le cas et que cela fonctionne, le problème du navigateur vient du retour de script.
Lorsque l'on envoi une requête http à un serveur Web, il faut obligatoirement que le serveur retourne quelque chose au navigateur. Si cela n'est pas le cas, le navigateur affiche une erreur de connexion, il suppose que sa requête n'a pas abouti. Il faut donc créer un retour, même si il est vide.
Si je suis hors sujet, comme dit au début de mon Post, c'est que je n'ai pas vraiment compris l'environnement de la demande, je n'ai fait que répondre à une supposition.
Cdt
Re: communication Raspberry/Arduino par un serveur Apache
Posté : sam. 28 mai 2016 19:56
par bruno83
j’effectue ces opérations avec mes élèves sans aucun souci avec des e-blocks (même carte Ethernet que sur un arduino liaison SPI).
http://tsin.langevin-la-seyne.fr/SIN/re ... locks.html
a) Ne pas oublier les droits sur tes fichiers le truc habituel
b) ton Arduino est configuré en serveur ou en client ?
-Si en client avec requête GET sur le serveur apache, il faut souvent modifier le port d’accès du client ou du serveur sur apache 80 par défaut, je garde le 80 sur apache et modifie mon port sur eblocks genre 5022.
-Si ton arduino est en serveur embarqué, le serveur apache se comporte comme un client ne pas oublier de lui envoyer la réponse HTTP/1.1 200ok/r/n (mettre une tempo plus longue ou plus courte dans la réponse) pas de souci de port tu peux garder 80 sur ARDUINO.
A+bruno